Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
285,9 KB
Nội dung
Báo cáo Đồ án TÌM HIỂU NESTJS VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA Giảng viên hướng dẫn: Th.S Nguyễn Tấn Toàn Sinh viên thực hiện: Trần Bảo Ân MSSV: 20520377 Trần Bảo Ân | 20520377 Nội dung báo cáo Lý thuyết NestJS 1.1 Tổng quan NestJS 1.2 Các khái niệm quan trọng NestJS 1.3 So sánh NestJS với framework khác Xây dựng ứng dụng minh họa: Website môi giới bất động sản Katana 2.1 Phát biểu toán, hướng giải 2.2 Cơng nghệ sử dụng 2.3 Phân tích u cầu, thiết kế giải pháp Demo Kết luận hướng phát triển Trần Bảo Ân | 20520377 Lý thuyết NestJS 1.1 Tổng quan NestJS 1.2 Các khái niệm quan trọng NestJS 1.3 So sánh NestJS với framework khác Trần Bảo Ân | 20520377 1.1 Tổng quan NestJS ⮚ NodeJS Javascript runtime, đời năm 2009, xây dựng “V8 Javascript Engine” ⮚ NestJS framework phát triển ứng dụng web back-end, xây dựng tảng Node.js, giải toán NodeJS “Kiến trúc” ⮚ Nền tảng cấu thành NestJS: • Node.js • TypeScript • Express.js • WebSockets • Microservices • Dependency Injection (DI) Trần Bảo Ân | 20520377 1.2 Các khái niệm quan trọng NestJS Controllers Providers Services Middleware Data Persistence WebSockets Microservices CLI Trần Bảo Ân | 20520377 1.3 So sánh NestJS với framework khác Express.js: • Express.js framework phát triển ứng dụng web back-end phổ biến đơn giản cộng đồng Node.js • NestJS xây dựng dựa Express.js cung cấp cấu trúc module, Dependency Injection, decorators nhiều tính khác để tạo mã nguồn có tổ chức dễ bảo trì • NestJS hỗ trợ tích hợp tốt với TypeScript cung cấp tính mạnh mẽ GraphQL, WebSockets Microservices Koa: • Koa framework nhẹ mạnh mẽ, tương tự Express.js, có mơ hình xử lý middleware đại • NestJS cung cấp cấu trúc module, Dependency Injection tính nâng cao khác, Koa tập trung vào việc cung cấp mơ hình middleware đơn giản linh hoạt • Điều làm cho NestJS thích hợp cho ứng dụng lớn phức tạp hơn, Koa phù hợp cho ứng dụng nhỏ tùy chỉnh AdonisJS: • AdonisJS framework Node.js full-stack lấy cảm hứng từ Laravel (một framework phát triển ứng dụng web PHP) • AdonisJS cung cấp mơ hình MVC (Model-View-Controller) hồn chỉnh, NestJS tập trung vào việc cung cấp cấu trúc module, Dependency Injection tính phát triển ứng dụng web back-end mạnh mẽ • NestJS hỗ trợ tích hợp tốt với TypeScript sử dụng để phát triển ứng dụng Node.js back-end hiệu dễ bảo trì Trần Bảo Ân | 20520377 Xây dựng ứng dụng minh họa: Website môi giới bất động sản Katana 2.1 Phát biểu tốn, hướng giải 2.2 Cơng nghệ sử dụng 2.3 Phân tích yêu cầu, thiết kế giải pháp Trần Bảo Ân | 20520377 2.1 Phát biểu toán giải pháp Phát biểu tốn • Phía người mua: Các thành phố lớn Việt Nam có mật độ dân số cao Nhu cầu tìm mua bất động sản theo mà tăng nhanh Thế nhưng, người có nhu cầu mua gặp nhiều khó khăn việc tìm thơng tin bất động sản, bao gồm: giá, địa điểm, diện tích, văn hóa, mơi trường xung quanh… Việc tìm kiếm truyền thống nhiều thời gian, công sức, tiền mang lại hiệu thấp • Phía người bán: Họ người có tài sản muốn bán chưa tìm thị trường phù hợp Việc thiếu kiến thức chuyên môn thiếu mối quan hệ xã hội khiến người bán thường mắc phải vấn đề đầu cho tài sản Họ thường phát tờ rơi, dán biển quảng cáo Tuy nhiên phương pháp chưa thật hiệu mức độ truyền thơng khơng cao • Nhận thấy cần có ứng dụng đóng vai trị cầu nối để giảm khoảng cách người mua người bán, em thực xây dựng “Website môi giới bất động sản Katana” Trần Bảo Ân | 20520377 2.1 Phát biểu tốn giải pháp Giải pháp • Website bao gồm: • trang web đăng tải thơng tin tương tác với người dùng gọi Landing Page • trang để quản trị viên thực chức quản lý gọi Web Admin Trần Bảo Ân | 20520377 2.2 Cơng nghệ sử dụng • Front-end: ReactJS • Back-end: NestJS • Cơ sở liệu: PostgresQL • Docker • Quản lý mã nguồn: Git-Github Trần Bảo Ân | 20520377 10 2.3 Phân tích yêu cầu, thiết kế giải pháp Danh sách yêu cầu chức Visitor Đăng nhập, Đăng xuất Admin Master admin X X Đăng ký X Xem chi tiết dự án bất động sản X X X Tìm kiếm bất động sản theo tiêu chí X Lọc kết tìm kiếm theo giá theo địa điểm X Xem tin tức quảng cáo X Để lại thông tin liên hệ X Xem thống kê doanh thu X X Xuất file thống kê dạng xlsx csv X X Thay đổi trạng thái tài khoản nhân viên X Xóa tài khoản nhân viên khỏi hệ thống X Kiểm duyệt dự án khách hàng đăng ký X X Tạo dự án X X Cập nhật dự án: tình trạng, mơ tả… X X Xóa dự án X X X X Xem danh sách khách hàng tiềm Trần Bảo Ân | 20520377 11 2.3 Phân tích yêu cầu, thiết kế giải pháp Yêu cầu giao diện (GUI): dễ sử dụng, đại, trình bày bắt mắt thu hút người xem, tương tác cao… Vận hành: ∙ Chạy nhiều trình duyệt phổ biến Chrome, Edge, Firefox ∙ Chạy máy tính xách tay, máy tính bàn, thiết bị di động Hiệu suất: ∙ Hệ thống hoạt động liên tục 24/7 ∙ Mọi tương tác người dùng hệ thống không vượt giây ∙ Có khả chịu tải 30 TPS ∙ Có phân quyền người dùng ∙ Các phòng ban/khoa khác xem thơng tin phịng ban ∙ Giảng viên xem thơng tin thơng tin lớp chịu trách nhiệm ∙ Hủy quyền tài khoản cán bộ/giảng viên dừng công tác Văn hóa, trị: • Hệ thống phải tn thủ luật quyền riêng tư người dùng • Hệ thống đảm bảo tuân thủ luật liên quan đến giáo dục theo luật pháp hành Việt Nam Trần Bảo Ân | 20520377 12 Sơ đồ Usecase Web Admin Trần Bảo Ân | 20520377 13 Sơ đồ Usecase Landing Page Trần Bảo Ân | 20520377 14 ERD Trần Bảo Ân | 20520377 15 Demo Luồng demo Kiến thức áp dụng Trần Bảo Ân | 20520377 16 Kết luận hướng phát triển Kết đạt • Áp dụng thành cơng kiến thức NestJS vào việc xây dựng website Sản phẩm cung cấp đầy đủ tính website quảng cáo cho doanh nghiệp • Ghi nhận lại kiến thức nghiên cứu vào phần báo cáo cuối kỳ giúp lập trình viên khác tham khảo, sử dụng cho nghiên cứu sau • Do thời gian nguồn lực hạn chế nên chức website nâng cấp Hướng phát triển • Về mặt doanh nghiệp, thực hóa thêm chức năng: ❖ Chức chat để quản trị viên người dùng tương tác trực tiếp nhanh ❖ Kiểm duyệt viết tự động: Kết hợp trí tuệ nhân tạo để tự động kiểm duyệt viết trước đăng tải Cụ thể ta kiểm duyệt nội dung, từ ngữ văn phong phù hợp với phong mỹ tục ❖ Thêm chức thẩm định tài sản thay cho phương pháp thẩm định thủ cơng • Về mặt kĩ thuật: ❖ Back-end dự án sử dụng kiến trúc Monolithic Nếu tương lai, số lượng yêu cầu gửi xử lý nhiều, liệu lưu trữ xử lý phức tạp, kiến trúc khơng cịn phù hợp mà nên thay Microservice ❖ Mã nguồn cần deploy Trần Bảo Ân | 20520377 17 Cảm ơn quý thầy cô lắng nghe! Trần Bảo Ân | 20520377 18