Đồ án: Website bất động sản Full Stack với ReactJS, NodeJS, MySQL và Express

Đồ án tốt nghiệp xây dựng website bất động sản full stack với ReactJS, NodeJS, MySQL. Tài liệu báo cáo chi tiết, hữu ích cho sinh viên ngành CNTT.

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2024

82
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về Xây dựng Website Bất động sản Full Stack ReactJS NodeJS

Trong thời đại cách mạng công nghiệp 4.0, website bất động sản trở thành công cụ không thể thiếu cho các doanh nghiệp. Xây dựng website bất động sản Full Stack sử dụng ReactJS và NodeJS giúp tạo ra một nền tảng hiện đại, hiệu quả và có khả năng mở rộng cao. Công nghệ Full Stack ReactJS NodeJS cho phép nhà phát triển xây dựng giao diện người dùng (Frontend) mạnh mẽ với ReactJS đồng thời phát triển máy chủ (Backend) linh hoạt với NodeJS. Điều này tạo ra một hệ thống hoàn chỉnh cho phép hiển thị, tìm kiếm và quản lý các bất động sản một cách hiệu quả.

1.1. Lợi ích của ReactJS trong phát triển Frontend

ReactJS là một thư viện JavaScript mạnh mẽ giúp tạo giao diện người dùng động và tương tác. Với ReactJS, các lập trình viên có thể xây dựng các component tái sử dụng, cải thiện hiệu suất ứng dụng và tạo trải nghiệm người dùng mượt mà. ReactJS cho phép quản lý trạng thái dữ liệu một cách hiệu quả, giúp website bất động sản hoạt động nhanh chóng và phản ứng tốt với các tương tác của người dùng.

1.2. Vai trò của NodeJS trong phát triển Backend

NodeJS là môi trường runtime JavaScript phía máy chủ, cho phép xây dựng Backend mạnh mẽ và có khả năng mở rộng. Với NodeJS, các nhà phát triển có thể tạo API RESTful để xử lý các yêu cầu từ Frontend, quản lý cơ sở dữ liệu và xử lý logic kinh doanh phức tạp. NodeJS hỗ trợ xử lý đa số lượng kết nối đồng thời, làm cho nó lý tưởng cho các ứng dụng web có lưu lượng cao.

II. Kiến trúc và Công nghệ Sử dụng

Kiến trúc Full Stack ReactJS NodeJS bao gồm ba thành phần chính: Frontend sử dụng ReactJS, Backend sử dụng NodeJS với Express framework, và cơ sở dữ liệu MySQL. Mô hình này theo quy tắc MVC (Model-View-Controller), nơi ReactJS đóng vai trò View, NodeJS xử lý Controller và Business Logic, còn MySQL quản lý dữ liệu (Model). Express framework làm cho việc phát triển API trên NodeJS trở nên đơn giản và hiệu quả. Cách tiếp cận này giúp website bất động sản có cấu trúc rõ ràng, dễ bảo trì và có thể mở rộng khi cần.

2.1. Frontend ReactJS và các thư viện hỗ trợ

Frontend của website bất động sản được xây dựng trên nền ReactJS, sử dụng các thư viện hỗ trợ như React Router cho điều hướng, Axios cho gọi API, và Redux/Context API cho quản lý trạng thái. Giao diện hiển thị danh sách bất động sản, chi tiết từng bất động sản, chức năng tìm kiếm và lọc dữ liệu. ReactJS cho phép tạo single-page application (SPA) giúp nâng cao trải nghiệm người dùng.

2.2. Backend NodeJS Express và MySQL

Backend sử dụng NodeJS kết hợp với Express framework để tạo các API endpoint xử lý yêu cầu từ Frontend. MySQL được sử dụng làm cơ sở dữ liệu lưu trữ thông tin bất động sản, thông tin người dùng và các dữ liệu khác. Middleware trong Express giúp xử lý xác thực, kiểm tra dữ liệu và xử lý lỗi một cách hiệu quả.

III. Tính Năng Chính của Website Bất Động Sản

Website bất động sản Full Stack cần cung cấp các tính năng thiết yếu cho cả người dùng và quản trị viên. Cho người dùng, website phải hỗ trợ tìm kiếm bất động sản theo các tiêu chí khác nhau như vị trí, giá cả, diện tích và loại bất động sản. Tính năng xem chi tiết từng bất động sản với hình ảnh, mô tả chi tiết và thông tin liên hệ là bắt buộc. Hệ thống quản lý admin panel cho phép quản trị viên thêm, chỉnh sửa, xóa thông tin bất động sản và quản lý người dùng. Tính năng đăng nhập, đăng ký và lưu thông tin yêu thích cũng quan trọng.

3.1. Chức năng cho Người Dùng Client

Người dùng có thể duyệt danh sách bất động sản, sử dụng bộ lọc nâng cao để tìm kiếm theo tiêu chí cụ thể, xem chi tiết từng bất động sản, và liên hệ với chủ nhân bất động sản. Tính năng lưu những bất động sản yêu thích, xem lịch sử tìm kiếm và nhận thông báo về các bất động sản mới cũng nâng cao trải nghiệm người dùng.

3.2. Hệ Thống Quản Lý Admin

Admin panel cho phép quản trị viên quản lý toàn bộ dữ liệu website. Các tính năng bao gồm: thêm, chỉnh sửa, xóa bất động sản; quản lý người dùng; thống kê doanh thu; quản lý danh mục bất động sản; xem báo cáo hoạt động. Admin có thể duyệt duyệt liên hệ từ khách hàng và quản lý các yêu cầu đặc biệt.

IV. Quy Trình Phát Triển và Triển Khai Website

Quy trình phát triển website bất động sản Full Stack tuân theo các bước: phân tích yêu cầu, thiết kế cơ sở dữ liệu, phát triển Backend API, phát triển Frontend, kiểm thử toàn bộ hệ thống và triển khai lên máy chủ. Sử dụng Git để quản lý phiên bản code giúp đội phát triển làm việc hiệu quả. Testing là bước quan trọng để đảm bảo chất lượng, bao gồm unit testing, integration testing và end-to-end testing. Triển khai có thể sử dụng các dịch vụ đám mây như Heroku, AWS hoặc các server chia sẻ.

4.1. Thiết kế Cơ Sở Dữ Liệu và Phát Triển Backend

Thiết kế cơ sở dữ liệu MySQL cần xác định rõ các bảng như Users, Properties, Categories, Contacts. Mối quan hệ giữa các bảng phải được thiết kế cẩn thận để đảm bảo tính toàn vẹn dữ liệu. Backend phát triển các API endpoint sử dụng RESTful principles, xử lý xác thực JWT và kiểm tra quyền truy cập.

4.2. Kiểm Thử Triển Khai và Bảo Trì

Kiểm thử phải bao gồm các trường hợp sử dụng thực tế, kiểm tra hiệu suất, bảo mật và khả năng mở rộng. Sử dụng CI/CD pipeline để tự động hóa quy trình kiểm thử và triển khai. Sau triển khai, cần giám sát hiệu suất, sửa lỗi nhanh chóng và cập nhật các tính năng mới dựa trên phản hồi người dùng.

18/12/2025

Trích đoạn nội dung tài liệu

MINISTRY OF EDUCATION AND TRAINING HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY AND EDUCATION FACULTY FOR HIGH QUALITY TRAINING GRADUATION PROJECT ELECTRONICS AND COMMUNICATIONS FULL STACK DEVELOPMENT HIRING HOME WEBSITE USING REACTJS, NODEJS, MYSQL, EXPRESS LECTURER: TRUONG QUANG PHUC STUDENT: TRAN DINH PHUC SKL012495 Ho Chi Minh City, December 2024 HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY AND EDUCATION FACULTY FOR HIGH QUALITY TRAINING GRADUATION PROJECT FULL STACK DEVELOPMENT HIRING HOME WEBSITE USING REACTJS, NODEJS, MYSQL, EXPRESS TRAN DINH PHUC Student ID : 19161067 Major : ELECTRONICS AND COMMUNICATIONS ENGINEERING TECHNOLOGY Supervisor : TRƯƠNG QUANG PHÚC, MEng. Ho Chi Minh City, December 2023 i HO CHI MINH CITY UNIVERSITY OF THE SOCIALIST REPUBLIC OF VIETNAM TECHNOLOGY AND EDUCATION FACULTY FOR HIGH QUALITY TRAINING Independence – Freedom– Happiness -------- GRADUATION PROJECT ASSIGNMENT Student name : TRAN DINH PHUC Student ID : 19161067 Major : Electronic and telecommunication Class : 19161CLA2 Advisor : M. Trương Quang Phúc. Phone : 0917 731 988 Date of assignment : Date of submission : 1.

Project title : Full Stack development hiring home using ReactJs, NodeJs, MySQL, Express 2. Initial materials provided by advisor : Basic knowledge of website architecture and systems 3. Content of project : Website design to display and preview various types of real estate, Learn about ReactJS and NodeJs technology, interact with the database through APIs. Final product : Website real estate display includes an administration system and a client system.

CHAIR OF PROGRAM ADVISOR (Sign with full name) (Sign with full name) Trương Quang Phúc iii HO CHI MINH CITY UNIVERSITY OF THE SOCIALIST REPUBLIC OF VIETNAM TECHNOLOGY AND EDUCATION FACULTY FOR HIGH QUALITY TRAINING Independence – Freedom– Happiness -------- ADVISOR’S EVALUATION SHEET Student name : Trần Đình Phúc Student ID : 19161067 Major : Electronic and telecomunication Project title : Full Stack development hiring home using ReactJs, NodeJs, MySQL, Express. Trương Quang Phúc. Content of the project:. Approval for oral defense? (Approved or denied) Approved.

Overall evaluation: (Excellent, Good, Fair, Poor) Good.(in words:………………………………………………………) Ho Chi Minh City, (month day, year) ADVISOR (Sign with full name) Trương Quang Phúc iv HO CHI MINH CITY UNIVERSITY OF THE SOCIALIST REPUBLIC OF VIETNAM TECHNOLOGY AND EDUCATION FACULTY FOR HIGH QUALITY TRAINING Independence – Freedom– Happiness -------- PRE-DEFENSE EVALUATION SHEET Student name : Trần Đình Phúc Student ID : 19161067 Major : Electronic and telecomunication Project title : Full Stack development hiring home using ReactJs, NodeJs, MySQL, Express. Name of Reviewer:. Content and workload of project:. Approval for oral defense? (Approved or denied).

Comments and suggestions. Ho Chi Minh City, (month day, year) REVIEWER (Sign with full name) v HO CHI MINH CITY UNIVERSITY OF THE SOCIALIST REPUBLIC OF VIETNAM TECHNOLOGY AND EDUCATION FACULTY FOR HIGH QUALITY TRAINING Independence – Freedom– Happiness -------- EVALUATION SHEET OF DEFENSE COMMITTEE MEMBER Student name : Trần Đình Phúc Student ID : 19161067 Major : Electronic and telecomunication Project title : Full Stack development hiring home using ReactJs, NodeJs, MySQL, Express. Name of Reviewer :…………………………………………………………………… EVALUATION 1. Content and workload of project:.

Approval for oral defense? (Approved or denied). Comments and suggestions. Ho Chi Minh City, (month day, year) COMMITTEE MEMBER (Sign with full name) vi DISCLAIMER I hereby declare that this is a research system based on my own accumulated knowledge, the data and research results presented in the report are truthful and have never been published in any other system. Ho Chi Minh City, January, 2024 Students perform Trần Đình Phúc vii ACKNOWLEDGEMENT During the implementation of the graduation project, I have received a lot of help, suggestions, and indicators from teachers and friends.

To complete the project " Full stack development hiring home website using reactjs, nodejs, mysql, express.", I would like to thank MEng. Truong Quang Phuc - Lecturer in the Department of Electrical and Electronic Engineering, University of Technology and Education of Ho Chi Minh City. With dedicated guidance, guidance, facilitating and supporting me to successfully complete this project. I would like to thank the authors of the reference sources who helped the group to have more knowledge and choices in the process of implementing the topic.

Although I have tried to complete this topic in the most complete way, there are certain errors in research work, practical approach, as well as limitations in knowledge and implementation time. Looking forward to receiving your comments so that I can supplement and correct the topic to be more complete. Once again, I sincerely thank you. Sincerely, Tran Dinh Phuc viii ABSTRACT Nowsadays, with the fever of the real estate market in the industrial revolution, with the plus improved quality of life, people are flocking everywhere to find job opportunities.

Along with the strong development of education, the demand for renting houses is increasing day by day. To meet that, online viewing real estate is developed and the website provides information instantly, promising to improve the efficiency of providing infomation through the internet. At the same time, website became more famous nowsadays, some suitable features that could become the main technology in future internet systems, avoiding the difficulties of implementing actual real buissiness. In this capstone design project, I am focuses on surveying and simulating the work-flow through the full stack web development, including giving buisiness solutions based on my website.

Simultaneously use four techniques : React js , Node js, Express and mySQL in my website. Then give the development direction for the topic. ix TABLE OF CONTENTS CHAPTER 1 : INTRODUCTION. 3 CHAPTER 2: LITERATURE REVIEW .2 JSON WEB TOKEN .7 APPLICATION PROGRAMMING LANGUAGE (API).

10 CHAPTER 3: SYSTEM DESIGN .2 Non-functional requirements .4 USE CASE MODEL AND SYSTEM SPECIFICATION .2 User post management .3 User information management .4 Modal filter function .1 Post management function .2 Post filter function .3 LOGIN AND REGISTER.6 VALIDATE DATA FUNCTION .7 PERSONAL INFORMATION MANAGEMENT. 60 CHAPTER 5 : CONCLUSION AND FUTURE WORK .66 xi LIST OF FIGURES Figure 2. 1 JSON Web Token work-flow. 2 User post management.

3 User information management. 6 Post management activity diagram. 7 Modal filtering function diagram. 8 Working mechanism of modal search by range.

9 User information management diagram. 1 Layout of the website client-view. 2 Footer of pages. 3 Detailed layout of posts.

4 Detailed table of posting characteristics. 5 Registration page interface. 6 Test the API using postman to see the response. 7 Popup notification of login status.

8 Warning for wrong form fill. 9 Layout of create new posts. 10 Layout of post management. 11 The function returns the post information update status.

12 Result of active post filtering. 13 Result of filtering expired posts. 14 Interface of the post editing page. 15 The result of the province API call.

16 Result when retrieving from the city to get the district name. 17 A list of data will be output for the user to choose. 18 Result when clicking select city and province tag. 19 The system returns the district by city name.

20 The address of the selection will be rendered. 21 Interface for users to upload photos. 22 Preview tag to preview the image. 23 Folder containing images in cloudinary.

24 Image sequential process is uploaded. 25 Link storage database. 26 Folder to save photos on cloudinary. 27 Validate data before sending.

28 Warning below input form. 29 Personal information management interface. 30 Updated personal information successfully. 31 Layout contact form.

32 Pop-up notification success send. 33 Chatbot's interface and location. 35 Conversational chat bot. 36 Chat with chat bot .63 xiii LIST OF TABLES Table 3.

1 Table describing the lable’s properties. 2 Table describing the attribute's properties. 3 Table describing the user's properties. 4 Table describing the user's contact properties.

5 Table describing the user's categories properties. 6 Table describing the user's area properties. 7 Table describing the images properties. 8 Table describing the overview properties.

9 Table describing the price properties. 10 Table describing the posts properties. 11 Table describing the province properties. 12 Use case specification for guest.

13 Use case specification for user post management. 14 Use case specification for user information management. 15 Use case specification for user filter posts management. 16 Use case specification for chat bot .27 xiv ACRONYMS SIGN THUẬT NGỮ MVP Minimum valuable product API Application Programming Interface SQL Structure Query Language WTO World Trade Organization CSS Cascading Style Sheets TDEE Total Daily Energy Expenditure JWT Json Web Token HTML Hypertext Markup Language HTTP HyperText Transfer Protocol CRUD Create – Read – Update- Delete xv CHAPTER 1 : INTRODUCTION 1.1 OVERVIEW Urbanization also comes with many problems that need to be solved due to overcrowding in urban areas such as environmental pollution, traffic jams, food hygiene and safety, material and spiritual life, housing for workers.For big cities, especially Ho Chi Minh City - a city with over 8 million people - the above problems become even more complicated, especially the problem of accommodation for immigrants, workers and students of universities and colleges.

Hundreds of newly established companies also need to rent space for transaction locations, representative offices.Thus, there is a daily need to find boarding houses to rent, as well as finding office space to rent. Representatives and trading locations are very large. There is a problem here is probably that there is not a certain connection between the buyer and the seller. While people who want to buy or rent a house can't find all the apartments for rent, renters can't find people with that need.

So this website was born to solve that problem, with a powerful combination of a simple user interface, a clean and well designed database that makes the website work. very simple and minimalistic.Combining existing technologies as well as redesigning the interface appropriately will partly make it easier for older customers to access technology, and partly create simplicity, avoiding complicated problems. At the same time, it also beautifies the interface and makes it more suitable for users. Nowadays, the need to search for all information on the internet has become quite popular.

To connect people who want to buy and people who have real estate to sell or rent. Therefore, my topic is to design a website to search for accommodation quickly and effectively. After coming up with the idea, I proceed to analyze and design my idea.2 RELATED WORKS In [1], the website clearly functions in different blocks, making the website have a friendly user interface. However, the layout causes problems because it allows advertising, confusing information, leading to overload for users, without focusing on usual information.

In this case, it will distract users from the process of finding information and hinder the web surfing process. 1 In [2] the information has been designed reasonably, each separate functional block has made accessing information easier, the speed of the website has also clearly improved, the information is centralized. In general, the functions also work stably, but not being able to integrate chat bots and leaving contact information still faces many difficulties. In [3], this project has a uniform design,also has a price chart to update current prices, but the displayed information has not been presented clearly, functions have not been shown specifically, making customer access to information not optimal.

Specifically, the search and price filter modal is still not optimized.3 OBJECTIVES - The user interface is easy to use, the layout design identifies to be clear, the application of functions such as notifications and user interaction need to be optimized. - The database design calculated for the needed performance, all the data have to strictly for the managed database table.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ