Hệ thống quản lý phí chung cư/căn hộ được xây dựng với các công nghệ web hiện đại, cung cấp giao diện web và ứng dụng desktop cho giải pháp quản lý bất động sản hoàn chỉnh.
"Quản lý thu phí chung cư" là một ứng dụng full-stack được thiết kế để tối ưu hóa các hoạt động quản lý chung cư và căn hộ. Ứng dụng cung cấp các công cụ quản lý cư dân, tòa nhà, căn hộ, giao dịch tài chính, đăng ký dịch vụ và các tác vụ quản trị thông qua giao diện trực quan.
- 🏠 Quản Lý Bất Động Sản: Quản lý căn hộ và tòa nhà hoàn chỉnh.
- 👥 Quản Lý Cư Dân: Hồ sơ cư dân với xác thực và phân quyền theo vai trò.
- 💰 Quản Lý Tài Chính: Tạo hóa đơn, theo dõi thanh toán và báo cáo tài chính.
- 📋 Đăng Ký Dịch Vụ: Quản lý các dịch vụ và đăng ký của tòa nhà.
- 🔔 Hệ Thống Thông Báo: Thông báo tự động cho các sự kiện và cập nhật quan trọng.
- 📊 Phân Tích & Báo Cáo: Báo cáo chi tiết và phân tích thông tin quản lý.
- 🌐 Đa Nền Tảng: Giao diện web và ứng dụng desktop để truy cập linh hoạt.
- Framework: NestJS
- Cơ Sở Dữ Liệu: SQL Server với Prisma ORM
- Xác Thực: JWT với kiểm soát truy cập theo vai trò
- API: RESTful APIs với xác thực toàn diện
- Testing: Jest với coverage test rộng rãi
- Framework: Next.js với TypeScript
- Thư Viện UI: Material-UI (MUI)
- Quản Lý State: TanStack Query (React Query)
- Styling: Material-UI theming với các component tùy chỉnh
- Data Fetching: Axios với optimistic updates
- Framework: ElectronJS
- Tích Hợp: Wrapper web-to-desktop liền mạch
- Đa Nền Tảng: Hỗ trợ Windows, macOS và Linux
- Ngôn Ngữ: TypeScript
- Package Manager: npm
- Database Migration: Prisma
- Testing: Jest.
- Chất Lượng Code: ESLint, Prettier
- Node.js
- npm hoặc yarn
- SQL Server
git clone https://github.com/SeikyuuRessha/AptFeeManagement# Cài đặt dependencies gốc
npm install
# Cài đặt dependencies backend
cd backend
npm install
# Cài đặt dependencies frontend
cd ../frontend
npm install
# Quay về thư mục gốc
cd ..- Backend Environment - Tạo file
backend/.env:
DATABASE_URL="sqlserver://localhost:1444;database=apartment_management;user=sa;password=your_password;encrypt=true;trustServerCertificate=true"
JWT_SECRET="your-jwt-secret-key"
JWT_EXPIRES_IN="24h"
PORT=8080- Frontend Environment - Tạo file
frontend/.env:
NEXT_PUBLIC_API_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME="Hệ Thống Quản Lý Chung Cư"# Di chuyển đến thư mục backend
cd backend
# Tạo Prisma client
npx prisma generate
# Chạy database migrations
npx prisma db push
# Seed database (tùy chọn)
npx prisma db seedcd backend
npm run start:devBackend API sẽ có sẵn tại http://localhost:8080
cd frontend
npm run devFrontend sẽ có sẵn tại http://localhost:3000
# Từ thư mục gốc
npm run electron:devcd backend
npm run build
npm run start:prodcd frontend
npm run build
npm start# Build cho nền tảng hiện tại
npm run electron:build
# Build cho nền tảng cụ thể
npm run electron:build:win
npm run electron:build:mac
npm run electron:build:linuxcd backend
# Chạy tất cả tests
npm test
# Chạy tests ở chế độ watch
npm run test:watch
# Chạy test coverage
npm run test:cov
# Chạy test suites cụ thể
npm run test apartment.controller.spec.ts
npm run test auth.service.spec.tscd frontend
npm testHệ thống triển khai xác thực dựa trên JWT với kiểm soát truy cập theo vai trò:
- Admin: Toàn quyền truy cập và quản lý hệ thống
- Resident: Truy cập hạn chế vào thông tin cá nhân và thanh toán
Tất cả API endpoints đều được bảo vệ với các guards phù hợp:
- JWT authentication để xác minh người dùng
- Role-based guards để kiểm soát quyền hạn
- Xác thực quyền sở hữu tài nguyên
Ứng dụng sử dụng Prisma ORM với các entities chính sau:
- User: Người dùng hệ thống với xác thực
- Building: Các tòa nhà bất động sản
- Apartment: Các căn hộ riêng lẻ
- Resident: Cư dân căn hộ
- Invoice: Hóa đơn tài chính
- Payment: Bản ghi thanh toán
- Subscription: Đăng ký dịch vụ
- Notification: Thông báo hệ thống
- Tòa nhà có nhiều Căn hộ
- Căn hộ có nhiều Cư dân
- Cư dân có nhiều Hóa đơn và Thanh toán
- Người dùng có thể có nhiều vai trò và quyền hạn
POST /auth/login # Đăng nhập người dùng
POST /auth/register # Đăng ký người dùng
POST /auth/refresh # Làm mới token
GET /auth/profile # Lấy thông tin người dùng
GET /apartments # Liệt kê tất cả căn hộ
GET /apartments/:id # Lấy căn hộ theo ID
POST /apartments # Tạo căn hộ mới
PUT /apartments/:id # Cập nhật căn hộ
DELETE /apartments/:id # Xóa căn hộ
GET /buildings # Liệt kê tất cả tòa nhà
GET /buildings/:id # Lấy tòa nhà theo ID
POST /buildings # Tạo tòa nhà mới
PUT /buildings/:id # Cập nhật tòa nhà
DELETE /buildings/:id # Xóa tòa nhà
GET /invoices # Liệt kê hóa đơn
POST /invoices # Tạo hóa đơn
GET /payments # Liệt kê thanh toán
POST /payments # Ghi nhận thanh toán
GET /reports/financial # Báo cáo tài chính
- Phân tích và metrics toàn diện
- Giao diện quản lý bất động sản
- Báo cáo tài chính và biểu đồ
- Công cụ quản lý người dùng
- Quản lý thông tin cá nhân
- Xem hóa đơn và lịch sử thanh toán
- Quản lý đăng ký dịch vụ
- Trung tâm thông báo
- Phương pháp mobile-first
- Material-UI components
- Hỗ trợ theme sáng/tối
- Tuân thủ accessibility
Các file cấu hình chính:
backend/src/main.ts: Application bootstrapbackend/prisma/schema.prisma: Database schema- Biến môi trường cho database và JWT settings
frontend/next.config.js: Cấu hình Next.js- Tùy chỉnh theme Material-UI
- Cấu hình API client
main.js: Electron main process- Quản lý window và tích hợp hệ thống
- Hỗ trợ auto-updater
Đảm bảo tất cả biến môi trường cần thiết được thiết lập:
- Database connection strings
- JWT secrets
- API endpoints
- Third-party service keys
- Fork repository
- Tạo feature branch:
git checkout -b feature/tinh-nang-moi - Thực hiện thay đổi và thêm tests
- Commit thay đổi:
git commit -m 'Thêm tính năng mới' - Push lên branch:
git push origin feature/tinh-nang-moi - Gửi pull request
Được xây dựng với ❤️ cho quản lý bất động sản hiện đại