đī¸ đ 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 classauto_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) shortcutlist_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
- ActivityLog model design
- Migration & database schema optimization
- Admin interface for Activity Logs
đ āĻŦāϞ⧠âStart Part 3â â āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž Employee Activity tracking model āĻŦāĻžāύāĻžāύ⧠āĻļā§āϰ⧠āĻāϰāĻŦā§, āϝā§āĻāĻžāύ⧠active window, website url, screenshot, idle time save āĻšāĻŦā§ step by stepāĨ¤