1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng app xem thời khóa biểu

33 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng App Xem Thời Khóa Biểu
Tác giả Nhóm 10
Người hướng dẫn ThS. Lê Bá Cường
Trường học Học viện Kỹ thuật Mật mã
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án môn học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 1 MB

Cấu trúc

  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT (8)
    • 1.1 Tổng quan về Androi (8)
      • 1.1.1 Giới thiệu về hệ điều hành Androi (8)
      • 1.1.2 Lịch sử của hệ điều hành Android (9)
      • 1.1.3 Sự đón nhận của người dùng đối với Android (9)
      • 1.1.4 Kiến trúc của Android (9)
    • 1.2 Tổng quan về React Native (9)
      • 1.2.1 Giới thiệu về React Native (9)
      • 1.2.2 Ưu điểm của React Native (10)
      • 1.2.3 Nhược điểm của React Native (12)
      • 1.2.4 Kết luận (13)
    • 1.3 Tổng quan về Node Js (13)
      • 1.3.1 Giới thiệu về Node Js (13)
      • 1.3.2 Các tính năng của Node Js (15)
      • 1.3.3 Ứng dụng của Node JS (15)
      • 1.3.4 Một số ưu, nhược điểm của NodeJS (16)
      • 1.3.5 Kết luận (17)
    • 1.4 Giới thiệu MySQL (17)
      • 1.4.1 MySQL (17)
      • 1.4.2 Đặc điểm MySQL (18)
      • 1.4.3 Lý do sử dụng MySQL (19)
  • CHƯƠNG 2. KHẢO SÁT, PHÂN TÍCH THIẾT KẾ HỆ THỐNG (21)
    • 2.1 Khảo sát, phân tích bài toán (21)
      • 2.1.1 Phân tích bài toán (21)
      • 2.1.2 Khảo sát về một số app quản lý thời gian (22)
      • 2.1.3 Tổng quan về hệ thống (25)
      • 2.1.4 Nguyên lý hoạt động của hệ thống (25)
    • 2.2 Thiết kế các chức năng (25)
      • 2.2.1 Chức năng app xem thời khóa biểu (25)
      • 2.2.2 Phân hệ người dùng (26)
    • 2.3 Biểu đồ UseCase và đặc tả (26)
      • 2.3.1 Biểu đồ UseCase tổng quát (26)
    • 2.4 Thiết kế database (27)
      • 2.4.1 Xây dựng database (27)
      • 2.4.1 Thiết kế cơ sở dữ liệu tổng quát (0)
      • 2.4.2 Thiết kế cơ sở dữ liệu chi tiết (28)
    • 2.5 Thiết kế giao diện (31)
  • CHƯƠNG 3. THỰC NGHIỆM (32)
  • KẾT LUẬN (32)
  • TÀI LIỆU THAM KHẢO (33)

Nội dung

Lập trình Android Bài toán sắp xếp Thời khóa biểu luôn là một bài toán khó, mang tính khoa học đồng thời tính thực tiễn cũng rất cao. Bài toán đặt ra yêu cầu xây dựng một thời khoá biểu nhằm mục đích cung cấp thông tin giảng dạy cho các giảng viên và sinh viên. Thời khóa biểu được xây dựng phải đáp ứng được nhu cầu dạy và học một cách nhanh chóng, thuận tiện và chính xác.

CƠ SỞ LÝ THUYẾT

Tổng quan về Androi

Như chúng ta biết, hiện tại đã có hơn nửa nhân loại sử dụng máy di động để thoại và giao tiếp qua các mạng không dây Con số 3tỉ người này sẽ còn tăng lên và máy di động càng ngày càng "thông minh" với nhiều chức năng và dịch vụ rất hấp dẫn, cho nên thị trường máy di động thông minh sẽ vượt xa máy vi tính trong một tương lai rất gần Vì thế việc lập trình trên thiết bị di động ngày càng phổ biến và phát triển rất mạnh mẽ Từ nền tảng mã nguồn mở, Google đã cho ra mắt Android chạy trên các thiết bị di động Android có rất nhiều công cụ và dụng cụ miễn phí để nghiên cứu và phát triển phần mềm trên nền tảng của nó Tài liệu này sẽ giúp chúng ta tìm hiểu về Android và cách viết một ứng dụng trên nền tảng này.

1.1.1 Giới thiệu về hệ điều hành Androi

Android là một hệ điều hành có mã nguồn mở dựa trên nền tảng Linux được thiết kế dành riêng cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, hệ điều này này được phát triển bởi công ty Android, với sự hỗ trợ tài chính từ Google, sau đó chính Google đã mua lại công ty này và tiếp tục phát triển Android trở thành một nền tảng hiệu quả hơn.

- Android có khả năng tuỳ biến cao, cho phép tùy ý chỉnh sửa mà không có sự can thiệp hay ràng buộc pháp lý từ Google

- Android xuất hiện trên rất nhiều mẫu thiết bị từ phân khúc bình dân đến cao cấp, mang đến nhiều lựa chọn cho người dụng

- Kho ứng dụng Google Play Store đồ sộ, nhiều ứng hữu ích

- Giao diện thân thiện, dễ sử dụng

- Do tính chất mã nguồn mở nên Android luôn có nguy cơ tiềm ẩn cao bị dính virus hoặc các phần mềm độc hại

- Android có sự phân mảnh quá lớn do có mặt trên rất nhiều thiết bị khác nhau, gây nên một số khó khăn cho các nhà phát triển khi xây dựng ứng dụng mới

- Không hỗ trợ cập nhật cho tất cả mọi thiết bị, do đó trong nhiều trường hợp, nếu muốn trải nghiệm phiên bản Android mới, người dùng phải mua thiết bị mới

Hình 1.1: Hệ điều hành Android

1.1.2 Lịch sử của hệ điều hành Android

1.1.3 Sự đón nhận của người dùng đối với Android

Tổng quan về React Native

1.2.1 Giới thiệu về React Native

React Native là một framework được tạo bởi Facebook, cho phép các lập trình viên sử dụng JavaScript để làm mobile apps trên cả Android và iOS với có trải nghiệm và hiệu năng như native React Native vượt trội ở chỗ chỉ cần viết một lần là có thể build ứng dụng cho cả iOS lẫn Android.

Việc này giúp chúng ta có thể tiết kiệm được thời gian, công sức, tiền bạc Giúp tốc độ ra sản phẩm cũng như cập nhật ứng dụng nhanh chóng mặt Có thể nói React Native là một cross-platform để xây dựng một ứng dụng di động hiệu quả.

Nó hoàn toàn khác với khái niệm “hybrid app” :

1.2.2 Ưu điểm của React Native

React Native cùng với Flutter đang là xu hướng lập trình di động hiện nay bởi tính đa nền tảng cũng như tiết kiệm thời gian triển khai dự án Sau đây là những lợi ích mà nó đem lại cho việc triển khai dự án có thể trả lời cho câu hỏi có nên dùng React Native không ?

1.2.2.1 Thời gian học ngắn hơn

Một lý do lập trình mobile app rất khó và tốn thời gian là vì thực tế cần tìm hiểu

2 hệ sinh thái hoàn toàn khác biệt Nếu bạn muốn lập trình app iOS, ta phải học Swift hoặc Objective-C và Cocoa Pods.

Nếu muốn lập trình app Android, bạn cần học Java hoặc Kotlin và Android SDK.

Tuy nhiên, điều có thể nói là chúng khác nhau và việc học từng ngôn ngữ đó sẽ tốn khá nhiều thời gian Điều tương tự cũng xảy ra với các frameworks: Cocoa Touch và Android SDK.

Tất nhiên, mỗi frameworks luôn có 1 gói các công cụ như công cụ testing, các libs, packages… và việc các dev phải cập nhật các tính năng mới nhất của mỗi hệ sinh thái là điều không thể bàn cãi.

Mặc khác, nếu chọn lập trình trên React Native, phần lớn thời gian bạn sẽ chỉ cần học

1 bộ công cụ Có rất nhiều thứ để bạn làm quen như: JavaScript, Node, React Native… nhưng chỉ có 1 công cụ duy nhất để học.

1.2.2.2 Khả năng tái sử dụng code

Khả năng sử dụng lại code đóng vai trò quan trọng trong lập trình phần mềm, nên mỗi khi có thể sử dụng lại code thì React Native là công cụ tốt.

React Native không phải chỉ viết 1 lần mà nó chạy ở mọi nơi Bất cứ khi nào lập trình

1 app, cần phải xây dựng UI trông native và phù hợp với hệ điều hành hướng tới Vì lý do này, 1 số UI code cần được viết theo đúng các chỉ dẫn và chuẩn mực tốt nhất của platform đó Tuy nhiên, sẽ luôn có vài UI code thông dụng có thể được chia sẻ chung với nhau cùng tất cả logic Tính năng “có thể chia sẻ code” có rất nhiều lợi điểm như: tận dụng nguồn nhân lực tốt hơn, duy trì ít code hơn, ít bugs hơn, các tính năng trong cả 2 platforms cũng tương tự nhau…

1.2.2.3 Học 1 lần, viết ở mọi nơi

Khi team của Facebook tạo React Native, mục tiêu của họ là giúp các dev học 1 lần nhưng sử dụng được mọi platform Bởi vì tất cả code của Android và iOS sử dụng cùng bộ công cụ, nên ý tưởng có một team dev làm app cho cả hai platform là thực hiện được – một điều ít khi xảy ra khi có rất ít dev lập trình cả hai platform iOS và Android Thậm chí, còn cho rằng team đang lập trình web app sử dụng React.js sẽ không phải cực khổ nữa khi học lập trình React Native và bắt đầu làm mobile app.

React Native đang trở lên rất phổ biến, nhiều developer đang đóng góp để làmReact Native tốt hơn Đặc biệt là nó được tạo ra và hỗ trợ bởi tập đoàn Facebook.

React Native Github repro là một nguồn mở và có hàng nghìn cộng tác viên hoạt động rất năng nổ.

Cộng đồng rất lớn và đang phát triển mạnh mẽ Nhiều vấn đề đã và đang được giải quyết và bạn sẽ không cần phải tốn thời gian để nghiên cứu lại trong suốt quá trình học và làm việc với React Native.

Thói quen thông thường của dev khi code là test các thay đổi mỗi lần code được viết Để thực hiện được, app cần phải được đóng gói lại và cài đặt hoặc trong 1 simulator hoặc một thiết bị thật sự.

Với React Native, phần lớn thời gian, không cần phải tổng hợp lại app mỗi lần có thay đổi Chỉ cần làm mới app trong simulator, emulator hoặc thiết bị Thậm chí còn có một tính năng là Live Reload để tự động refresh app mỗi lần phát hiện 1 thay đổi trong code.

React Native vẫn còn là công nghệ đang được sử dụng nhiều Tuy vẫn còn nhiều lỗi, nhưng nhìn chung, các lập trình viên vẫn có thể sử dụng React Native vào giai đoạn production ở hầu hết các mobile app.

Ngoài ra vẫn còn vài tính năng có sẵn trong các lập trình native, chưa sử dụng được với React Native nhưng đây không phải là vấn đề lớn Từ kinh nghiệm của bản thân, đây chỉ là chuyện đơn giản khi đã quen thuộc với lập trình native.

Thêm nữa, khi React Native đã là nguồn mở, với cộng đồng lớn các lập trình viên đã hỗ trợ thực hiện nhiều tính năng hơn, fix bugs… Phần lớn thời gian, nếu đang cố gắng lập trình 1 thứ gì đó đã quen thuộc trong mobile apps thì nhiều khả năng là nó đã được lập trình rồi.

1.2.3 Nhược điểm của React Native

Tổng quan về Node Js

1.3.1 Giới thiệu về Node Js

NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được viết bằng C++ và Javascript Nền tảng này được phát triển bởi Ryan Lienhart Dahl vào năm 2009 Nodejs được thiết kế để xây dựng các ứng dụng lớn hay nhỏ và có thể mở rộng nhanh và ít tốn kém nhất, 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ể.

Hình 1.3 Node JS Ở chế độ đồng bộ thực thi từng dòng và tiến hành thực thi dòng tiếp theo khi dòng hiện tại đã thực thi xong.

Khi bất đồng bộ thực thi tất cả dòng code cùng một lúc.

NodeJS là một nền tảng được xây dựng trên JavaScript runtime của Chrome với mục đích xây dựng các ứng dụng mạng nhanh chóng và có thể mở rộng được một cách dễ dàng hơn NodeJS sử dụng mô hình I/O lập trình theo sự kiện, non-blocking, do đó nodeJS khá gọn nhẹ và hiệu quả - công cụ hoàn hảo cho các ứng dụng chuyên sâu về dữ liệu theo thời gian thực chạy trên các thiết bị phân tán.

NodeJS là môi trường runtime mã nguồn mở đa nền tảng, được sử dụng để phát triển các ứng dụng mạng và ứng dụng server-side Các ứng dụng NodeJS được viết bằng JavaScript và có thể chạy trong NodeJS runtime trên OS X, Microsoft Windows và Linux.

NodeJS cũng cung cấp một thư viện bao gồm rất nhiều các module JavaScript khác nhau nhằm đơn giản hóa việc phát triển các ứng dụng web, qua đó giảm thiểu tình trạng sử dụng quá nhiều Node.js.

1.3.2 Các tính năng của Node Js

Lập trình hướng sự kiện và không đồng bộ: Toàn bộ API trong thư viện NodeJS đều không đồng bộ, hay không bị chặn Về cơ bản điều này có nghĩa là một server sử dụng NodeJS sẽ không bao giờ chờ một API trả về dữ liệu Server sẽ chuyển sang API kế tiếp sau khi gọi API đó và cơ chế thông báo của Events trong NodeJS giúp server nhận được phản hồi từ lần gọi API trước.

Cực kỳ nhanh chóng: Được xây dựng trên Công cụ JavaScript V8 của Google Chrome, thư viện NodeJS có khả năng xử lý mã vô cùng nhanh. Đơn luồng/Single thread nhưng có khả năng mở rộng cao: NodeJS sử dụng một mô hình luồng đơn với vòng lặp sự kiện/event Cơ chế event cho phép máy chủ phản hồi non-blocking và cũng cho phép khả năng mở rộng cao hơn so với các server truyền thống hỗ trợ giới hạn các thread để xử lý yêu cầu NodeJS sử dụng một chương trình đơn luồng, cùng một chương trình có thể cung cấp dịch vụ cho một số lượng yêu cầu lớn hơn so với các máy chủ truyền thống như Apache HTTP Server.

Không có buffer - Các ứng dụng NodeJS không có vùng nhớ tạm thời (buffer) cho bất kỳ dữ liệu nào Các ứng dụng này chỉ đơn giản xuất dữ liệu theo khối.

License - NodeJS được phát hành theo giấy phép MIT.

1.3.3 Ứng dụng của Node JS

Node JS là một nền tảng phổ biến ngày nay với nhiều ứng dụng như:

 Hệ thống Notification - Giống như facebook hayTwitter

 Websocket server - Các máy chủ web socket như là Online Chat, Game Server…

 Fast File Upload Client - 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 - Những ứng dụng mà được sử dụng cho các ứng dụng khác thông qua API.

 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.

 Ứng dụng Single Page Application (SPA) - Những ứng dụng này thường request rất nhiều đến server thông qua AJAX

 Ứng dụng truy vấn tới NoSQL database - Như MongoDB, CouchDB,…

 Ứng dụng CLI - Các công cụ sử dụng command-line.

1.3.4 Một số ưu, nhược điểm của NodeJS Ưu điểm:

 Nhận và xử lý nhiều kết nối chỉ với một single-thread giúp hệ thống tốn ít RAM nhất và chạy nhanh nhất khi không phải tạo thread mới cho mỗi truy vấn.

 NodeJS tận dụng tối đa tài nguyên của server mà không tạo ra độ trễ vì áp dụng ưu điểm non-blocking I/O của Javascript.

 Với cơ chế event-driven, non-blocking I/O(Input/Output) và mô hình kết hợp với Javascript là sự lựa chọn tuyệt vời cho các dịch vụ Webs làm bằng JSON.

 Với khả năng xử lý nhiều Request/s đồng thời thời gian phản hồi nhanh Rất phù hợp để áp dụng NodeJS để xây dựng các ứng dụng Single page Application, các ứng dụng không muốn tải lại trang, gồm rất nhiều request từ người dùng cần sự hoạt động nhanh, các **ứng dụng thời gian thực

**như ứng dụng chat, các dịch vụ mạng xã hội như Facebook, Twitter,…

 NodeJS sẽ tận dụng tối đa Unix để hoạt động Tức là NodeJS có thể xử lý hàng nghìn process và trả ra một luồng khiến cho hiệu xuất hoạt động đạt mức tối đa nhất và tuyệt vời nhất.

 Streamming Data: Các web thông thường gửi HTTP request và nhận phản hồi lại (Luồng dữ liệu) Giả xử sẽ cần xử lý 1 luồng giữ liệu cực lớn, NodeJS sẽ xây dựng các Proxy phân vùng các luồng dữ liệu để đảm bảo tối đa hoạt động cho các luồng dữ liệu khác.

 Viết được cho cả 2 phía server và client Chạy đa nền tảng trên Windows, MAC hoặc Linux Hơn nữa cộng đồng NodeJS rất lớn và hoàn toàn miễn phí.

 Rất hạn chế khi áp dụng NodeJS khi xây dựng ứng dụng nặng, tốn tài nguyên Bởi vì NodeJS được viết bằng C++ & Javascript, nên phải thông qua thêm 1 trình biên dịch của NodeJS sẽ lâu hơn 1 chút.

 Giống như hầu hết các công nghệ mới, việc triển khai NodeJS trên host không phải là điều dễ dàng.

 Thiếu sự kiểm duyệt chất lượng các module NodeJS.

Từ những ưu điểm, đặc điểm của Node JS và trải qua thời gian nghiên cứu vềNode JS chúng em nhận thấy Node JS là một môi trường rất hữu ích và tân tiến được nhiều các website lớn lựa chọn nên nhóm chúng em đã quyết định áp dụng NodeJS phát triển đề tài: “Xây dựng app xem thời khóa biểu”.

Giới thiệu MySQL

Hệ quản trị cơ sở dữ liệu MySQL được hiểu như là chương trình dùng để quản lý hệ thống cơ sở dữ liệu, trong đó, cơ sở dữ liệu là một hệ thống lưu trữ thông tin được sắp xếp rõ ràng, phân lớp ngăn nắp Nó giúp bạn có thể truy cập dữ liệu một cách thuận lợi và nhanh chóng nhất Vì hỗ trợ đa số các ngôn ngữ lập trình nên MySQL chính là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất trên thế giới HiệnMySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.

Hình 1.4 Hệ quản trị cơ sở dữ liệu MySQL

MySQL là cơ sở dữ liệu tốc độ cao, ổn định hoạt động trên nhiều hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Đặc biệt, hệ quản trị cơ sở dữ liệu MySQL hoàn toàn miễn phí nên người dùng có thể thoải mái tải về từ trang chủ.

Nó có rất nhiều những phiên bản cho các hệ điều hành khác nhau MySQL được sử dụng cho việc bỗ trợ PHP, Perl và nhiều ngôn ngữ khác Là nơi lưu trữ những thông tin trên các trang web viết bằng framework PHP hay Perl…

1.4.2 Đặc điểm MySQL Đặc điểm của hệ quản trị cơ sở dữ liệu MySQL

 Hệ quản trị cơ sở dữ liệu MySQL chính là một trong những phần mềm quản trị CSDL dạng server based, hệ gần giống với SQL server of Microsoft.

 MySQL là phần mềm quản lý dữ liệu thông qua CSDL Và mỗi một CSDL đều có bảng quan hệ chứa dữ liệu riêng biệt.

 MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều có thể quản lý cùng lúc một hay nhiều CSDL khác nhau Và mỗi người dùng đều có 1 username và password để truy nhập và truy xuất đến CSDL Khi truy vấn đến CSDL của MySQL, bạn phải cung cấp tài khoản và mật khẩu có quyền sử dụng cơ sở dữ liệu đó.

 MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh mẽ Bạn có thể viết hoặc chỉnh sửa code MySQL trên các IDE dành cho PHP, một số công cụ hỗ trợ.

1.4.3 Lý do sử dụng MySQL

MySQL ngày càng hoàn thiện và mang đến nhiều lợi ích cho người dùng Ra mắt người dùng hoàn toàn miễn phí, hệ quản trị cơ sở dữ liệu MySQL mang đến rất nhiều những lợi ích thiết thực, được ứng dụng trong nhiều dự án của các công ty công nghệ, một trong số đó có thể kể đến những công ty chuyên lập trình như MonaMedia, Misa,… cùng chúng tôi tìm hiểu những lợi ích thiết thực của mySQL ngay dưới đây:

Hiệu năng sử dụng cao :Hầu hết, hệ quản trị cơ sở dữ liệu MySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Và họ đánh giá rất cao ở hiệu năng sử dụng của MySQL Với kiến trúc storage-engine, MySQL đặc trưng cho các ứng dụng chuyên biệt, đặc biệt là đối với những trang web có dung lượng lớn, phục vụ hàng triệu khách hàng Hoặc đối với những hệ thống xử lý giao dịch tốc độ cao thì MySQL đều cùng có thể đáp ứng được những khả năng xử lý khắt khe của mọi hệ thống Đặc biệt, với những tiện ích tải tốc độ cao, cơ chế xử lý nâng cao cùng bộ nhớ cache MySQL đưa ra tất cả những tính năng cần có, đây là giải pháp hoàn hảo nhất ngay cả đối với những hệ thống doanh nghiệp khó tính nhất hiện nay.

MySQL hỗ trợ giao dịch mạnh mẽ: Hệ quản trị cơ sở dữ liệu MySQL không những mang lại hiệu năng sử dụng cao Mà nó còn đưa ra một trong số những engine giao dịch cơ sở dữ liệu tốt nhất trên thị trường hiện nay Tính năng này bao gồm: Khóa mức dòng không hạn chế; hỗ trợ giao dịch ACID hoàn thiện; khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng mà người đọc không cản trở cho người viết và ngược lại Với MySQL, dữ liệu sẽ được đảm bảo trong suốt quá trình server có hiệu lực Các mức giao dịch độc lập sẽ được chuyên môn hóa, nếu phát hiện có lỗi khóa chết ngay tức thì.

Tốc độ rất nhanh :hệ quản trị mysql có tốc độ cao.Tốc độ xử lý dữ liệu của mySQL rất nhanh Đánh giá chung của các nhà phát triển, tất cả họ đều cho rằng hệ quản trị cơ sở dữ liệu MySQL là cơ sở dữ liệu nhanh nhất Đây là nơi để cho các website có thể trao đổi thường xuyên các dữ liệu bởi nó có engine xử lý tốc độ cao. Khả năng chèn dữ liệu cực nhanh và hỗ trợ mạnh mẽ các chức năng chuyên dụng cho trang web Các tính năng này cũng được sử dụng cho môi trường lưu trữ dữ liệu mà hệ quản trị này tăng cường đến hàng terabyte cho các server đơn Ngoài ra còn có những tính năng khác như: chỉ số băm, bảng nhớ chính, bảng lưu trữ và cây B được gói lại để giúp giảm các yêu cầu lưu trữ tối đa đến 80% Với tốc độ nhanh, thật không thể phủ nhận hệ quản trị cơ sở dữ liệu MySQL là sự lựa chọn tốt nhất cho cả ứng dụng web cũng như các ứng dụng của doanh nghiệp ngày nay.

Dễ dàng sử dụng :MySQL ngoài được biết đến với tốc độ khá cao, ổn định thì nó thực sự là một hệ thống cơ sở dữ liệu rất đơn giản, rất dễ sử dụng Ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn Đặc biệt nó có thể hoạt động trên tất cả các hệ điều hành.

Hỗ trợ ngôn ngữ truy vấn: MySQL hệ quản trị cơ sở dữ liệu là ngôn ngữ của sự lựa chọn cho tất cả các hệ thống cơ sở dữ liệu hiện đại Người dùng hoàn toàn có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft) Nhiều client có thể truy cập đến server trong cùng một thời gian Đặc biệt các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn cũng có thể truy cập MySQL tương tác với khi sử dụng một vài giao diện để đưa vào các truy vấn và xem kết quả như: các dòng yêu cầu của khách hàng, các trình duyệt web…

 Tính kết nối và bảo mật cao

 Mã nguồn mở tự do và hỗ trợ 24/7

 Chi phí sở hữu thấp nhất

Như vậy đủ thấy MySQL là một hệ quản trị cơ sở dữ liệu đầy đủ đảm bảo các tính năng lại có nhiều ưu điểm Lựa chọn sử dụng MySQL trong đề tài là hoàn toàn đúng đắn

KHẢO SÁT, PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Khảo sát, phân tích bài toán

Bài toán sắp xếp Thời khóa biểu luôn là một bài toán khó, mang tính khoa học đồng thời tính thực tiễn cũng rất cao Bài toán đặt ra yêu cầu xây dựng một thời khoá biểu nhằm mục đích cung cấp thông tin giảng dạy cho các giảng viên và sinh viên.

Thời khóa biểu được xây dựng phải đáp ứng được nhu cầu dạy và học một cách nhanh chóng, thuận tiện và chính xác.

2.1.1.2 Các vấn đề của bài toán

Tính phức tạp của bài toán sắp xếp Thời khóa biểu nằm ở các quy định, ràng buộc môn học chặt chẽ, ở các ràng buộc nghỉ và không nghỉ của giảng viên hết sức phức tạp, đa dạng, thậm chí mâu thuẫn lẫn nhau Chính điều này đã làm cho việc sắp xếp Thời khóa biểu tại các trường học trở nên khó khăn hơn rất nhiều Công việc lập thời khóa biểu trên thực tế thì tất cả các trường học đều đã được giải quyết bằng một phần mềm nào đó hoặc lập thủ công.

Công việc lập thời khóa biểu thủ công gặp rất nhiều các khó khăn như:

 Để lập được một thời khóa biểu cho trường học phải mất rất nhiều thời gian đề xếp, chỉnh, sửa, thay đổi,

 Việc quản lí thời khóa biểu rất phức tạp: khi gặp phải những yêu cầu đổi tiết, xin nghỉ, thường được gọi là những tình huống bất chợt thì sẽ gặp nhiều khó khăn bởi lẽ phải dò thời khóa biểu từng giảng viên, từng lớp rồi sau dó mới đưa ra được những quyết định.

 Việc tra cứu, in ấn thời khóa biểu còn hạn chế Thường thì các trường chi in ra thời khóa biểu theo lớp học, còn việc xây dựng thời khóa biểu cho các giảng viên thì các giảng viên phải tự làm.

2.1.2 Khảo sát về một số app quản lý thời gian

Việc sử dụng app thời gian biểu trong việc quản lý, phân bổ thời gian là cách mà nhiều người sử dụng hiện nay Với các app này, người dùng có thể thực hiện việc phân bổ thời gian một ngày của mình với những công việc cụ thể được hợp lý hơn. Nhờ đó, hiệu quả công việc cũng được cải thiện hơn rất nhiều Tuy nhiên, với sự phát triển của công nghệ thì có rất nhiều app thời gian biểu với các hình thức, cách sử dụng và ứng dụng khác nhau Vậy đâu sẽ là app thời gian biểu hiệu quả và đáng để sử dụng nhất Dưới đây sẽ là câu trả lời dành cho các bạn.

 Forest Stay focused Đây được biết là một ứng dụng rất hữu ích cho việc tập trung để học tập và làm việc, tránh cho bạn xao nhãng vào những thứ hấp dẫn gây mất thời gian từ điện thoại di động của mình.

Sử dụng app thời gian biểu này, bạn sẽ có nhiệm vụ là trồng cây và nếu như thời gian bạn sử dụng điện thoại càng ít thì vườn cây của bạn sẽ càng tươi tốt hơn và ngược lại. Ứng dụng này được khá nhiều người ưa chuộng hiện nay Với việc phù hợp với cả 2 nền tảng di động phổ biến là Android và iOS thì đây được xem là một điểm cộng rất lớn của Forest stay focused.

 App Sunrise Đây là một ứng dụng có chức năng tổng hợp được tất cả những thông tin từ những ứng dụng lịch, mạng xã hội mà bạn sử dụng Với tính năng này, Sunrise sẽ là một công cụ tích hợp tất cả những công việc, sự kiện mà bạn quan tâm để bạn có thể phân bổ thời gian cho những điều đó một cách tốt hơn rất nhiều Với giao diện đơn giản nhưng đẹp mắt, cộng với sự kết hợp được đa dạng các ứng dụng đã giúp cho Sunrise ghi điểm rất lớn trong mắt người dùng. Đặc biệt đây là ứng dụng hoàn toàn miễn phí và bạn có thể sư dụng cho cả điện thoại cũng như máy tính cá nhân.

 App Rescue Time Ứng dụng này sẽ hiện lên cho bạn là một bức tranh toàn cảnh về thời gian sử dụng máy tính của bạn hàng ngày Thông qua đó, bạn có thể biết được mình đã dành phần lớn thời gian của bản thân vào vấn đề gì với việc thống kê một cách chi tiết về thời gian theo từng mục cụ thể Cộng với tính năng chạy nềnởtrên thiết bị, Rescuetime thực sự là một ứng dụng giúp bạn cho bạn kết quả chính xác nhất về thực trạng quản lý thời gian của bạn ra sao Với việc sử dụng miễn phí và phù hợp cho cả máy tính và điện thoại thì đây sẽ là một app đáng để bạn sử dụng với mục đích phân bổ thời gian hợp lý hơn cho mình.

 App Color Note Ứng dụng Colornote là một ứng dụng lập thời gian biểu được khá nhiều người lựa chọn hiện nay Với app này, người dùng hoàn toàn có thể thực hiện việc sắp xếp thời gian biểu của mình bằng cách ghi âm các ghi chú,tìm kiếm các ghi chú liên quan.

Bên cạnh tính năng chính như trên, notepad còn cho phép bạn có thể thực hiện việc gửi những ghi chú mình tạo ra thông qua email, tài khoản mạng xã hội hay tin nhắn để đảm bảo bạn sẽ không bị chậm trễ trong công việc của mình. Ứng dụng này cũng được cung cấp hoàn toàn miễn phí cho người dùngvà sử dụng được cả hai nền tảng là hệ điều hành Android và hệ điều hành ioS Tuy nhiên, trong quá trình sử dụng đôi khi sẽ có quảng cáo Vì thế, bạn cần để ý nếu không sẽ ấn nhầm vào link quảng cáo thì sẽ khá mất thời gian trong công việc.

Một công cụ lên kế hoạch hiệu quả cho bạn không thể không nhắc tới ứng dụng Plan. Với tính năng cơ bản là hỗ trợ người dùng lên kế hoạch, sắp xếp và thông báo về thời gian trong việc sử dụng để thực hiện công việc vừa rồi.

Thế nhưng, điểm nổi bật của của app Plan chính là việc có giao diện đẹp mắt, thân thiện với người dùng và có một số tính năng khá thú vị Có thể kể đến như việc thực hiện phân tích trong khoảng thời gian thực hiện công việc của bạn cũng như đưa ra thời điểm mà khả năng làm việc tập trung cao nhất và hiệu quả nhất.

App Plan hiện đang được cung cấp miễn phí cho web, tuy nhiên, trong thời gian tới sẽ có phiên bản dành cho điện thoại di động.

2.1.3 Tổng quan về hệ thống

“App xem thời khóa biểu” Là một ứng dụng quản lý công việc khá hiệu quả App này có thể sử dụng ngoại tuyến kể cả khi bạn không có kết nối internet Thêm vào đó là việc đồng bộ hóa với các ứng dụng như Google task, ứng dụng Caldav hay etesync.

Việc tạo ra các nhiệm vụ được biết là điều không bị giới hạn thực hiện Cộng với đó là bạn hoàn toàn có thể lồng chúng vào nhau, tự động thêm vào các nhiệm vụ của mình và tạo ra các lời nhắc.

Thiết kế các chức năng

Tương ứng với xây dựng Use Case tổng quát và chi tiết cho từng đối tượng người dùng, đảm bảo được các chức năng cơ bản, cho phép người dùng thực hiện các thao tác một các dễ dàng:

2.2.1 Chức năng app xem thời khóa biểu

- Chức năng xem thời khóa biểu.

- Chức năng thêm, sửa, xóa lịch cá nhân.

- Chức năng đăng nhập/ đăng ký.

Với mô hình Client – Server và theo thiết kế hệ thống như trên, ứng dụng có 3 loại User:

- Biết được lịch chính xác các ngày lên lớp , dạy lớp nào , tại phòng học nào.

- Biết được lịch chính xác ngày họp, giờ họp cụ thể.

- Tìm kiếm thông tin vào một giờ ( ca học) cụ thể có tiết dạy hay lịch họp hay không.

- Có thể thêm, sửa, xóa lịch cá nhân.

- Có thể đăng nhập, xem , sửa thông tin cá nhân

- Xem danh sách sinh viên

- Biết được lịch chính xác các ngày lên lớp , tại phòng học nào.

- Tìm kiếm thông tin vào một giờ ( ca học) cụ thể có lịch học hay không.

- Có thể thêm, sửa, xóa lịch cá nhân.

- Có thể đăng ký/ đăng nhập

- Có thể xem , sửa thông tin cá nhân.

- Quản lý tài khoản giảng viên

Biểu đồ UseCase và đặc tả

2.3.1 Biểu đồ UseCase tổng quát Đặc tả gồm các tác nhân chính:

Thiết kế database

App sẽ sử dụng cơ sở dữ liệu được thiết kế tùy theo mỗi chức năng của app mà các bảng được thiết kế với những trường chứa những thuộc tính khác nhau:

1.1.1 Thiết kế cơ sở dữ liệu tổng quát

1 Bảng User Bảng người dùng

2 Bảng Admin Bảng quản trị viên

3 Bảng Teachers Bảng giảng viên

4 Bảng UserOtp Bảng UserOtp để xác nhận OTP

6 Bảng ClassTime Bảng về thời gian lớp

7 Bảng UserClass Bảng sinh viên lớp

8 Bảng PersonalSchedule Bảng thời khóa biểu

2.4.2 Thiết kế cơ sở dữ liệu chi tiết

T Tên trường Kiểu dữ liệu Mô tả

2 Name Varchar Tên người dùng

3 Email Varchar Email người dùng

4 Birthday Datetime Ngày sinh người dùng

5 Phone Varchar Số điện thoại

6 Avatar Varchar Ảnh đại diện người dùng

8 password Varchar Mật khẩu tài khoản

T Tên trường Kiểu dữ liệu Mô tả

2 Name Varchar Tên tài khoản admin

8 Password Varchar Mật khẩu tài khoản

T Tên trường Kiểu dữ liệu Mô tả

1 Id int Id giảng viên

2 Name Varchar Tên tài khoản

3 Email Varchar Địa chỉ email

5 Phone Varchar Số điện thoại

6 Avatar Varchar Ảnh đại diện

7 Username Varchar Họ tên đầy đủ

8 password Varchar Mật khẩu tài khoản

T Tên trường Kiểu dữ liệu Mô tả

3 Username Varchar Tên tài khoản

6 Created_at Datetime Tạo Otp

7 Updated_at Datetime Cập nhật Otp

T Tên trường Kiểu dữ liệu Mô tả

2 Name Varchar Tên lớp học

3 Teacher_id Varchar ID giảng viên

5 Created_at Datetime Tạo lớp học

6 Updated_at Datetime Cập nhật lớp học

T Tên trường Kiểu dữ liệu Mô tả

T Tên trường Kiểu dữ liệu Mô tả

1 User_id int Mã sinh viên

2 Class_id Varchar Mã lớp học

T Tên trường Kiểu dữ liệu Mô tả

3 Notes Varchar Lịch trình cá nhân

Thiết kế giao diện

Phần giao diện người dùng là phần thiết yếu để người dùng có thể tiếp cận và sử dụng kết quả mà mô hình tạo ra Ở đây, chúng em sử dụng môi trường web, được phát triển dựa trên nền tảng React Native, từ đó cho ra giao diện người dùng một cách tối ưu nhất giúp việc giao tiếp giữa Front-end và Back-end dễ dàng Việc quản lý và kiểm duyệt lại các nội dung cho đội ngũ Amin cũng dễ dàng hơn.

Ngày đăng: 16/03/2024, 01:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w