Tuy nhiên, thách thức đối với việc tổ chức sự kiện là thông tin không được quản lý tập trung, dẫn đến sự thiếu chú ý của sinh viên và giảm số lượng người tham gia.. Mục đích chính của dự
Tổng quan
Quy trình tổng hợp sự kiện tại UIT
Nhóm tác giả đặt ra bài toán về việc tổng hợp lại các sự kiện được tổ chức tại trường đại học Công nghệ Thông tin nhằm mục đích hỗ trợ sinh viên có một nền tảng chung cho việc tổng hợp các sự kiện hoạt động
Giảm thiểu sự phức tạp trong các quy trình xét duyệt các danh hiệu tại trường Đối với việc đăng ký xét danh hiệu, quy trình cũ còn nhiều bất cập và bất tiện dành cho sinh viên như sinh viên khó nắm bắt được các sự kiện cần thiết tham gia để hỗ trợ xét các danh hiệu, không nắm rõ được những sự kiện mình đã tham gia, không hiểu rõ được các danh hiệu đang và sắp mở xét duyệt.
Quyền đóng góp ý tưởng của sinh viên
Đối với sinh viên không thuộc các tổ chức như BCH đoàn khoa, CLB đội nhóm,… Thì thường sẽ bị hạn chế và không có cơ hội đề xuất các hoạt động, sự kiện mà những sinh viên này biết tới cho nhà trường Những đóng góp ý kiến và ý tưởng của sinh viên sẽ giúp tăng tỉ lệ thành công cũng như sự phù hợp của các sự kiện sắp được tổ chức trong nhà trường.
Quy trình cập nhật các loại chứng chỉ dùng để xét danh hiệu
Cập nhật các loại chứng chỉ ngoài khi xét danh hiệu hiện đang được thực hiện thủ công Khi các đợt xét danh hiệu được mở, sinh viên có nhu cầu thường sẽ phải cập nhật các chứng chỉ này bằng Forum, một cách cập nhật bất tiện và không đảm bảo
Rút kinh nghiệm và đề xuất hướng xây dựng phần mềm
Website tổng hợp sự kiện
Xây dựng Website dành riêng cho việc tổng hợp sự kiện, hoạt động tại trường, có sự phân chia theo các nhóm sự kiện từ sự kiện cấp trường, khoa cho đến cấp câu lạc bộ
Hỗ trợ sinh viên tìm kiếm và tìm hiểu thông tin của các sự kiện một cách dễ dàng.
Xây dựng tính năng gợi ý xét thưởng
Hệ thống mới sẽ cung cấp các gợi ý hỗ trợ xuyên suốt quá trình giúp sinh viên có thể nắm được các điều kiện còn thiếu đối với các loại danh hiệu được mở xét thưởng trong năm, từ đó tạo định hướng giúp sinh viên dễ dàng hơn trong việc đăng ký xét danh hiệu.
Cập nhật trực tiếp chứng chỉ lên hệ thống
Sinh viên có thể thực hiện cập nhật, xem, xóa các chứng chỉ mình đã cung cấp, hệ thống sẽ lưu trữ đầy đủ thông tin của các chứng chỉ Khi nhà trường tiến hành xét danh hiệu đối với các sinh viên đăng ký thì có thể dễ dàng kiểm tra các chứng chỉ sinh viên cung cấp, điều này hạn chế sự thiếu sót, tính xác thực và một số điều khác trong quy trình xét thưởng.
Đóng góp ý tưởng
Tất cả sinh viên trường đều có cơ hội được đóng góp ý tưởng của bản thân cho việc phát triển các sự kiện hoạt động tại trường Ngoài ra, dựa vào hệ thống phân tích và
9 | P a g e xử lý dữ liệu có thể tiến hành tổng hợp các ý tưởng của các bạn sinh viên để xây dựng một kinh bản sự kiện hoạt động mới mẻ
Các vấn đề cần giải quyết
Thu thập và xử lý dữ liệu đáng tin cậy
Tiến hành khảo sát quy trình hoạt động, nội dung các sự kiện tại UIT, thu thập một số hình ảnh, nội dung,… để tiến hành xây dựng bộ dữ liệu mẫu cho việc phát triển ứng dụng.
Cải thiện tính năng hiển thị thông tin
Tính năng hiển thị thông tin một cách rõ ràng, phân chia các loại sự kiện rõ ràng, theo các cấp bậc, tạo hệ thống lọc sự kiện hợp lý giúp người dùng dễ dàng tìm kiếm sự kiện mong muốn.
Xây dựng quy trình hoạt động của hệ thống
Xây dựng một quy trình sử dụng hệ thống hợp lý, sát với thực tế, nâng cao tối đa sự tiện lợi dành cho người dùng, đồng thời rút ngắn các quy trình không cần thiết.
Thiết kế giao diện người dùng tương tác
Nghiên cứu về cách thiết kế giao diện người dùng thân thiện, trực quan và dễ sử dụng Tìm hiểu về cách sắp xếp thông tin, tạo hiệu ứng tương tác và cung cấp trải nghiệm người dùng tốt hơn sẽ đem lại lợi ích cho ứng dụng bản đồ quán nước
Yêu cầu chức năng và phân quyền
- Người dùng là sinh viên có thể thực hiện các chức năng:
• Xem các hoạt động và sự kiện.
• Đóng góp ý tưởng sáng tạo.
• Cập nhật các loại chứng chỉ.
- Người dùng là các tài khoản Trường, Khoa, CLB được phép:
• cập nhật danh sách sinh viên tham gia hoạt động sự kiện
• Thêm mới các hoạt động sự kiện
• Xóa các hoạt động sự kiện
• Sửa các hoạt động sự kiện
- Administrative là người dùng có quyền:
• Trích xuất danh sách đăng ký khen thưởng
• Tải sự kiện nổi bật nhất trên trang Web sự kiện chính
• Kiểm tra các chứng chỉ sinh viên đã cập nhật
Yêu cầu phi chức năng
Hiệu Suất
Thời gian Tải Trang: Đảm bảo thời gian tải trang nhanh để cung cấp trải nghiệm người dùng tích cực
Tải Đồng Thời: Hỗ trợ nhiều người dùng truy cập đồng thời mà không ảnh hưởng đến hiệu suất.
Tính Khả Dụng (Availability)
Đảm bảo hệ thống có sẵn và hoạt động trong thời gian dài mà không bị gián đoạn
Bảo Mật
Xác Thực và Ủy Quyền: Hệ thống phải có cơ chế xác thực an toàn và ủy quyền đúng đắn
Bảo vệ Dữ Liệu: Đảm bảo bảo mật dữ liệu thông qua các biện pháp như mã hóa và chính sách quản lý dữ liệu.
Dễ Bảo Trì
Cung cấp các công cụ và tài liệu dễ bảo trì để hỗ trợ việc duy trì và nâng cấp hệ thống Tương Thích Di Động (Mobile Compatibility): Đảm bảo ứng dụng có thể sử dụng một cách hiệu quả trên các thiết bị di động và kích thước màn hình khác nhau.
Chạy Trên Nền Tảng Đa Nền Tảng
Hỗ trợ nền tảng và trình duyệt khác nhau để đảm bảo sự linh hoạt và tiện ích cho người dùng.
Khả Năng Mở Rộng
Dự án có khả năng mở rộng để đáp ứng nhu cầu tăng cường và sự mở rộng của hệ thống.
Tuân Thủ Luật Pháp
Tuân thủ các quy định và luật pháp liên quan đến bảo mật và quản lý dữ liệu.
Hiệu Năng Cao
Đảm bảo ứng dụng hoạt động mượt mà và có hiệu suất cao, đặc biệt là trong những tình huống tải lớn.
Tích Hợp Dễ Dàng
Cung cấp API và giao diện kết nối dễ tích hợp với các hệ thống bên ngoài.
Thân Thiện Với Người Dùng
Cung cấp giao diện người dùng thân thiện và dễ sử dụng để tăng cường trải nghiệm người dùng.
Quản Lý Lỗi
Cung cấp cơ chế quản lý lỗi hiệu quả và thông báo rõ ràng cho người dùng khi có lỗi xảy ra.
Dự Phòng và Khôi Phục
Đảm bảo có kế hoạch dự phòng và khôi phục dữ liệu và hệ thống khi có sự cố.
Quản Lý Đăng Nhập và Bảo Mật
Hỗ trợ quản lý đăng nhập an toàn, bảo vệ thông tin đăng nhập và mật khẩu
Cơ sở lí thuyết
Khái niệm
- Nodejs [1] là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng
- Nodejs được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ sở tại California, Hoa Kỳ
- Phần Core bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao
- Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực
- Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể.
Những ứng dụng nên được viết bằng Nodejs
Websocket server [2]: Các máy chủ web socket như là Online Chat, Game Server…
- Fast File Upload Client: là các chương trình upload file tốc độ cao • Ad Server: Các máy chủ quảng cáo
- Cloud Services: Các dịch vụ đám mây
- RESTful API: đây là những ứng dụng mà được sử dụng cho các ứng dụng khác thông qua API (Application Programing Interface)
- Any Real-time Data Application: bất kỳ một ứng dụng nào có yêu cầu về tốc độ thời gian thực Micro Services: Ý tưởng của micro services là chia nhỏ một ứng dụng lớn thành các dịch vụ nhỏ và kết nối chúng lại với nhau Nodejs có thể làm tốt điều này.
Lí do nên sử dụng nodejs
- Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thông dụng Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript có những đặc tính mà làm cho nó rất khác biệt so với các ngôn ngữ lập trình động còn lại, cụ thể là nó không có khái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.”
- Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện
Eventdriven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả
- Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window – Linux, hơn nữa cộng đồng Nodejs rất lớn và hoàn toàn miễn phí Các bạn có thể thấy cộng đồng Nodejs lớn như thế nào tại đây, các package đều hoàn toàn free:https://www.npmjs.com/
- Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị
- Những công ty lớn nào đang sử dụng Nodejs:
- Amazon, Ebay, Linkedin, Microsoft, Paypal, Uber… và còn nhiều cái tên nổi tiếng khác nữa Theo như Paypal thì sử dụng Nodejs làm giảm thời gian đáp ứng lên tới 35%.
Cài đặt Server
• Các Package được sử dụng
- Express: được sử dụng để tạo máy chủ
- Nodemon: giúp theo dõi các thay đổi đối với ứng dụng bằng cách xem các tệp đã thay đổi và tự động khởi động lại máy chủ
- Dotenv: dùng để config database (host, port, user, …) và các config khác
• Thiết lập một Express Server
- Thiết lập tập tin app.js với code sau:
Hình 3 1 Thiết lập tập tin app.js
- Sau đó khởi động server với cổng 3000 bằng phương thức listen():
13 | P a g e Để dễ dàng sử dụng các request POST, PUT cho API, chúng ta cần thêm
Middleware Body Parsing Đây là nơi body-parser phát huy tác dụng, body- parser sẽ trích xuất toàn bộ phần body của một yêu cầu đến và phân tích nó thành đối tượng JSON (Java Script Object Notation) mà chúng ta có thể làm việc với nó Vì vậy ta cần thêm nó vào tập tin app.js
Hình 3 3 Thêm Middleware Body Parsing
Khái niệm
- API [3] (Application Programming Interface) là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác API có khả năng truy xuất đến một tập hợp các hàm Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng
- API hiện nay đều tuân thủ theo tiêu chuẩn REST (Representational State Transfer) và HTTP (HyperText Transfer Protocol), tạo sự thân thiện dễ sử dụng với nhà phát triển Giúp người dùng dễ truy cập, dễ hiểu hơn
- API thường sử dụng mã nguồn mở, sử dụng được với mọi client hỗ trợ XML, JSON API có khả năng đáp ứng đầy đủ các thành phần HTTP: URI (Uniform Resource Identifier), request/response headers, caching, version, content forma…
- Đây là một trong những kiến trúc hỗ trợ tốt nhất với các thiết bị có lượng băng thông bị giới hạn như smartphone, tablet…
Ưu điểm của API
- Hỗ trợ chức năng RESTful một cách đầy đủ
- Giao tiếp hai chiều phải được xác nhận trong các giao dịch sử dụng API Vì vậy các thông tin rất đáng tin cậy
- API là mã nguồn mở, có thể được kết nối mọi lúc khi có internet • Cấu hình đơn giản.
Nhược điểm của API
- Tốn nhiều chi phí vận hành, phát triển và sửa chữa
- Đòi hỏi kiến thức chuyên sâu
NOSQL
- NoSQL [4] (Non-Relational SQL) là 1 dạng CSDL mã nguồn mở và được phát triển Javascript Framework với kiểu dữ liệu là Json và dạng dữ liệu là kiểu key và value NoSQL ra đời như một mảnh vá cho những khuyết điểm và thiếu xót cũng như hạn chế của mô hình dữ liệu RDBMS (Relational Database
Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, khả năng mở rộng, memory cache…
- Với NoSQL chúng ta có thể mở rộng dữ liệu mà không lo tới những việc tạo khóa ngoại, khóa chính, kiểm tra ràng buộc, … NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất nhanh và khả năng mở rộng NoSQL còn có khả năng lưu trữ dữ liệu với lượng cực lớn, truy vấn dữ liệu với tốc độ cao mà
- không đòi hỏi quá nhiều về năng lực phần cứng cũng như tài nguyên hệ thống và tăng khả năng chịu lỗi
- Ngày nay NoSQL được sử dụng ở rất nhiều công ty, tập đoàn lớn, ví dụ như Facebook sử dụng Cassandra do Facebook phát triển, Google phát triển và sử dụng BigTable, …
MongoDB
- MongoDB [5] là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL hàng đầu, được hàng triệu người sử dụng MongoDB được thiết kế theo kiểu hướng đối tượng, các bảng trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ trên bảng không cần tuân theo một cấu trúc nhất định nào cả
- MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL (Cơ sở dữ liệu) quan hệ nên truy vấn sẽ rất nhanh
- Ngoài ra, MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng
- Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng
- So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row, MongoDB sẽ dùng các document thay cho row trong RDBMS
- Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định
- Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB
Hình 3 5 Các tính năng của MongoDB
Các thuật ngữ hay sử dụng trong MongoDB
- _id: là trường bắt buộc trong mỗi document, trường _id đại diện cho một giá trị duy nhất trong document MongoDB Trường _id cũng có thể được hiểu là khóa chính trong document, nếu chúng ta them mới một document thì MongoDB sẽ tự động sinh ra một _id đại diện cho document mới và là duy nhất trong
- Collection: là nhóm bao gồm nhiều document trong MongoDB Collection có thể được hiểu là một mảng tưởng ứng trong cơ sở dữ liệu RDBMS Collection nằm trong một cơ sở dữ liệu duy nhất
- Cursor: Đây là một con trỏ đến tập kết quả của một truy vấn Client có thể lặp qua một con trỏ để lấy kết quả Database: Nơi chứa các Collection, giống với dạng cơ sở dữ liệu RDBMS chúng chứa các bảng Mỗi Database là mỗi tập tin riêng biệt được lưu trữ trên bộ nhớ vật lý Một server MongoDB có thể chứa nhiều Database
- Document: Một bản ghi thuộc một Collection thì được gọi là một Document thường bao gồm các trường tên và giá trị
- Field – là một cặp name – value trong một document Một document có thể có không hoặc nhiều trường
- JSON - Viết tắt của JavaScript Object Notation, là một kiểu định dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được JSON là một tiêu chuẩn mở để trao đổi dữ liệu và đang hỗ trợ rất nhiều ngôn ngữ lập trình
- Index – Là những cấu trúc dữ liệu đặc biệt, được dùng để chứa một phần nhỏ của các tập dữ liệu một cách dễ dàng Chỉ số lưu trữ giá trị của một field cụ thể hoặc thiết lập các field, sắp xếp theo giá trị của các fields Index hỗ trợ phân tích một cách hiệu quả các truy vấn Nếu không có index, MongoDB sẽ phải quét tất cả document của collection để chọn ra những document phù hợp với câu truy vấn
- Schema: Trong khi Mongo là schema-less, SQL định nghĩa một lược đồ thông qua định nghĩa bảng Một lược đồ Mongoose là một lớp cấu trúc dữ liệu được thi hành qua lớp ứng dụng.
Ưu điểm của MongoDB
- Dữ liệu trong MongoDB không có ràng buộc, không có join như trong
RDBMS nên khi thêm, xóa hay cập nhật sẽ không cần mất thời gian để kiểm tra các ràng buộc dữ liệu như trong RDBMS
- MongoDB lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ có các kích cỡ và các document khác nhau, linh hoạt trong việc lưu trữ dữ liệu
- MongoDB dễ mở rộng vì các node chữa dữ liệu (cluster) giao tiếp với nhau, khi mở rộng chúng ta chỉ cần thêm một node mới vào cluster Ngoài ra
MongoDB cho phép thực hiện replication và sharding nên việc mở rộng cũng thuận lợi hơn • Trường dữ liệu _id luôn được đánh dấu index vì vậy tốc độ truy vấn thông tin luôn đạt hiệu suất cao nhất
- Ít schema hơn: Vì schema được sinh ra là để nhóm các đối tượng vào 1 cụm, dễ quản lý Nếu như ta tạo 1 schema là Songs thì chỉ có những gì liên quan đến Songs mới được thêm vào schema này Nhưng thay vào đó MongoDB thì chỉ với 1 collection ta có thể chứa nhiều document khác nhau Thậm chí với mỗi document thì số trường, nội dung và kích thước lại có thể khác nhau
- Khi có một truy vấn dữ liệu, bản ghi được cached lên bộ nhớ Ram, để phục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng
- Sử dụng bộ nhớ trong để lưu giữ cửa sổ làm việc cho phép truy cập dữ liệu nhanh hơn Việc cập nhật được thực hiện nhanh gọn nhờ update tại chỗ (in place)
- Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS)
Hình 3 6 Hiệu năng của MongoDB
Nhược điểm khi sử dụng MongoDB
- Việc đầu tiên phải kể đến, đó chính là ưu điểm của MongoDB cũng là nhược điểm của nó MongoDB không có tính chất ràng buộc như RDBMS nên khi thao tác dữ liệu phải hết sức cẩn thận
- Tốn bộ nhớ do dữ liệu lưu dưới dạng key – value, các collection chỉ khác về value do đó key sẽ bị lặp lại
- Mongoose là một thư viện mô hình hóa đối tượng ODM (Object Data Model) cho MongoDB và NodeJS Nó được sử dụng để quản lý mối quan hệ của dữ
19 | P a g e liệu, cung cấp sự xác nhận giản đồ và dung để dịch giữa các đối tượng trong code và biểu diễn các đối tượng trong MongoDB
- Mongoose model bao gồm Mongoose Schema Mongoose Schema được xác định cấu trúc của tài liệu, giá trị mặc định, xác nhận Trong khi Mongoose
Model cung cấp giao diện cho cơ sở dữ liệu dung để tạo, truy vấn, cập nhật và xóa bản ghi
- Mô hình Mongoose model bao gồm 3 thành phần:
• Xác định Schema Một giản đồ định nghĩa tài sản thông qua một đối tượng mà tên khóa tương ứng với tên một thuộc tính trong collections
• Xuất model chúng ta gọi constructor mô hình trên Mongoose và truyền vào nó cho tên collections
- Định nghĩa lược đồ phải giản đơn, nhưng tính phức tạp của nó thường dựa trên yêu cầu của ứng dụng Các lược đồ có thể sử dụng lại và chúng có chứa một số sơ đồ con
Khái niệm Firebase
- Firebase [6] là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
- Ra mắt muộn hơn các công nghệ khác, Firebase được ra đời vào năm 2014 và được google mua lại vào năm 2016 Từ đó Firebase đã tăng từ 110.000 lên 470.000 nhà phát triển và vẫn đang nắm giữ tốc độ tăng trưởng đáng kể Firebase được tin dùng và phổ biến bởi vì nó giúp nhà phát triển có thể xây dựng hệ thống Client – Server mà công sức cũng như chi phí bỏ ra cho phía Server giảm đi đáng kể.
Chức năng chính của Google Firebase
- Realtime Database – Cơ sở dữ liệu thời gian thực
• Dữ liệu được firebase lưu trữ có dạng JSON và được đồng bộ cơ sỡ dữ liệu đến tất cả user theo thời gian thực Điều này sẽ giúp xây dựng hệ thống đa nền tảng và tất cả user cùng dùng chung một database được cung cấp với firebase, điều tuyệt vời hơn là firebase tự động cập nhật mỗi khi có sự thay đổi dữ liệu
- Firebase Authentication – Hệ thống xác thực của Firebase
• Firebase dễ dàng tích hợp các công nghệ xác thực của các ông lớn trên internet như Google, Facebook,…hoặc một hệ thống xác thực tự xây dựng trong ứng dụng ở bất kỳ nền tảng nào như Android, iOS
• Firebase storage lưu trữ được nhiều dạng dữ liệu như tập tin, hình ảnh, video một cách dễ dàng Ngoài ra nó còn tích hợp Google security giúp tải lên và tải về các ứng dụng firebase một cách tiện lợi
• Bên cạnh các tính năng trên, Firebase còn cung cấp địch vụ Cloud Messaging, một giải pháp đa nền tảng, cho phép mọi người gửi thông điệp miễn phí dưới dạng tin nhắn theo thời gian thực.
Lợi ích của Google Firebase
- Triển khai ứng dụng cực nhanh
• Với firebase, lập trình viên sẽ giảm được nhiều thời gian cho việc xây dựng và phát triển và đồng bộ cơ sở dữ liệu, nó diễn ra nhanh chóng và tự động qua các API mà Firebase cung cấp Ngoài ra, nếu lập trình viên muốn xây dựng ứng dụng đa nền tảng, điều này hoàn toàn dễ dàng vì Firebase cũng hỗ trợ đa nền tảng Không chỉ có vậy, quá trình đăng ký và đăng nhập vào ứng dụng sẽ tiện lợi và dễ dàng hơn bằng các hệ thống xác thực mà Firebase đã cung cấp
• Firebase hoạt động dựa vào nền tảng đám mây và thực hiện kết nối băng giao thức bảo mật SSL, vì thế bảo mật dữ liệu cũng như đường truyền giữa client và server sẽ được đảm bảo nghiêm ngặt Ngoài ra, việc phân quyền cho người dùng chỉ đơn giản với cú pháp javascript cũng được nâng cao hơn, bởi chỉ người nào được cấp phép mới có thể chỉnh sửa dữ liệu
- Tính linh hoạt và khả năng mở rộng
• Firebase cho phép nhà phát triển xây dựng server của riêng mình để thuận tiện trong quá trình quản lý Firebase sử dụng hệ quản trị cơ sở dữ liệu là
NoSQL, giúp database dễ dàng mở rộng các bảng, các trường tùy theo ý thích của mỗi lập trình viên
Quá trình thực hiện
Database diagram
Use-case diagram
Giao diện chung khi không đăng nhập
Hình 4 3 Giao diện chung khi không đăng nhập
Giao diện đăng nhập
Hình 4 4 Giao diện đăng nhập
Giao diện đóng góp ý tưởng dành cho sinh viên
Hình 4 5 Giao diện đóng góp ý tưởng
Giao diện cập nhật minh chứng các chứng chỉ
Hình 4 6 Giao diện cập nhật chứng chỉ
Giao diện các sự kiện đang chờ duyệt
Hình 4 7 Giao diện các sự kiện chờ duyệt
4.4.6 Giao diện lịch sử các sự kiện đã tham gia và đề xuất tham gia các sự kiện khác
Hình 4 8 Giao diện lịch sử các sự kiện đã tham gia và đề xuất tham gia
- Tìm hiểu được những thuật toán, và kiến thức liên quan về hệ thống cần xây dựng
- Hiện thực hóa đầy đủ các tính năng cho Website, ở cả Web Client và Web Admin
- Xây dựng được nền tảng để phát triển cho các mức đồ án tiếp theo
- Cải thiện được rõ rệt các quy trình bất tiện trong việc xét duyệt
- Xây dựng hoàn thiện tính năng tổng hợp ý tưởng và kiến tạo kịch bản sự kiện, hoạt động mới phù hợp với sinh viên
- Thêm các mức quản lý mới, quản lý thông tin của các thành viên thuộc các đội nhóm về tổ chức sự kiện và các thành viên của các câu lạc bộ
- Tích hợp hệ thống xét duyệt trực tiếp các danh hiệu cho sinh viên
- Cải thiện hơn giao diện người dùng
- Nâng cao khả năng bảo mật dữ liệu sinh viên.