← Quay lại Portfolio

pm.eapp.vn · Web App · Project Management

eApp PM — Project Management

Nền tảng quản lý dự án & đội nhóm tập trung. Phân quyền vai trò chi tiết, workspace riêng biệt cho từng nhóm, theo dõi tiến độ task và deadline real-time.

Web AppTeam CollaborationDjangoTailwind CSS
Multi-tenant
Workspace
Real-time
SSE Push
3 levels
Roles Management

Features

Stack & Tools

Kiến trúc & Quy trình hoạt động

Ứng dụng quản lý dự án được thiết kế theo kiến trúc hướng sự kiện (Event-driven) trên nền tảng Django. Sử dụng Server-Sent Events (SSE) để truyền tải các hoạt động mới, bình luận trên task thời gian thực trực tiếp tới giao diện người dùng mà không cần thiết lập WebSocket phức tạp.

User Actions (Task Update, Comment) ↳ Django REST Endpoint ↳ Database Transaction ↳ Event Stream Generator (SSE Service) ↳ Client UI Update (Reactive React/JS rendering)

Thiết kế Cơ sở dữ liệu

Thiết kế cơ sở dữ liệu quan hệ tối ưu hóa cho các thao tác truy vấn lồng nhau và quản lý quyền truy cập không gian làm việc (Workspace isolation):

- Workspace (id, name, owner_id, status) - WorkspaceMember (workspace_id, user_id, role [Admin|Manager|Member]) - Project (id, workspace_id, title, description, status) - Task (id, project_id, title, status, priority, assignee_id, due_date) - TaskComment (id, task_id, author_id, content, created_at)

Thách thức & Giải pháp kỹ thuật

  • Thách thức: Lỗi truy vấn N+1 khi hiển thị màn hình Dashboard chứa toàn bộ danh sách Workspace, dự án và chi tiết tất cả các Task được giao cho người dùng hiện tại cùng thông tin người tạo bình luận gần nhất.
  • Giải pháp: Sử dụng tối ưu select_related cho các thuộc tính khóa ngoại (Foreign Key) và prefetch_related cho các quan hệ nhiều-nhiều (M2M) để gộp các câu lệnh SQL thành 1 truy vấn duy nhất.

Thành quả đạt được

  • Hỗ trợ vận hành cùng lúc lên đến 50 active workspaces, thời gian phản hồi API trung bình cho các tác vụ cập nhật task chỉ còn dưới 120ms.
  • Giảm tải 70% số lượng truy vấn cơ sở dữ liệu nhờ kỹ thuật tối ưu hóa ORM.