1. Home
  2. Employee āĻŽāύāĻŋāϟāϰāĻŋāĻ‚
  3. āĻŦ⧇āϏāĻŋāĻ•
  4. 👤 🔖 Part 2: Employee Management Module

👤 🔖 Part 2: Employee Management Module

đŸ—ƒī¸ 🔖 Part 2: Employee Management Module

āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž Employee Model Design, Database Migration, āĻāĻŦāĻ‚ Admin Customization āĻ•āϰāĻŦā§‹āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ¸ā§āĻŸā§‡āĻĒ⧇ āĻĒā§āϰāĻĢ⧇āĻļāύāĻžāϞ āϞ⧇āϭ⧇āϞ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž + Bangla comments āĻĨāĻžāĻ•āĻŦ⧇ āϝ⧇āύ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ apply āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧋āĨ¤


✅ ā§§. Designing Employee model

đŸŽ¯ Goal:

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰ āϜāĻ¨ā§āϝ āύāĻžāĻŽ, āχāĻŽā§‡āχāϞ, āĻĄāĻŋāĻĒāĻžāĻ°ā§āϟāĻŽā§‡āĻ¨ā§āϟ, Employee Code, Device ID āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖāĨ¤


🔨 Step 1.1 – Edit monitoring/models.py

from django.db import models

class Employee(models.Model):
    """
    📝 Employee Model
    āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰ āϜāĻ¨ā§āϝ record āϤ⧈āϰāĻŋ āĻšāĻŦ⧇āĨ¤
    """

    # āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰ āĻĒ⧁āϰ⧋ āύāĻžāĻŽ
    name = models.CharField(max_length=100)

    # āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰ āχāĻŽā§‡āχāϞ (unique)
    email = models.EmailField(unique=True)

    # āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰ āĻĄāĻŋāĻĒāĻžāĻ°ā§āϟāĻŽā§‡āĻ¨ā§āϟ (āϝ⧇āĻŽāύ IT, HR, Accounts)
    department = models.CharField(max_length=100, blank=True, null=True)

    # Unique Employee Code (āϝ⧇āĻŽāύ EMP001)
    employee_code = models.CharField(max_length=20, unique=True)

    # Device ID (client app āĻĨ⧇āϕ⧇ āφāϏāĻŦ⧇)
    device_id = models.CharField(max_length=100, blank=True, null=True)

    # created_at āĻāĻŦāĻ‚ updated_at timestamp automatically save āĻšāĻŦ⧇
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        # Admin panel āĻ employee name āĻĻ⧇āĻ–āĻžāĻŦ⧇
        return f"{self.name} ({self.employee_code})"

🔎 Bangla Explanation:

  • models.Model → Django ORM base class
  • auto_now_add=True → object āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ save āĻšāϞ⧇ timestamp save āĻšāĻŦ⧇
  • auto_now=True → object update āĻšāϞ⧇ timestamp update āĻšāĻŦ⧇
  • __str__ → Admin interface āĻ readable name āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ

✅ ⧍. Migration & Database Setup

🔨 Step 2.1 – Make Migrations

python manage.py makemigrations monitoring

🔨 Step 2.2 – Apply Migrations

python manage.py migrate

🔎 Result: Database āĻ monitoring_employee table create āĻšāĻŦ⧇āĨ¤


✅ ā§Š. Django Admin Customization

🔨 Step 3.1 – Register model in monitoring/admin.py

from django.contrib import admin
from .models import Employee

@admin.register(Employee)
class EmployeeAdmin(admin.ModelAdmin):
    # Admin list view āϤ⧇ āϕ⧋āύ āϕ⧋āύ column āĻĻ⧇āĻ–āĻžāĻŦ⧇
    list_display = ('id', 'name', 'email', 'employee_code', 'department', 'device_id')

    # Search field enable āĻ•āϰāĻŦ⧇
    search_fields = ('name', 'email', 'employee_code')

    # List filter sidebar āĻ āĻĨāĻžāĻ•āĻŦ⧇
    list_filter = ('department',)

🔎 Bangla Explanation:

  • @admin.register(Employee) → admin.site.register(Employee, EmployeeAdmin) shortcut
  • list_display → admin table āĻ āĻĻ⧇āĻ–āĻžāĻŦ⧇
  • search_fields → admin search bar enable āĻ•āϰāĻŦ⧇
  • list_filter → department filter sidebar āĻ

🔨 Step 3.2 – Create Superuser to login Admin

python manage.py createsuperuser
  • Username, email, password set āĻ•āϰ⧋
  • āϤāĻžāϰāĻĒāϰ http://127.0.0.1:8000/admin/ āĻ login āĻ•āϰ⧇ Employee module test āĻ•āϰ⧋āĨ¤

✅ ā§Ē. (Optional) Employee CRUD API Endpoints (for future use)

āĻāχ āϧāĻžāĻĒ āφāĻŽāϰāĻž Part 4 (DRF API Development) āĻ āĻ•āϰāĻŦā§‹āĨ¤ āĻāĻ–āύ āĻļ⧁āϧ⧁ Model āĻāĻŦāĻ‚ Admin ready āĻ•āϰāĻžāχ āĻ›āĻŋāϞ āĻāχ āĻĒāĻžāĻ°ā§āĻŸā§‡āϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝāĨ¤


📝 🔖 Summary of Part 2

âœ”ī¸ Employee Model āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧋ – scalable schema design
âœ”ī¸ Migration apply āĻ•āϰ⧇ database table ready
âœ”ī¸ Django Admin Customization – professional admin usability
âœ”ī¸ Code structure clean and production ready


🚀 âžĄī¸ Next Step:

🔖 Part 3: Activity Tracking Module Design

  1. ActivityLog model design
  2. Migration & database schema optimization
  3. Admin interface for Activity Logs

👉 āĻŦāϞ⧋ “Start Part 3” – āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž Employee Activity tracking model āĻŦāĻžāύāĻžāύ⧋ āĻļ⧁āϰ⧁ āĻ•āϰāĻŦā§‹, āϝ⧇āĻ–āĻžāύ⧇ active window, website url, screenshot, idle time save āĻšāĻŦ⧇ step by stepāĨ¤

How can we help?