Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh ngành công nghệ thông tin phát triển nhanh chóng, nhu cầu xây dựng các ứng dụng web quản trị dữ liệu phục vụ doanh nghiệp và tổ chức ngày càng gia tăng. Tuy nhiên, nguồn nhân lực lập trình viên có kinh nghiệm vẫn còn hạn chế. Trong thực tế phát triển phần mềm, các kỹ sư thường xuyên phải lặp lại các công đoạn xây dựng giao diện quản trị, thiết lập mô hình dữ liệu (Data Model), viết các tầng truy xuất dữ liệu và cài đặt các chức năng CRUD (Create - Read - Update - Delete) cơ bản cho từng bảng dữ liệu. Quá trình lặp đi lặp lại này làm tiêu tốn nhiều thời gian, công sức và làm giảm hiệu suất phát triển các tính năng nghiệp vụ cốt lõi ở phía máy khách (Client-side).

Nhằm giải quyết bài toán trên, nhóm tác giả đã đề xuất và xây dựng hệ thống Easy-Web – một nền tảng mã nguồn mở có chức năng tự động tạo mã nguồn ứng dụng web quản trị hoàn chỉnh dựa trên cơ sở dữ liệu quan hệ có sẵn của người dùng.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Nghiên cứu cơ chế phân tích cấu trúc lược đồ dữ liệu từ các hệ quản trị cơ sở dữ liệu quan hệ phổ biến (Microsoft SQL Server, MySQL, PostgreSQL).
  2. Xây dựng quy trình 4 bước cấu hình trực quan cho phép người dùng tùy biến bảng, cột, thao tác CRUD và nhận diện thương hiệu mà không cần viết mã lệnh (No-code).
  3. Thiết kế và hiện thực khung sinh mã nguồn (Website Generate Framework) có khả năng tự động tạo đầy đủ mã nguồn Back-end (ASP.NET Core RESTful API), Middleware (Swagger Code Generation) và Front-end (Angular 12).
  4. Tích hợp cơ chế hàng đợi xử lý nền (Redis Queue) để quản lý các tác vụ sinh mã phức tạp, tránh tình trạng gián đoạn kết nối HTTP giữa máy khách và máy chủ.
  5. Đóng gói sản phẩm thành giải pháp hoàn chỉnh cho phép người dùng tải mã nguồn, nhận mã nguồn qua email hoặc chuẩn bị cho việc triển khai trực tiếp lên máy chủ.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Công cụ sinh mã nguồn tự động (Source Code Generator) cho ứng dụng web dựa trên cơ sở dữ liệu hiện có.
  • Phạm vi không gian: Đồ án tốt nghiệp ngành Công nghệ Thông tin, thực hiện tại Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (HCMUTE).
  • Phạm vi thời gian: Đề tài được giao ngày 15/03/2021 và hoàn thành nộp báo cáo vào ngày 19/07/2021.
  • Phạm vi công nghệ: Hỗ trợ trích xuất dữ liệu từ Microsoft SQL Server 2019, MySQL và PostgreSQL; sinh ứng dụng web với kiến trúc phân tầng gồm Back-end ASP.NET Core và Front-end Angular 12.

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa việc khảo sát giải pháp thương mại sẵn có và ứng dụng các lý thuyết kỹ nghệ phần mềm hiện đại nhằm xây dựng kiến trúc sinh mã tối ưu:

Hạng mục Cơ sở lý thuyết và công nghệ áp dụng Vai trò trong hệ thống
Giải pháp đối sánh Visual Studio’s MVC Web Application Generator (từ Visual Studio 2017) Phân tích ưu/nhược điểm của công cụ Scaffolding sẵn có để định hình tính năng cho Easy-Web
Kỹ thuật ORM & CSDL Entity Framework Core 5.0 (lệnh Scaffold-DbContext), Code First / Database First Kỹ thuật đảo ngược (Reverse Engineering) lược đồ CSDL thành các lớp Entity C#
Hệ quản trị CSDL Microsoft SQL Server 2019, MySQL (Driver MySql.0 Preview 4), PostgreSQL (Driver Npgsql 5.7) Cơ sở dữ liệu nguồn của người dùng và lưu trữ dữ liệu hệ thống Easy-Web
Xử lý nền (Background Job) Redis Queue (RQ Worker) kết hợp Python Điều phối và thực thi hàng đợi sinh mã nguồn bất đồng bộ, xử lý các tác vụ tệp và shell script
Framework Front-end Angular 12 (TypeScript, SCSS, Data Binding, Material UI, Bootstrap 4) Xây dựng giao diện hệ thống Easy-Web và cấu trúc mã nguồn Front-end được sinh ra
Cộng đồng / Blog MEAN Stack (MongoDB, Express.js, Angular, Node.js) Phát triển phân hệ Blog chia sẻ thông tin cho người dùng Easy-Web
Lưu trữ đa phương tiện Cloudinary, FileStack Lưu trữ hình ảnh, logo và tệp tin đính kèm

Phương pháp nghiên cứu thực tế:

  • Phương pháp phân tích - tổng hợp yêu cầu: Khảo sát các công cụ sinh mã nguồn hiện có của Microsoft Visual Studio, từ đó tổng hợp các hạn chế (đòi hỏi người dùng phải có kiến thức chuyên sâu về .NET/MVC, mã nguồn sinh ra khó tùy biến, khó triển khai) để xây dựng bảng yêu cầu chức năng và phi chức năng cho Easy-Web.
  • Phương pháp mô hình hóa hướng đối tượng (UML): Xây dựng hệ thống sơ đồ ca sử dụng (Use Case Diagram), sơ đồ hoạt động (Activity Diagram), sơ đồ tuần tự (Sequence Diagram), sơ đồ lớp (Class Diagram) và sơ đồ thực thể quan hệ (ERD).
  • Phương pháp phân rã kiến trúc (Architectural Decomposition): Tách biệt hệ thống Easy-Web thành hai phân hệ độc lập: Website giao tiếp người dùng và Khung sinh mã nguồn hoạt động như một Microservice trên nền tảng máy chủ Linux.
  • Phương pháp thực nghiệm và kiểm thử phần mềm: Xây dựng các ca kiểm thử chức năng (Functional Test Cases) cho các module đăng nhập, đăng ký, kết nối cơ sở dữ liệu và cấu hình bảng/cột; đo lường thời gian xử lý của bộ sinh mã nguồn để tích hợp hàng đợi Redis Queue phù hợp.

Thiết kế và triển khai hệ thống

Hệ thống Easy-Web được thiết kế theo mô hình phân tán gồm hai thành phần chính:

1. Phân hệ Website tương tác Easy-Web

  • Front-end: Xây dựng trên nền tảng Angular 12, Bootstrap 4, Material UI, SCSS và Toast notifications. Cung cấp giao diện người dùng cho cả người dùng chưa xác thực (xem bản demo, giao diện Dark/Light mode, đọc blog) và người dùng đã xác thực (quản lý CSDL, thực hiện quy trình 4 bước tạo website, xem thống kê và tải mã nguồn).
  • Back-end: Xây dựng bằng ASP.NET Core kết hợp Entity Framework Core 5.0 và Microsoft SQL Server, đảm nhiệm xử lý toàn bộ logic nghiệp vụ, quản lý tài khoản người dùng, lưu vết cấu hình và lịch sử sinh website.
  • Phân hệ Blog cộng đồng: Tích hợp mô hình MEAN Stack (MongoDB, Express.js, Angular, Node.js) nhằm cung cấp không gian trao đổi thông tin nhẹ nhàng và linh hoạt.

2. Khung sinh mã nguồn (Website Generate Framework)

Khung sinh mã nguồn được thiết kế dưới dạng một Microservice độc lập viết bằng Python và Flask, bao gồm 4 module chuyên trách:

  • Client App (Front-end) Generator: Sử dụng Python để sinh mã nguồn giao diện người dùng Angular 12 dựa trên tệp cấu hình lược đồ mà người dùng đã tùy chỉnh.
  • API Client Generator (Middleware): Sử dụng Python kết hợp công cụ Swagger Code Generation để tự động sinh tầng middleware kết nối giữa Front-end và Back-end dựa trên các đặc tả endpoint RESTful API.
  • API (Back-end) Generator: Sử dụng Python kết hợp các mẫu bản mẫu (templates) để sinh toàn bộ mã nguồn ASP.NET Core RESTful API cùng tầng truy xuất dữ liệu Entity Framework Core tương thích với CSDL người dùng cung cấp.
  • Website Generate Framework API & RQ Worker: Ứng dụng Python Flask kết hợp Redis Queue (RQ) đóng vai trò tiếp nhận yêu cầu từ hệ thống Easy-Web, đưa vào hàng đợi xử lý ngầm và điều phối 3 module trên. Nhóm tác giả ghi nhận thời gian trung bình để tạo hoàn chỉnh một bộ mã nguồn CMS là khoảng 1 phút 15 giây (75 giây); do đó việc sử dụng RQ giúp giải phóng kết nối HTTP tức thì, ngăn chặn hiện tượng timeout trên trình duyệt.
+-----------------------------------------------------------------------------------+
|                              KIẾN TRÚC HỆ THỐNG EASY-WEB                          |
+-----------------------------------------------------------------------------------+
| 1. EASY-WEB APPLICATION                                                           |
|    - Front-end: Angular 12, TypeScript, SCSS, Bootstrap 4, Material UI            |
|    - Back-end: ASP.NET Core RESTful API, Microsoft SQL Server 2019                |
|    - Phân hệ phụ: MEAN Stack Blog (MongoDB, Express.js, Angular, Node.js)         |
|    - Tích hợp dịch vụ: Cloudinary, FileStack                                      |
+-----------------------------------------------------------------------------------+
| 2. WEBSITE GENERATE FRAMEWORK (Microservice trên Linux)                           |
|    - Framework API: Python Flask + Redis Queue (RQ Worker) điều phối tác vụ nền   |
|    - API (Back-end) Generator: Sinh mã nguồn ASP.NET Core RESTful API             |
|    - API Client Generator (Middleware): Swagger Code Generation                   |
|    - Client App (Front-end) Generator: Sinh mã nguồn Angular 12 Web App           |
+-----------------------------------------------------------------------------------+

3. Quy trình 4 bước tạo website từ cơ sở dữ liệu

Hệ thống chuẩn hóa quy trình tạo lập website quản trị thông qua 4 bước cấu hình liên tiếp:

  • Bước 1 - Đăng ký chuỗi kết nối (SCA_014 / UC_13): Người dùng cung cấp URL kết nối CSDL, loại hệ quản trị (SQL Server, MySQL hoặc PostgreSQL), số cổng, tên người dùng và mật khẩu truy cập có quyền đọc. Hệ thống tiến hành kết nối thử nghiệm và trích xuất danh sách bảng, cột.
  • Bước 2 - Cấu hình bảng (SCA_13 / UC_10, UC_11, UC_12): Người dùng xem danh sách các bảng dữ liệu được đọc về, đổi tên hiển thị của bảng sang định dạng chuẩn giao diện (yêu cầu dạng CamelCase) và ẩn đi các bảng không mong muốn xuất hiện trên website (quy tắc nghiệp vụ: phải giữ lại tối thiểu 5 bảng).
  • Bước 3 - Cấu hình cột (SCA_015 / UC_14, UC_15, UC_16): Người dùng tùy chỉnh tên hiển thị của từng thuộc tính cột, ẩn/hiện cột và lựa chọn thành phần giao diện (UI Component) tương ứng cho từng kiểu dữ liệu.
  • Bước 4 - Hoàn tất thông tin và xem trước (SCA_016 / UC_17, UC_18): Thiết lập tên website, tải lên logo, cập nhật thông tin liên hệ, xem trước giao diện và gửi yêu cầu sinh mã nguồn vào hàng đợi hệ thống; sau khi hoàn tất, người dùng có thể tải tệp mã nguồn nén hoặc nhận qua email.

4. Thiết kế cơ sở dữ liệu và lớp đối tượng

  • Các lớp chính trong hệ thống Easy-Web: User (quản lý người dùng), BaseEntity (lớp thực thể cơ sở), UserDatabaseInfo (lưu trữ thông tin chuỗi kết nối và thông số CSDL người dùng), WebGeneratedHistory (lưu lịch sử và đường dẫn tải mã nguồn các website đã sinh).
  • Các lớp chính trong bộ sinh mã nguồn: SystemMasterConfig (cấu hình chung cho website), SystemTableConfig (cấu hình chi tiết cho từng bảng), SystemTableColumnConfig (cấu hình kiểu dữ liệu, hiển thị và component của cột), SystemTableForeignKeyConfig (cấu hình khóa ngoại và mối quan hệ giữa các thực thể).

Nội dung chính theo từng chương

Chapter 1. Review current solutions (Tổng quan các giải pháp hiện tại)

Chương 1 phân tích bối cảnh phát triển của ngành công nghệ phần mềm web và sự cần thiết của các công cụ tự động hóa. Tác giả tiến hành đánh giá chi tiết giải pháp Visual Studio’s MVC Web Application Generator (tính năng Scaffolding tích hợp sẵn trong Visual Studio từ phiên bản 2017). Mặc dù giải pháp của Microsoft có ưu điểm là dễ tiếp cận và tài liệu phong phú, nhưng tồn tại nhiều nhược điểm lớn: người dùng buộc phải có nền tảng vững về lập trình .NET/MVC và Entity Framework CLI, sản phẩm sinh ra chỉ là ứng dụng MVC nguyên khối, đòi hỏi nhiều công sức tùy biến mới có thể sử dụng được và khó triển khai.

Từ đó, chương 1 xác định mục tiêu xây dựng Easy-Web với các tiêu chí: tối giản thao tác, không đòi hỏi viết mã lệnh, cho phép tùy biến sâu giao diện/chức năng, hỗ trợ nhiều CSDL (SQL Server, MySQL, PostgreSQL) và định hình kiến trúc phân tách rõ ràng giữa Angular Front-end và .NET Core Back-end.

Chapter 2. Technologies (Công nghệ sử dụng)

Chương 2 trình bày chi tiết cơ sở lý thuyết và lý do lựa chọn từng công nghệ trong ngăn xếp:

  • .NET Core & Entity Framework Core 5.0: Đóng vai trò nền tảng xử lý Back-end với hiệu năng cao, hỗ trợ đa nền tảng, tích hợp sẵn hệ thống xác thực và công cụ Scaffold-DbContext phục vụ việc trích xuất thực thể CSDL.
  • Python & Flask: Ngôn ngữ kịch bản có cú pháp linh hoạt, hệ sinh thái thư viện phong phú, tối ưu cho các tác vụ xử lý tệp, chuỗi ký tự và lệnh shell; Flask microframework được dùng để đóng gói dịch vụ sinh mã dưới dạng RESTful API gọn nhẹ.
  • Redis Queue (RQ): Giải pháp hàng đợi tác vụ nền giúp xử lý quy trình sinh mã nguồn kéo dài khoảng 75 giây mà không gây nghẽn kết nối mạng.
  • Angular 12: Framework Front-end nền tảng TypeScript với khả năng Two-way Data Binding, cấu trúc Component hóa và SCSS giúp quản lý giao diện linh hoạt.
  • Microsoft SQL Server 2019 & MEAN Stack: Đảm nhiệm lưu trữ dữ liệu hệ thống và vận hành phân hệ Blog cộng đồng.

Chapter 3. Requirement specification (Đặc tả yêu cầu phần mềm)

Chương 3 chi tiết hóa toàn bộ yêu cầu của hệ thống qua việc xác định hai nhóm tác nhân (Unauthenticated User và Authenticated User) cùng danh mục 18 ca sử dụng:

Mã Use Case Tên ca sử dụng Nhóm tác nhân Tóm tắt mục tiêu ca sử dụng
UC_01 Register new account Unauthenticated Đăng ký tài khoản thành viên mới trên hệ thống Easy-Web
UC_02 Login to the system Unauthenticated Đăng nhập vào hệ thống để truy cập các tính năng quản trị
UC_03 - UC_07 View demo pages Unauthenticated Xem trước giao diện demo (Login, Register, Detail, Update, Create)
UC_08 View list websites generated Authenticated Xem danh sách thống kê các website đã được tạo thành công
UC_09 Re-download source code Authenticated Tải lại gói mã nguồn của các website đã sinh trước đó
UC_10 View all tables fetched Authenticated Xem danh sách các bảng dữ liệu trích xuất từ CSDL kết nối
UC_11 Change table display name Authenticated Đổi tên hiển thị của bảng sang định dạng chuẩn CamelCase
UC_12 Hide table Authenticated Ẩn các bảng không cần sinh mã (phải giữ tối thiểu 5 bảng)
UC_13 Register DB connection string Authenticated Đăng ký thông số kết nối CSDL nguồn để hệ thống đọc lược đồ
UC_14 - UC_16 Column configurations Authenticated Xem danh sách cột, xem chi tiết và ẩn các cột dữ liệu không cần thiết
UC_17 Set logo for website Authenticated Tải lên biểu trưng (logo) nhận diện cho website được sinh
UC_18 Send source code to email Authenticated Gửi liên kết hoặc gói mã nguồn hoàn chỉnh vào hộp thư người dùng

Chương này cũng mô tả chi tiết các luồng sự kiện chính (Main Success Scenario), kịch bản thay thế (Alternative Scenario), ngoại lệ (Exceptions) và quy tắc nghiệp vụ (Business Rules) cho từng ca sử dụng.

Chapter 4. System Design and Implementation (Thiết kế và hiện thực hệ thống)

Chương 4 tập trung mô tả kiến trúc kỹ thuật của Easy-Web:

  • Trình bày sơ đồ lớp chi tiết cho hai hệ thống: Hệ thống Easy-Web (User, BaseEntity, UserDatabaseInfo, WebGeneratedHistory) và Khung sinh mã nguồn (SystemMasterConfig, SystemTableConfig, SystemTableColumnConfig, SystemTableForeignKeyConfig).
  • Thiết kế lược đồ thực thể quan hệ (ERD) và lược đồ vật lý CSDL cho cả cơ sở dữ liệu hệ thống và cơ sở dữ liệu của website đích được sinh ra.
  • Xây dựng sơ đồ tuần tự (Sequence Diagram) mô tả chi tiết quy trình xác thực, quy trình sinh mã nguồn Back-end ASP.NET Core, sinh Middleware bằng Swagger và sinh Front-end Angular 12.
  • Thiết kế hệ thống giao diện người dùng chi tiết (từ màn hình SCA_001 đến SCA_017) tương ứng với luồng thao tác thực tế.

Chapter 5. Software Testing and Management (Kiểm thử và quản lý phần mềm)

Chương 5 trình bày thiết lập môi trường phát triển, quy trình đóng gói và phát hành thư viện tái sử dụng lên hệ thống NPM (Node Package Manager). Bên cạnh đó, chương này đặc tả các bộ kịch bản kiểm thử (Test Cases) chi tiết cho các chức năng kiểm tra đăng nhập, đăng ký tài khoản, đăng ký chuỗi kết nối cơ sở dữ liệu và cấu hình bảng/cột, bảo đảm tính toàn vẹn và độ tin cậy của mã nguồn được tự động sinh ra.

Kết quả và đóng góp

Dựa trên các số liệu và nội dung thực nghiệm được trình bày trong tài liệu, đề tài đã đạt được các kết quả cụ thể:

  • Xây dựng thành công hệ sinh thái Easy-Web: Hoàn thiện nền tảng web ứng dụng bao gồm giao diện tương tác người dùng (Angular 12), hệ thống dịch vụ Back-end (.NET Core, SQL Server) và phân hệ Blog cộng đồng (MEAN Stack).
  • Hoàn thiện khung sinh mã nguồn đa nền tảng: Hiện thực thành công dịch vụ sinh mã nguồn tự động hỗ trợ 3 hệ quản trị CSDL quan hệ hàng đầu (SQL Server 2019, MySQL, PostgreSQL), sinh ra mã nguồn sạch bao gồm tầng RESTful API (.NET Core) và Front-end (Angular 12) có giao diện tương thích đa màn hình (Responsive).
  • Tối ưu hóa hiệu năng xử lý với Redis Queue: Tích hợp thành công cơ chế hàng đợi bất đồng bộ RQ Worker, giải quyết bài toán thời gian sinh mã kéo dài trung bình 1 phút 15 giây/yêu cầu, giúp hệ thống hoạt động ổn định mà không làm gián đoạn trải nghiệm người dùng.
  • Đóng gói thư viện NPM: Đã tạo, cấu hình và phát hành thành công gói thư viện NPM dùng chung phục vụ mục đích tái sử dụng mã nguồn.

Về mặt đóng góp so với các nghiên cứu và giải pháp trước đó:

  • Khắc phục nhược điểm của công cụ Visual Studio Scaffolding bằng cách cung cấp giao diện trực quan 4 bước, loại bỏ hoàn toàn yêu cầu viết mã lệnh hoặc thao tác dòng lệnh phức tạp.
  • Tách biệt hoàn toàn tầng giao diện (Angular) và tầng dịch vụ (RESTful API), tạo điều kiện thuận lợi cho các lập trình viên dễ dàng tải về, tùy biến sâu và mở rộng chức năng nghiệp vụ phía máy khách.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài:

  • Thời gian xử lý sinh toàn bộ mã nguồn vẫn còn tương đối dài (khoảng 75 giây cho một tiến trình đầy đủ) do khối lượng thao tác tệp tin, trích xuất cấu trúc dữ liệu và thực thi shell script lớn.
  • Kiến trúc sinh mã nguồn hiện tại bị ràng buộc vào khuôn mẫu công nghệ cố định (Back-end ASP.NET Core và Front-end Angular 12), chưa cung cấp tùy chọn chuyển đổi sang các framework khác.
  • Hệ thống áp dụng một số quy tắc nghiệp vụ cố định trong quá trình cấu hình (như yêu cầu bắt buộc phải hiển thị tối thiểu 5 bảng dữ liệu).

Hướng phát triển tiếp theo:

  • Tối ưu hóa hiệu năng xử lý của các tiến trình Python và quy trình đóng gói tệp tin nhằm rút ngắn thời gian sinh mã nguồn trong hàng đợi Redis Queue.
  • Mở rộng khả năng hỗ trợ thêm các ngăn xếp công nghệ phổ biến khác cho Front-end (React, Vue.js) và Back-end (Node.js Express, Python Flask/Django, Java Spring Boot).
  • Bổ sung công cụ hỗ trợ triển khai tự động (Instant Deployment) cho phép người dùng đưa website vừa sinh trực tiếp lên các nền tảng đám mây hoặc máy chủ ảo (VPS/Docker) với cấu hình tối giản.

Giá trị tham khảo

Đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu tham khảo điển hình về phương pháp xây dựng công cụ sinh mã nguồn (Code Generator), kỹ nghệ phần mềm dựa trên mô hình (Model-Driven Development) và quy trình xây dựng đồ án tốt nghiệp chuẩn mực từ phân tích yêu cầu, thiết kế kiến trúc UML đến kiểm thử phần mềm.
  • Kỹ sư phát triển phần mềm Full-stack: Cung cấp tài liệu thực tế về cách kết hợp đa dạng các công nghệ hiện đại (.NET Core, Angular 12, Python Flask, Redis Queue, MEAN Stack) trong một kiến trúc hướng dịch vụ để giải quyết bài toán xử lý tác vụ nền nặng.
  • Nội dung nổi bật đáng tham khảo: Phương pháp phân rã module sinh mã (Client App Generator, API Client Generator, API Generator) và hệ thống đặc tả 18 ca sử dụng (Use Case Specifications) chi tiết.

Câu hỏi thường gặp

1. Nền tảng Easy-Web hỗ trợ những hệ quản trị cơ sở dữ liệu nào?
Hệ thống hỗ trợ 3 hệ quản trị cơ sở dữ liệu quan hệ gồm Microsoft SQL Server 2019, MySQL và PostgreSQL thông qua các driver tương ứng của Entity Framework Core 5.0 (Microsoft.0, MySql.0 Preview 4, Npgsql 5.7).

2. Mã nguồn ứng dụng web được Easy-Web sinh ra sử dụng những công nghệ gì?
Ứng dụng web được sinh ra bao gồm đầy đủ Back-end là ASP.NET Core RESTful API kết nối cơ sở dữ liệu qua Entity Framework Core, tầng Middleware sinh tự động qua Swagger Code Generation và Front-end là Angular 12 kết hợp Bootstrap 4, Material UI và SCSS.

3. Tại sao hệ thống cần sử dụng Redis Queue (RQ Worker)?
Quy trình trích xuất CSDL, dựng mô hình C#, tạo controller, sinh giao diện Angular và đóng gói tệp tin mất trung bình khoảng 1 phút 15 giây cho mỗi yêu cầu. Redis Queue được sử dụng để chuyển tác vụ sinh mã vào hàng đợi xử lý nền ngầm, giúp phản hồi yêu cầu HTTP của người dùng ngay lập tức và tránh lỗi timeout trên trình duyệt.

4. Người dùng cần trải qua những bước nào để tạo một website từ Easy-Web?
Người dùng thực hiện quy trình 4 bước gồm: (1) Đăng ký chuỗi kết nối CSDL; (2) Cấu hình bảng (đổi tên hiển thị dạng CamelCase, ẩn/hiện bảng); (3) Cấu hình cột (đổi tên thuộc tính, ẩn cột, chọn UI component); (4) Điền thông tin website, tải logo, xem trước và gửi yêu cầu sinh mã nguồn.

5. Điểm khác biệt cơ bản giữa Easy-Web và Visual Studio’s MVC Web Application Generator là gì?
Visual Studio MVC Scaffolding đòi hỏi kiến thức chuyên sâu về lập trình .NET/MVC, thao tác dòng lệnh và chỉ sinh ứng dụng MVC nguyên khối khó tùy biến; trong khi Easy-Web cung cấp giao diện trực quan hoàn toàn không cần viết mã (No-code), hỗ trợ đa hệ CSDL và sinh ra ứng dụng phân tách độc lập giữa RESTful API và Single Page Application (Angular 12).

Kết luận

Đồ án tốt nghiệp của sinh viên Phan Sơn và Huỳnh Quốc Hoàng Vương đã giải quyết trọn vẹn bài toán tự động hóa quy trình xây dựng ứng dụng web quản trị từ cơ sở dữ liệu quan hệ có sẵn thông qua nền tảng Easy-Web. Bằng việc kết hợp hiệu quả giữa ASP.NET Core, Angular 12, Python Flask và cơ chế xử lý nền Redis Queue, đề tài đã tạo ra một công cụ sinh mã nguồn trực quan, giúp giảm thiểu đáng kể thời gian và công sức lập trình lặp lại cho các nhà phát triển web. Toàn bộ tài liệu cung cấp cấu trúc phân tích, thiết kế kỹ thuật và đặc tả kiểm thử phần mềm có tính ứng dụng và giá trị tham khảo học thuật cao.