MouseTodoApp là một ứng dụng quản lý công việc (Todo App) toàn diện, được xây dựng nhằm mục đích theo dõi và sắp xếp các tác vụ hàng ngày một cách hiệu quả. Dự án này được phát triển như một ví dụ thực tế để học tập thêm về việc áp dụng các pattern, kiến trúc phần mềm hiện đại và các kỹ năng sử dụng framework (React, .NET).
| Phiên bản | Ngày phát hành | Mô tả |
|---|---|---|
| v1.0.0-alpha | 01/05/2026 | Phiên bản alpha đầu tiên |
| v1.0.1-alpha | 04/05/2026 | Cập nhật hạ tầng (Database SqlServer) |
| v1.1.1-alpha | 15/05/2026 | Cập nhật giao diện (UI) |
- Lê Hoàng Nhi - GitHub Profile
- Trần Trọng Phúc - GitHub Profile
- Nguyễn Phước Lộc - GitHub Profile
- Nguyễn Ngọc Đức Phát - GitHub Profile
Dự án được xây dựng dựa trên sự kết hợp giữa hệ sinh thái React (Frontend) và .NET (Backend):
- Core: React (khởi tạo qua Vite)
- Ngôn ngữ: TypeScript
- Thư viện Tailwind CSS (v4.2), Prettier, Eslint, Fontsource (Open Sans)
- (Các thư viện UI, State management, Fetching data sẽ được bổ sung sau...)
- Core: .NET 10 (ASP.NET Core Web API)
- Ngôn ngữ: C# 12+
- (Database, ORM, Logging sẽ được bổ sung sau...)
Đối với Backend áp dụng Clean Architecture (dựa trên Ports & Adapters / Hexagonal Architecture). Kiến trúc này giúp tách biệt hoàn toàn Business Logic khỏi các chi tiết kỹ thuật (Database, Frameworks, UI), đảm bảo tính dễ bảo trì và mở rộng. Lưu ý: kiến trúc này được đút kết và học hỏi từ nhiều nguồn khác nhau, mang tính chất tham khảo.
Đối với Frontend áp dụng Component-based architecture, nơi mỗi thành phần giao diện được xem như một khối độc lập, dễ tái sử dụng và quản lý.
Dự án được chia thành 4 lớp (Layers) chính:
- Domain: Chứa các Entities cốt lõi (Ví dụ:
TodoItem). - Application: Chứa Use Cases và định nghĩa các Interfaces (Ports).
- Adapters: Triển khai các Ports (Ví dụ: Repository giao tiếp DB).
- WebAPI: Điểm đầu vào của ứng dụng (Controllers/Minimal APIs), cấu hình DI.
/MouseTodoApp
├── /frontend # Source code React (Vite)
│ └── package.json
│
└── /backend # Source code .NET
├── MouseTodoApp.sln
├── /MouseTodoApp.Domain
├── /MouseTodoApp.Application
├── /MouseTodoApp.Adapters
└── /MouseTodoApp.WebAPI

