ইনভেন্টরি ম্যানেজমেন্ট সিস্টেম

প্র্যাকটিস প্রোজেক্টস - পাইথন ৩ (Python 3) - Computer Programming

216

ইনভেন্টরি ম্যানেজমেন্ট সিস্টেম হলো একটি অ্যাপ্লিকেশন যা পণ্য ও স্টকের তথ্য সংরক্ষণ, আপডেট এবং পরিচালনা করতে সাহায্য করে। Python Django ফ্রেমওয়ার্ক এবং SQLite ডাটাবেস ব্যবহার করে এই সিস্টেমটি তৈরি করা যায়।


প্রয়োজনীয়তা

Python এবং Django

Django ইন্সটল করতে টার্মিনালে এই কমান্ডটি চালান:

pip install django

ইনভেন্টরি ম্যানেজমেন্ট সিস্টেমের ফিচারস

  1. হোম পেজ: সকল পণ্যের তালিকা দেখাবে।
  2. পণ্য যোগ করা: নতুন পণ্য যোগ করার জন্য একটি ফর্ম।
  3. পণ্য আপডেট: পণ্যের তথ্য ও স্টক আপডেট করা।
  4. পণ্য মুছে ফেলা: পণ্য ডিলিট করার অপশন।
  5. স্টক পর্যবেক্ষণ: মজুত পণ্যের পরিমাণ পর্যবেক্ষণ।

ধাপ ১: Django প্রজেক্ট এবং অ্যাপ তৈরি করা

প্রথমে Django প্রজেক্ট তৈরি করুন এবং একটি inventory নামে অ্যাপ তৈরি করুন।

django-admin startproject inventory_management
cd inventory_management
python manage.py startapp inventory

ধাপ ২: অ্যাপটি প্রজেক্টে যুক্ত করা

প্রজেক্টের settings.py ফাইলে INSTALLED_APPS এর মধ্যে inventory অ্যাপটি যুক্ত করুন।

# inventory_management/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'inventory',  # Inventory অ্যাপ যুক্ত করা
]

ধাপ ৩: মডেল তৈরি করা

Product মডেল তৈরি করতে হবে যেখানে প্রতিটি পণ্যের নাম, বিবরণ, পরিমাণ এবং দাম সংরক্ষণ করা হবে।

# inventory/models.py
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField(blank=True)
    quantity = models.IntegerField()
    price = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self):
        return self.name

ধাপ ৪: মাইগ্রেশন ফাইল তৈরি করা এবং ডাটাবেস আপডেট করা

মডেলকে ডাটাবেসে সেভ করার জন্য মাইগ্রেশন তৈরি করে নিম্নোক্ত কমান্ডগুলো চালান:

python manage.py makemigrations
python manage.py migrate

ধাপ ৫: অ্যাডমিন প্যানেলে মডেল রেজিস্টার করা

অ্যাডমিন প্যানেলে মডেল ব্যবস্থাপনার জন্য admin.py ফাইলে মডেল রেজিস্টার করুন।

# inventory/admin.py
from django.contrib import admin
from .models import Product

admin.site.register(Product)

ধাপ ৬: ভিউ তৈরি করা

views.py ফাইলে পণ্য তালিকা, নতুন পণ্য যোগ, পণ্য সম্পাদনা, এবং মুছে ফেলার ভিউ তৈরি করুন।

# inventory/views.py
from django.shortcuts import render, get_object_or_404, redirect
from .models import Product
from .forms import ProductForm

def product_list(request):
    products = Product.objects.all()
    return render(request, 'inventory/product_list.html', {'products': products})

def add_product(request):
    if request.method == 'POST':
        form = ProductForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('product_list')
    else:
        form = ProductForm()
    return render(request, 'inventory/product_form.html', {'form': form})

def update_product(request, pk):
    product = get_object_or_404(Product, pk=pk)
    if request.method == 'POST':
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            form.save()
            return redirect('product_list')
    else:
        form = ProductForm(instance=product)
    return render(request, 'inventory/product_form.html', {'form': form})

def delete_product(request, pk):
    product = get_object_or_404(Product, pk=pk)
    if request.method == 'POST':
        product.delete()
        return redirect('product_list')
    return render(request, 'inventory/product_confirm_delete.html', {'product': product})

ধাপ ৭: ফর্ম তৈরি করা

forms.py ফাইলে ProductForm তৈরি করুন যা পণ্য যোগ ও সম্পাদনার জন্য ব্যবহৃত হবে।

# inventory/forms.py
from django import forms
from .models import Product

class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = ['name', 'description', 'quantity', 'price']

ধাপ ৮: URL রাউটিং সেটআপ করা

প্রতিটি পেজের URL রাউটিং সেটআপ করুন।

# inventory/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.product_list, name='product_list'),
    path('add/', views.add_product, name='add_product'),
    path('update/<int:pk>/', views.update_product, name='update_product'),
    path('delete/<int:pk>/', views.delete_product, name='delete_product'),
]

প্রজেক্টের মূল urls.py ফাইলে inventory/urls.py যুক্ত করুন।

# inventory_management/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('inventory.urls')),  # Inventory app URLs
]

ধাপ ৯: টেমপ্লেট তৈরি করা

১. templates/inventory/product_list.html

<!DOCTYPE html>
<html>
<head>
    <title>Inventory</title>
</head>
<body>
    <h1>Product Inventory</h1>
    <a href="{% url 'add_product' %}">Add New Product</a>
    <table border="1">
        <tr>
            <th>Name</th>
            <th>Description</th>
            <th>Quantity</th>
            <th>Price</th>
            <th>Actions</th>
        </tr>
        {% for product in products %}
        <tr>
            <td>{{ product.name }}</td>
            <td>{{ product.description }}</td>
            <td>{{ product.quantity }}</td>
            <td>${{ product.price }}</td>
            <td>
                <a href="{% url 'update_product' product.pk %}">Edit</a> |
                <a href="{% url 'delete_product' product.pk %}">Delete</a>
            </td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

২. templates/inventory/product_form.html

<!DOCTYPE html>
<html>
<head>
    <title>Add/Update Product</title>
</head>
<body>
    <h1>{% if form.instance.pk %}Update{% else %}Add{% endif %} Product</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Save</button>
    </form>
</body>
</html>

৩. templates/inventory/product_confirm_delete.html

<!DOCTYPE html>
<html>
<head>
    <title>Delete Product</title>
</head>
<body>
    <h1>Are you sure you want to delete {{ product.name }}?</h1>
    <form method="post">
        {% csrf_token %}
        <button type="submit">Yes, Delete</button>
        <a href="{% url 'product_list' %}">Cancel</a>
    </form>
</body>
</html>

ধাপ ১০: অ্যাপ্লিকেশন চালানো

অ্যাপ্লিকেশনটি চালাতে টার্মিনালে নিচের কমান্ড দিন:

python manage.py runserver

এরপর ব্রাউজারে http://127.0.0.1:8000/ এ গিয়ে ইনভেন্টরি ম্যানেজমেন্ট সিস্টেমটি দেখুন।


উপসংহার

এই ইনভেন্টরি ম্যানেজমেন্ট সিস্টেমে ব্যবহারকারীরা পণ্য যোগ করতে, সম্পাদনা করতে এবং মুছে ফেলতে পারবেন। Django দিয়ে আরও ফিচার যোগ করা সম্ভব, যেমন:

  • ইউজার রোলস এবং পারমিশন
  • স্টক রিপোর্ট জেনারেশন
  • বারকোড বা QR কোড সমর্থন

এই প্রজেক্টটি Django-তে ওয়েব ডেভেলপমেন্ট শেখার জন্য একটি চমৎকার উদাহরণ।

Content added By
Promotion

Are you sure to start over?

Loading...