/HomeLandBE

Primary LanguageTypeScriptMIT LicenseMIT

PROJECT: HOMELAND WEB

Website Demo: Homeland Backend Repository: HomelandBE Video demo: Youtube

BUILDING A CONDOMINIUM MANAGEMENT WEBSITE

Instructor: Trần Tuấn Dũng

Student Contributors:

Leader Member Member Member Member
Hồ Đình Mạnh - 21522327 Nguyễn Phước Hưng - 21520252 Võ Công Bình - 21521880 Đinh Đại Dương - 21521986 Nguyễn Thị Kim Ngân - 20520915

Technologies Used:

  • FrontEnd: alt text
  • BackEnd: NestJS alt text
  • Other Technologies: Docker, Bootstrap, PostgreSQL, Supabase, Momo Payway, ChatGPT API,... alt text alt text alt text alt text alt text alt text alt text alt text alt text

📚 Introduction

HomeLand is an apartment management website, it provides a centralized interface to view booking and appointment information, Manage communication with prospects, customers and tenants, track maintenance work and clean up, create dashboards and visualizations for daily reporting.

Roadmap

git git

Functionalities

  • Information Management: Building information, residents, resident vehicles,...

  • Service Management: Expense management, service contracts, services (electricity, water,...)

  • Asset Management: Maintenance management and repair assignment

  • Rental Contract Management: a library of templates that comply with all the latest standards, allowing you to create new leases. The system creates a data warehouse of all your rental data and sends notifications about expiring and terminated contracts. You can also include specialized clauses in your contract and automatically track violations and late fees.

  • Report Generation: Overall population statistics, you can export reports in many chart formats by date,....

  • Complain & repair request: Enter a complaint comment and display a list of complaints.

🕵️ Admin

Designed for admin, admin is the owner of an apartment. Admin manage account information, equipment, contract, vehicle resident, building, floor, and apartment. And Admin will asign task to technicain.

📋 Resident

This area is designed for resident. Resident can buy a service, complant some issues.

📋 Technicain

Designed for technicain who will fix some issues, see report of tasks, and create a invoice to resident or admin.

Illustrative Images:

alt text alt text alt text alt text alt text alt text alt text alt text

Install

Next.js project bootstrapped with create-next-app.

To install the app, you will need to have the following installed:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

💕 Thanks

This project is almost completed like apartment management. However developed by the developer team who is still university students and have not enough experiences, this project maybe has some problem. You can visit our deploy website for more experience. Thank you for visiting our project.

I deeply appreciate every member of this team for showing relentless effort for this project.

Additional information

Hồ Đình Mạnh - 21522327 Email: 21522327@gm.uit.edu.vn

Nguyễn Phước Hưng - 21520252 Email: 21520252@gm.uit.edu.vn

Võ Công Bình - 21521880 Email: 21521880@gm.uit.edu.vn

Đinh Đại Dương - 21521986 Email: 21521986@gm.uit.edu.vn

Nguyễn Thị Kim Ngân - 20520915 Email: 20520915@gm.uit.edu.vn

Seminar Question

Question 1: Hãy thuyết phục tôi dùng NestJS mà không dùng các công cụ khác

NestJS là một framework Node.js mạnh mẽ và linh hoạt, đặc biệt phù hợp cho việc xây dựng các ứng dụng server-side hiện đại. Dưới đây là một số lý do nên chọn NestJS:

  1. Kiến trúc mô-đun hóa NestJS được thiết kế dựa trên kiến trúc mô-đun hóa, giúp bạn dễ dàng tổ chức và quản lý mã nguồn của mình. Điều này giúp ứng dụng của bạn trở nên dễ bảo trì và mở rộng hơn.

  2. Hỗ trợ TypeScript NestJS được viết bằng TypeScript, mang lại lợi ích từ tính năng typing mạnh mẽ, giúp phát hiện lỗi trong quá trình phát triển và cải thiện năng suất của lập trình viên.

  3. Tính nhất quán và dễ sử dụng NestJS sử dụng các khái niệm quen thuộc từ Angular như các decorator, DI (Dependency Injection), và các module, giúp bạn có một nền tảng phát triển nhất quán và dễ hiểu. Nếu bạn đã quen thuộc với Angular, việc chuyển sang NestJS sẽ rất tự nhiên.

  4. Hỗ trợ đa nền tảng NestJS có thể tích hợp dễ dàng với các thư viện và công cụ khác như Express hoặc Fastify, cho phép bạn xây dựng các ứng dụng từ nhỏ đến lớn một cách linh hoạt và hiệu quả.

  5. Cộng đồng lớn và tài liệu phong phú NestJS có một cộng đồng lớn và tích cực, cùng với tài liệu chi tiết và dễ hiểu, giúp bạn dễ dàng tìm kiếm sự trợ giúp và học hỏi từ những người khác.

  6. Tích hợp dễ dàng với các công nghệ phổ biến NestJS tích hợp tốt với nhiều công nghệ và công cụ phổ biến khác như GraphQL, WebSockets, và microservices, cho phép bạn xây dựng các ứng dụng phức tạp và hiệu suất cao.

  7. Tính năng bảo mật mạnh mẽ NestJS cung cấp các tính năng bảo mật mạnh mẽ và dễ dàng tích hợp với các giải pháp bảo mật phổ biến như Passport, giúp bảo vệ ứng dụng của bạn khỏi các mối đe dọa bảo mật tiềm tàng.

  8. Tích hợp với hệ thống test NestJS hỗ trợ tích hợp tốt với các công cụ kiểm thử như Jest, giúp bạn dễ dàng viết và chạy các bài kiểm thử cho ứng dụng của mình, đảm bảo chất lượng mã nguồn.

  9. Hiệu suất cao Với khả năng tối ưu hóa và tích hợp với các công cụ hiệu suất như Fastify, NestJS có thể cung cấp hiệu suất cao cho các ứng dụng đòi hỏi khả năng xử lý nhiều yêu cầu cùng lúc.

Question 2: NestJS so với cái framework nổi tiếng khác hiện có điểm gì hơn? Lương dev NestJS mới ra trường được bao nhiêu?

Tiêu chí NestJS Express.js Django Flask Spring Boot Ruby on Rails
Hiệu suất Tốt nhờ nền tảng Node.js Tốt nhờ nền tảng Node.js Trung bình do sử dụng Python Trung bình do sử dụng Python Tốt nhờ sử dụng Java, nhưng có thể nặng về bộ nhớ Trung bình, nhưng đã được cải thiện trong phiên bản mới nhất
Sử dụng bộ nhớ Thấp, nhờ vào hiệu quả của Node.js Thấp, nhờ vào hiệu quả của Node.js Cao hơn do đặc điểm của Python và nhiều tính năng tích hợp Thấp, do là microframework Trung bình đến cao, do JVM và tính năng phong phú Cao, do Ruby và nhiều tính năng tích hợp
Sử dụng CPU Hiệu quả, đặc biệt với các tác vụ I/O Hiệu quả, đặc biệt với các tác vụ I/O Sử dụng CPU trung bình, tốt hơn cho các tác vụ CPU-bound Sử dụng CPU trung bình, tốt hơn cho các tác vụ CPU-bound Tốt, đặc biệt với các tác vụ yêu cầu nhiều tính toán Trung bình đến cao, phụ thuộc vào các tác vụ và cấu hình hệ thống
Thời gian phản hồi Thấp, nhờ vào khả năng xử lý không đồng bộ và hiệu quả của Node.js Thấp, nhờ vào khả năng xử lý không đồng bộ và hiệu quả của Node.js Cao hơn do đặc điểm của Python và nhiều tính năng tích hợp Cao hơn do đặc điểm của Python và nhiều tính năng tích hợp Thấp, nhờ vào hiệu suất của Java và khả năng xử lý đồng thời Cao hơn, nhưng đã được cải thiện

Lương sinh viên mới ra trường phụ thuộc vào nhiều yếu tố, range lương NestJS (Gross) là 10-15 triệu