Đồ án Kỹ thuật: tốt nghiệp xây dựng hệ thống chăm sóc khách hàng cho chuỗi

Đồ án nghiên cứu tốt nghiệp xây dựng hệ thống chăm sóc khách hàng cho chuỗi salon tóc, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán kỹ thuật.

Chuyên ngành

Công Nghệ Thông Tin

Tác giả

Lê Quốc Hưng

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2020

116
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Đồ Án Tốt Nghiệp Xây Dựng Hệ Thống Chăm Sóc Khách Hàng

Đồ án tốt nghiệp xây dựng hệ thống chăm sóc khách hàng là một dự án toàn diện được thực hiện bởi sinh viên Công Nghệ Thông Tin tại Trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh. Dự án này nhằm mục đích xây dựng nền tảng quản lý hiện đại cho chuỗi salon tóc, giúp tối ưu hóa quy trình chăm sóc khách hàng và quản lý dịch vụ. Hệ thống chăm sóc khách hàng được phát triển với công nghệ tiên tiến, sử dụng Spring Framework cho backend và Angular cho frontend, nhằm cung cấp trải nghiệm người dùng tốt nhất. Đề tài tập trung vào việc số hóa và tự động hóa các quy trình quản lý đặt lịch, thanh toán, và theo dõi doanh thu cho các cơ sở salon.

1.1. Bối Cảnh và Mục Tiêu Đề Tài

Hiện nay, quản lý salon tóc vẫn còn gặp nhiều khó khăn với việc theo dõi khách hàng, lịch làm việc, và doanh thu. Hệ thống quản lý chăm sóc được phát triển nhằm khắc phục những hạn chế này. Mục tiêu chính là xây dựng một nền tảng công nghệ cho phép khách hàng đặt lịch trực tuyến, xem lịch làm việc của nhân viên, thanh toán trực tuyến, và quản lý hóa đơn. Đồng thời, hệ thống cung cấp công cụ quản lý hiệu quả cho chủ salon trong việc theo dõi doanh thu, thống kê dịch vụ, và quản lý sản phẩm.

1.2. Ứng Dụng 30Shine và Khảo Sát Hiện Trạng

Trang 30Shine là ứng dụng salon phổ biến được chọn làm đối tượng khảo sát để hiểu rõ nhu cầu thị trường. Qua khảo sát hiện trạng, nhóm phát hiện ra những điểm mạnh và yếu của các hệ thống chăm sóc khách hàng hiện tại. Dựa trên đó, đề tài xây dựng một giải pháp quản lý salon toàn diện hơn, với giao diện thân thiện, tính năng đa dạng, và khả năng mở rộng cao cho các chuỗi salon tóc.

II. Kiến Trúc và Công Nghệ Sử Dụng trong Xây Dựng Hệ Thống

Hệ thống chăm sóc khách hàng được xây dựng trên kiến trúc hiện đại với Spring Framework cho backend và Angular cho frontend. Spring Framework cung cấp các module mạnh mẽ như Spring Boot, Spring Data JPA, và Spring Security, cho phép phát triển ứng dụng nhanh chóng và an toàn. JSON Web Token (JWT) được sử dụng để xác thực và bảo vệ API. Cơ sở dữ liệu được thiết kế chi tiết với mô hình quan hệ thực thể (ERD) gồm nhiều bảng lưu trữ thông tin salon, nhân viên, khách hàng, dịch vụ, lịch đặt, hóa đơn và sản phẩm. Kiến trúc này đảm bảo tính bảo mật, hiệu suất caokhả năng mở rộng cho nền tảng quản lý salon.

2.1. Spring Framework và Ưu Điểm của Công Nghệ Backend

Spring Framework là nền tảng phổ biến cho phát triển ứng dụng quản lý với các ưu điểm như Dependency Injection, Service Layer rõ ràng, và quản lý transaction hiệu quả. Module Spring cung cấp tính năng bảo mật, xác thực, và phân quyền người dùng. HTTP methods được sử dụng để xây dựng RESTful API, cho phép giao tiếp hiệu quả giữa frontend và backend. Điều này giúp hệ thống chăm sóc dễ dàng mở rộng và bảo trì trong tương lai.

2.2. Thiết Kế Cơ Sở Dữ Liệu và Mô Hình Quan Hệ

Mô hình quan hệ thực thể (ERD) được thiết kế chi tiết với các bảng: Province, District, Ward, Salon, Employee, Account, Role, Service_Type, Service, Booking, Customer, Bill, Rating, Product, Order. Mỗi thực thể được phân tích kỹ lưỡng để đảm bảo tính toàn vẹn dữ liệuhiệu suất truy vấn. Cơ sở dữ liệu được chuẩn hóa, tránh dư thừa thông tin, và hỗ trợ các chức năng: đặt lịch, cập nhật lịch, xuất hóa đơn, thống kê doanh thu hiệu quả.

III. Chức Năng và Tính Năng Chính của Hệ Thống

Hệ thống quản lý salon cung cấp nhiều chức năng thiết yếu cho cả khách hàng và quản lý viên. Khách hàng có thể đặt lịch trực tuyến, xem lịch làm việc của các nhân viên, chọn dịch vụ, cập nhật thông tin lịch đặt, và thanh toán trực tuyến. Chức năng hóa đơn tự động được tạo ra sau thanh toán. Quản lý viên có thể thống kê doanh thu, theo dõi các đơn đặt lịch, quản lý sản phẩm, và cập nhật thông tin salon. Giao diện thân thiện giúp người dùng dễ dàng sử dụng các chức năng. Hệ thống được tối ưu hóa cho cả thiết bị desktop và mobile, đảm bảo trải nghiệm người dùng tốt nhất trên mọi nền tảng.

3.1. Chức Năng Đặt Lịch và Quản Lý Lịch Làm Việc

Chức năng đặt lịch cho phép khách hàng chọn salon, dịch vụ, thời gian, và nhân viên. Lược đồ tuần tự được thiết kế để xử lý quy trình đặt lịch. Lịch làm việc của nhân viên hiển thị rõ ràng các slot trống và đã đặt. Khách hàng có thể cập nhật thông tin lịch đặt hoặc hủy lịch trước thời hạn. Hệ thống tự động gửi thông báo nhắc nhở đến khách hàng trước buổi hẹn, giúp giảm tỷ lệ bỏ cuộc hẹn.

3.2. Quản Lý Thanh Toán Hóa Đơn và Thống Kê Doanh Thu

Chức năng thanh toán trực tuyến hỗ trợ nhiều phương thức thanh toán an toàn. Hóa đơn được tự động tạo sau khi thanh toán thành công, ghi lại chi tiết dịch vụ, sản phẩm, và giá tiền. Thống kê doanh thu cung cấp báo cáo chi tiết về doanh thu hàng ngày, hàng tháng, so sánh giữa các nhân viên, dịch vụ. Quản lý viên có thể xuất báo cáo dưới dạng PDF, CSV để phục vụ phân tích kinh doanh.

IV. Triển Khai Thực Nghiệm và Hướng Phát Triển Tương Lai

Đồ án tốt nghiệp được triển khai trên các môi trường thực tế như Heroku cho Spring backend và Firebase cho Angular frontend. GitHub Actions được sử dụng để tự động hóa quy trình triển khai, giảm thiểu lỗi thủ công. Jira được sử dụng để quản lý các công việc, theo dõi tiến độ dự án, và GitHub lưu trữ mã nguồn. Các trường hợp thử nghiệm chức năng được thực hiện để đảm bảo toàn bộ hệ thống hoạt động đúng đắn. Kết quả thực nghiệm cho thấy hệ thống chăm sóc khách hàng đạt được các mục tiêu được đề ra. Hướng phát triển tương lai bao gồm tích hợp AI cho gợi ý dịch vụ, ứng dụng mobile native, và tích hợp thanh toán ngân hàng thêm.

4.1. Môi Trường Phát Triển và Công Cụ Quản Lý Dự Án

Heroku được sử dụng để triển khai hệ thống backend Spring Boot với độ ổn định cao. Firebase cung cấp hosting cho ứng dụng Angular với tốc độ truy cập nhanh. Jira giúp nhóm quản lý công việc hiệu quả, theo dõi lỗi, và lập kế hoạch sprint. GitHub lưu trữ và kiểm soát phiên bản mã nguồn, cho phép cộng tác hiệu quả giữa các thành viên. GitHub Actions tự động kiểm tra, xây dựng, và triển khai ứng dụng khi có thay đổi mã, đảm bảo chất lượng liên tục.

4.2. Kết Quả Đạt Được và Hướng Phát Triển

Đồ án tốt nghiệp thành công xây dựng một nền tảng quản lý salon hoàn chỉnh, đáp ứng các yêu cầu ban đầu về chăm sóc khách hàng, quản lý lịch đặt, thanh toán, và thống kê doanh thu. Nhược điểm còn lại bao gồm cần cải thiện hiệu suất tải dữ liệu lớngiao diện mobile. Hướng phát triển tương lai: tích hợp AI chatbot hỗ trợ khách hàng 24/7, phát triển ứng dụng mobile iOS/Android native, cải thiện hệ thống thông báo push, và mở rộng các tính năng CRM cho khách hàng VIP.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

28/12/2025
Đồ án tốt nghiệp xây dựng hệ thống chăm sóc khách hàng cho chuỗi salon tóc

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

Chương 1: Tổng quan 4 Báo cáo đồ án tốt nghiệp Chương 2: CƠ SỞ LÝ THUYẾT 2. Giới thiệu Spring là một framework java mạnh mẽ và phổ biến nhất hiện nay được sử dụng rộng rãi bởi các lập trình viên. Nó giúp rút ngắn thời gian lập trình cũng như tạo ra các ứng dụng có hiệu năng cao và dễ mở rộng. Spring được xây dựng dựa trên nguyên lý thiết kế chính là Dependency Injection và Inversion of Control.

Dependency Injection là nguyên lý thiết kế mà các Object không liên kết trực tiếp với nhau mà liên kết thông qua Interface và thể hiện chi tiết của nó sẽ được Inject vào đối tượng lúc runtime. Từ đó giúp chúng ta dễ dàng dễ dàng mở rộng code và giảm sự phụ thuộc giữa các đối tượng với nhau. Inversion of Control là nguyên tắc thiết kế sử dụng để đảo ngược luồng điều khiển nhằm giảm sự phụ thuộc vào nhau của các đổi tượng. Cụ thể ở đây đó là việc khởi tạo các đối tượng phụ thuộc sẽ không do đối tượng chính kiểm soát nữa mà sẽ được Inversion of Control Container quản lý.

Các đối tượng này sẽ được Inject vào những nơi cần sử dụng thông qua Dependency Injection. Nhờ việc tuân thủ theo nguyên tắc thiết kế này nên các ứng dụng xây dựng bằng Spring dễ dàng bảo trì, tái sử dụng code, thay thế các module một cách đơn giản. Các module của Spring Với gần 20 năm phát triển Spring đã xây dựng được hệ sinh thái với hơn 20 module khác nhau. Spring giúp cho các lập trình viên xây dựng ứng dụng web một cách dễ dàng và nhanh chóng.

Trong đề tài này nhóm thực hiện sử dụng các module sau của Spring để xây dựng ứng dụng web: • Spring boot: hỗ trợ việc khởi tạo một ứng dụng Spring với đầy đủ những cấu hình cơ bản. • Spring MVC: hỗ trợ xây dựng các ứng dụng web theo kiến trúc MVC. • Spring Data: cung cấp cơ chế ánh xạ các đổi tượng của java đến các thực thể trong cơ sở dữ liệu và truy vấn dữ liệu. • Spring Security: cung cấp cơ chế xác thực và phân quyền cho ứng dụng.

Chương 2: Cơ sở lý thuyết 5 Báo cáo đồ án tốt nghiệp 2. Ưu điểm của Spring framework • Là dự án mã nguồn mở với cộng đồng người sử dụng rộng lớn, và nguồn tài liệu phong phú. • Có nhiều module hỗ trợ giúp cho việc xây dựng ứng dụng một cách dễ dàng và nhanh chóng. • Đơn giản hóa việc cấu hình giúp lập trình viên tập trung vào phát triển ứng dụng.

Giới thiệu Angular là một framework được phát triển bởi Google, được dùng để xây dựng các ứng dụng single page sử dụng HTML và TypeScript. Kiến trúc của Angular bao gồm 8 thành phần chính: Module, Component, Template, Metadata, Data binding, Directive, Service và Depency Injection.1: Kiến trúc của Angular 2. Module Module là khái niệm rộng nhất của Angular. Một module có thể bao gồm các components, directives, pipes… và tập hợp các module sẽ tạo nên một ứng dụng Angular.

Các thuộc tính của module bao gồm: Chương 2: Cơ sở lý thuyết 6 Báo cáo đồ án tốt nghiệp • imports: Định nghĩa sự phụ thuộc của một module, các module phụ thuộc sẽ được load trước module chính. • declarations: Định nghĩa tất cả các component sẽ được dùng trong một module. Nếu chưa được định nghĩa thì các component trong module sẽ không thể gọi nhau vì chúng không tìm thấy nhau. • boostrap: Mỗi ứng dụng Angular đều có một module gốc được định nghĩa trong boostrap, module này sẽ có một component gốc chứa giao diện sẽ được hiển thị đầu tiên của ứng dụng.

Component Một component có thể hiểu như một thành phần giao diện được hiển thị trên trình duyệt. Nó là sự kết hợp của giao diện HTML và code TypeScript xử lý các sự kiệm đi kèm. Mỗi component định nghĩa một lớp chứa dữ liệu và các logic xử lí của ứng dụng và được đánh dấu @Component bên trên lớp đó. Một tập hợp các component liên kết với nhau hiển thị ra mà hình được gọi là một View và mỗi View sẽ ứng với một đường dẫn của ứng dụng web.

Template Angular template bao gồm một khung HTML và các cú pháp của Angular dùng chỉnh sửa các thành phần HTML trước khi nó được hiển thị. Các template directive của Angular sẽ cung cấp các logic và ràng buộc để liên kết các dữ liệu của ứng dụng với các DOM (Document Object Model). Có 2 loại ràng buộc dữ liệu: • Event binding: ghi nhận những tương tác của người dùng với dụng và cho phép người lập trình đưa ra những logic xử lí ứng với tương tác đó. Ví dụ như khi người dùng click vào một button hay nhập thông tin vào ô input… • Property binding: giúp người lập trình gán các giữ liệu của của ứng dụng vào các thuộc tính HTML.

Ví dụ như khi thay đổi giá trị của một thẻ input dựa trên dữ liệu của ứng dụng trong component tương ứng. Metadata Metadata là các cấu hình của một component, nó bao gồm: • selector: tên của component để các component khác gọi đến trong code HTML. • template: định nghĩa khung HTML cho component. • templateUrl: đường dẫn tới file HTML bên ngoài để lấy file đó làm khung HTML cho component.

• styles: định nghĩa style css cho component. Chương 2: Cơ sở lý thuyết 7 Báo cáo đồ án tốt nghiệp • styleUrl: đường dẫn đến file CSS dành riêng cho component. Data binding Data binding đóng vai trò quan trọng trong việc giao tiếp giữa template và component, cũng như giao tiếp giữa các component với nhau. Nó giúp cho chúng ta hiển thị dữ liệu của ứng dụng ra màn hình bằng 2 cách: • Interpolation: truyền dữ liệu 1 chiều từ component ra HTML.

• Two-way binding: truyền dữ liệu 2 chiều giữa compent và HTML, nghĩa là khi giá trị của thẻ HTML thay đổi thì dữ liệu trong component sẽ ngay lập tức thay đổi theo giá trị đó và ngược lại. Directive Directive là những thành phần mở rộng cho các thẻ HTML trong Angular. Các directive sẽ được trình biên dịch của Angular biến đổi thành các thẻ HTML trước khi hiển thị ra màn hình. Có 3 lại directive: • Components directive: một component sẽ được gọi ra thông qua selector của nó trong trang HTML.

Ví dụ: khi đưa selector <app-root/> vào file index.html, bản thân HTML sẽ không hiểu được thẻ này mà sẽ dựa trên chỉ dẫn của directive trong quá trình Angular biên dịch để chuyển nó thành khối thẻ HTML tương ứng để trình duyệt có thể hiểu được. • Structural directive: dùng để thay đổi giao diện bằng cách thêm, bớt, thay thế các phần tử HTML. Các structural directive thường có dấu ‘*’ ở trước của directive. Ví dụ: *ngFor, *ngIf… • Attribute directive: dùng để thay thể hành vi của những những thành phần giao diện đã có sẵn.

Cụ thể nó sẽ dựa trên data binding, event binding và property binding để biên dịch ra các thẻ HTML tương ứng. Service và Dependency Injection Trong Angular, những logic hay hay dữ liệu được chung cho nhiều componet sẽ được đưa vào một lớp service. Lớp service này cần được đánh dấu @Injectable, và khai báo ở phần providers của component hoặc module chứa component để nó có thể inject vào các component đó theo cơ chế tương tự như của Spring (mục 2. Ưu điểm • Cung cấp nhiều module giúp cho việc xây dựng front-end của ứng dụng web dễ dàng và nhanh chóng hơn.

• Tính tái sử dụng và mở rộng cao nhờ việc chia ứng dụng thành các component. Chương 2: Cơ sở lý thuyết 8 Báo cáo đồ án tốt nghiệp • Được viết bằng Typescript – ngôn ngữ hướng đối tượng, giúp cho cách tổ chức code trở nên rõ ràng. • Cộng động sử dụng đông đảo, với nhiều nguồn tài liệu tham khảo và thư viện hỗ trợ. Giới thiệu REST (REpresentational State Transfer) là một thiết kế tận dụng những ưu điểm của giao thức HTTP để phát triển ứng dụng web (thiết kế web service) phục vụ cho việc quản lý tài nguyên của ứng dụng.

REST không phụ thuộc và một loại định dạng dữ liệu như SOAP (định dạng XML) mà nó có thể xử lý nhiều loại định dạng dữ liệu khác nhau tùy vào nhu cầu người sử dụng. Một ứng dụng tuân thủ theo nguyên tắc thiết kế này được gọi là RESTful. API (Application Programming Interface) là phương thức, giao thức kết nối giữa các hệ thống, thành phần ứng dụng khác nhau. RESTful API sử dụng các phương thức HTTP để các hệ thống tương tác với nhau theo chuẩn REST.

Nó cho phép chúng ta phân chia ứng dụng ra thành những thành phần riêng biệt (Client và Server) và giao tiếp với nhau thông qua các API với một định dạng dữ liệu cụ thể (trong đề tại này nhóm thực hiện sử dụng định dạng JSON). Các phương thức HTTP HTTP định nghĩa một tập các phương thức để miêu tả các yêu cầu giữa các hệ thống với nhau để thêm, xóa, cập nhật, hoặc đơn giản là đọc một tài nguyên. Có tổng cộng 9 loại phương thức: GET, HEAD, POST, PUT, PATCH, DELETE, CONNECT, OPTIONS, TRACE. Trong đề tài này, nhóm thực hiện sử dụng các phương thức sau: • GET: dùng để truy xuất dữ liệu và không sửa đổi thông tin theo bất kì cách nào.

• POST: dùng để tạo ra một đối tượng mới trong cơ sở dữ liệu. • PUT: dùng để cập nhật toàn bộ thông tin của một đối tượng hiện có. Nếu đối tượng không tồn tại thì sẽ tạo mới. • PATCH: dùng để cập nhật một phần thông tin của đối tượng được yêu cầu.

• DELETE: dùng để xóa đối tượng được yêu cầu. Ưu điểm • Khả năng mở rộng cao nhờ sự tách biệt giữa các thành phần. • Sử dụng được cho nhiều nền tảng khác nhau mobile, web… Chương 2: Cơ sở lý thuyết 9 Báo cáo đồ án tốt nghiệp • Giao tiếp giữa các thành phần được định nghĩa rõ ràng, dễ hiểu. • Khả năng thay đổi linh hoạt, không phụ thuộc vào một loại dữ liệu nhất định.

JSON Web Token (JWT) 2. Giới thiệu JSON Web Token (JWT) là một chuỗi mã hóa được dùng để truyền dữ liệu dữ liệu một cách an toàn giữa các bên bằng một đối tượng JSON. Thông tin truyền đi được xác thực bằng một chữ ký số mã hóa bằng HMAC SHA256 hoặc RSA. JWT thường được dùng để xác thực người dùng trong hệ thống sử dụng RESTful API.

Cấu trúc Cấu trúc của JWT bao gồm 3 phần phân cách nhau bằng dấu ‘.’: • Header: chứa thông tin của giải thuật mã hóa chữ ký số (HMAC SHA256 hoặc RSA) và loại token (JWT). Header là một đối tượng JSON được mã hóa bằng Base64. • Payload: chứa nội dung của thông tin được truyền đi. Thông tin đó thường là thông tin của người dùng (tên, email, quyền…) kèm theo thông tin của token (thời điểm cấp token, thời điểm token hết hạn…).

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