1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI XẾP LỊCH HỌC

46 22 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

Định dạng
Số trang 46
Dung lượng 1,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chức năng chính của HTML là xây dựng cấu trúc siêu văn bản trên một website, hoặc khai báo các t p tin kậ ỹ thuậ ố media như hình ảt s nh, video, nhạc.. ớ JavaScript được biết đến đầu ti

Trang 1

KHOA: CÔNG NGH THÔNG TIN Ệ - -

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 4

PHẦN 1: PHẦN MỞ ĐẦU 5

1 Lý do ch ọn đề tài 5

2 Mục tiêu, đối tượng 5

2.1 M c tiêu. 5

2.2 N ền tả ng, Framework và Database. 5

3.Đối tượng 5

4 Chức năng 5

a Account 5

b Room 5

c Course 6

PHẦN 2: NỘI DUNG 7

CHƯƠNG I: CƠ SỞ LÝ THUYẾT 7

1 HTML, CSS và JavaScrip 7

a HTML 7

b CSS 7

c JavaScrip 8

2 Node JS 8

3 ReacJS 8

4 Dart 9

5 Express JS 9

6 Flutter 10

7 Qu n Lí Dữ Liệ u Mong Db 11

8 API 12

a Ưu điểm 13

b Nhược điểm 14

CHƯƠNG II: THIẾT KẾ CƠ SỞ DỮ LIỆU 15

1 Account : 15

2 Môn h ọc 15

2 Phòng h ọc 15

Trang 3

CHƯƠNG III: CÁC API TRONG DỰ ÁN 16

1 API account 16

a API login 16

b API get account 16

c API change password 17

d API forgot password accont 18

e API new password account 18

2 API Room 19

a API get room 19

b API add room 21

c API change name room 22

d API delete room 22

3 API Course 23

a API get course 23

b API coursed 24

c API add course 26

d API change nameCourse 26

e API change schedule course 27

f API change amout course 27

g API change ischeck 28

h API Coursesort 28

i API delete course 29

CHƯƠNG IV: CÁC THUẬT TOÁN ĐƯỢC SỬ DỤNG 30

1 Bubble Sort 30

a, Giới Thi u 30ệ b, Code trong d án 30ự 2.Thuật toán s d ử ụng để xếp lịch CHƯƠNG V: THIẾT KẾ GIAO DIỆN 34

1 Website 34

a Tài Khoản 34

b Trang ch 35ủ

Trang 4

c.Quản lí Phòng 35

d Course 37

e Lịch học 39

2.App 39

a Room 40

PHẦN 3: KẾT LUẬN 44

1 Mặt đã đạt được 44

2 H n chế 44

TÀI LIỆU THAM KHẢO 45

Trang 5

LỜI NÓI ĐẦU

Trong những năm gần đây, công nghệ thông tin không ng ng phát tri n m t cách ừ ể ộmạnh m và hiẽ ện đại Sự ra đời của công nghệ thông tin làm phong phú bộ m t xã hặ ội, đời sống con người được nâng cao rõ rệt, đóng góp to lớn cho sự phát triển của nhân loại

Đã từ lâu, việc lập thời khóa biểu cho các lớp là vấn đề quan trọng của phòng đào tạo và phải luôn luôn hoàn thành trước khi triển khai cho sinh viên đăng ký học L p thậ ời khóa bi u bể ằng phương pháp thủ công là công vi c r t n ng n , t n nhi u th i gian và d ệ ấ ặ ề ố ề ờ ễ

vi ph m các ràng bu c v nghi p v Do v y, khi áp d ng ph i trạ ộ ề ệ ụ ậ ụ ả ải qua điều ch nh vài lỉ ần mới có thể đạt được yêu cầu cơ bản

Các bài toán th i khóa bi u rờ ể ất phong phú và đa dạng b i nh ng ràng bu c và yêu ở ữ ộcầu đặc trưng của từng hệ đào tạo, th m chí t ng trậ ừ ường học

Bài toán th i khóa bi u thu c l p các bài toán tờ ể ộ ớ ối ưu nên các giải thuật truyền th ng ốkhó gi i quyả ết được trọn v n các yêu c u nghi p v và yêu c u vẹ ầ ệ ụ ầ ề thời gian thực hi n ệ

Xin chân thành cảm ơn!

Trang 6

PHẦN 1: PH N MỞ ĐẦU

1 Lý do ch ọn đề tài

Thời khóa biểu của trường học là kế hoạch giảng dạy của giáo viên và học tập của sinh viên M t b ng th i khóa bi u h p lý giúp giáo viên thu n l i, tho i mái khi lên l p và ộ ả ờ ể ợ ậ ợ ả ớgiúp sinh viên thoải mái khi đăng ký học tập

2 M c tiêu, đối tượng

2.1 Mục tiêu

T o ra 1 ng d ng x p lạ ứ ụ ế ịch h c dọ ễ ử ụ s d ng cho sinh viên và Th y cô ầ

2.2 Nền tảng, Framework và Database

Ngôn ngữ: HTML,CSS,JAVASTRIPT (web), Dart(app)

Platform: Node JS (Web)

Thư viện: ReacJS Framework: Express JS(Web), Flutter(App) Database: Mong Db(Web & App)

b Room

Chức năng thêm phòng học Chức năng đổi tên phòng

Trang 7

c Course

Chức năng thêm khóa học Chức năng đổi tên khóa h c ọChức năng đổi lịch

Chức năng sắp xếp Chức năng xóa khóa học

Trang 8

PHẦN 2: N I DUNG

CHƯƠNG I: CƠ SỞ LÝ THUYẾT

1 HTML, CSS và JavaScrip

a HTML

Đây là viết tắt của cụm từ tiếng Anh “HyperText Markup Language”,

tạm dịch: Ngôn ngữ đánh dấu siêu văn bản

“Cái tên nói lên tất cả” : HTML là một ngôn ngữ đánh dấu được thiết kế

ra để tạo nên các trang web với các mẩu thông tin được trình bày trên WorldWide Web Cùng với CSS và JavaScript, HTML tạo ra bộ ba nền tảng kỹthuật cho các website

Chức năng chính của HTML là xây dựng cấu trúc siêu văn bản trên một website, hoặc khai báo các t p tin kậ ỹ thuậ ố (media) như hình ảt s nh, video, nhạc HTML thường được dùng để phân chia các đoạn văn, heading, links, blockquotes,…

b CSS

CSS là viết t t cắ ủa c m t ụ ừ “Cascading Style Sheets” ạ, t m dịch: ngôn

thành phần HTML c a trang web thủ ực sự ẽ xuấ s t hiện trên frontend như thế nào

Nếu HTML cung c p các công c thô c n thiấ ụ ầ ết để ấ c u trúc n i dung trên ộmột trang web thì CSS sẽ giúp định hình ki u nể ội dung này để trang web xuất hiện trước người dùng theo một cách đẹp hơn

Có thể nói, CSS gần như tạo nên b mộ ặt của một website Và CSS cũng không ph i là tả ất cả Để có một trang web đẹp b n không ch d a vào CSS mà ạ ỉ ựphải k t hế ợp với nhi u ngôn ng khác Các ngôn ng phề ữ ữ ải được th c hi n dự ệ ựa trên các bản thiế ế đã thống nhất t k

Trang 9

c JavaScrip

Thường được viết tắt là “JS”, JavaScript mlà ột ngôn ngữ lập trình được Brendan Eich (đồng sáng l p d ậ ự án Mozilla, quỹ Mozilla, và t p ậ đoàn

Mozilla) cho m t vào ra ắ năm 1995 v i tên LiveScript ớ

JavaScript được biết đến đầu tiên với tên Mocha, và sau đó là LiveScript, nhưng công ty Netscape đã đổi tên của nó thành JavaScript, bởi vì sự phổ biến như là một hiện tượng của Java lúc bấy giờ Các slideshow, pop-up quảng cáo và tính năng autocomplete của Google đều được viết bằng

JavaScript

JS có tác dụng giúp chuy n website tể ừ trạng thái tĩnh sang động, t o ạtương tác để cải thiện hiệu suất máy chủ và nâng cao trải nghiệm người dùng Hiểu đơn giản, JavaScript là ngôn ngữ được sử dụng rộng rãi khi kết hợp với HTML/CSS để thiết kế web động

2 Node JS

NodeJS là một nền tảng (Platform) đượ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

Node.js ra đời khi các developer đời đầu của JavaScript mở rộng nó từ một thứ bạn chỉ chạy được trên trình duyệt thành một thứ bạn có thể chạy trên máy của mình dưới dạng ứng dụng độc lập

3 ReacJS

React là thư viện JavaScript phổ biến nhất để xây dựng giao diện

người dùng (UI) Nó cho tốc độ phản hồi tuyệt vời khi user nhập liệu bằng cách sử dụng phương pháp mới để render trang web

Trang 10

Components của công cụ này được phát triển bởi Facebook Nó được

ra mắt như một công cụ JavaScript mã nguồn mở vào năm 2013 Hiện tại,

nó đã đi trước các đối thủ chính như Angular và Bootstrap, hai thư viện JavaScript bán chạy nhất thời bấy giờ

Mục đích của Dart là để giải quyết các vấn đề của JavaScript (mà, theo như một tài liệu bị rò rỉ, không thể được giải quyết bằng cách cải tiến ngôn ngữ) trong khi cung cấp hiệu năng tốt hơn, khả năng "có thể dễ dàng trở thành công cụ trong các dự án lớn" và an ninh tốt hơn Các kỹ sư Google hiện đang phát triển một IDE trên nền tảng điện toán đám mây gọi là Brightly, mà

có lẽ là ứng dụng Dart đầu tiên Google sẽ cung cấp một trình biên dịch Dart

thành mã ECMAScript 3 on the fly, dành cho các trình duyệt không tương

thích Dart Cũng có thể chuyển mã typed Closure thành Dart Google cũng sẽ tích hợp một máy ảo vào Chrome và khuyến khích các đối thủ cạnh tranh làm điều này với trình duyệt của họ Máy ảo Dart và Dart Cross Compiler có thể

ra mắt vào cuối năm 2011

5 Express JS

Express js là một Framework nhỏ, nhưng linh hoạt được xây d ng trên ựnền t ng cả ủa Nodejs Nó cung cấp các tính năng mạnh mẽ để phát tri n web ểhoặc mobile

Trang 11

Về các package hỗ trợ: Expressjs có vô s các package hố ỗ trợ nên các b n ạkhông ph i lo l ng khi làm viả ắ ệc với Framework này.

Về performance: Express cung c p thêm v ấ ề các tính năng (feature) để dev lập trình tốt hơn Chứ không làm giảm tốc độ ủa NodeJS c

Và hơn hết, các Framework nổi tiếng của NodeJS hiện nay đều sử dụng ExpressJS như một core function, chẳng hạn: SailsJS, MEAN, Các b n ạtham khảo ở đây

6 Flutter

Flutter được phát triển nhằm giải quyết bài toán thường gặp trong mobile

là Fast Development và Native Performance Nếu như React Native chỉ đảm bảo Fast Development và code native thuần chỉ đảm bảo Native Performance thì Flutter làm được cả 2 điều trên

Phát tri n ng dể ứ ụng nhanh chóng: Tính năng hot reload của nó giúp b n ạnhanh chóng và d dàng th nghi m, xây d ng giao diễ ử ệ ự ện người dùng, thêm tính năng và sửa lỗi nhanh hơn Trải nghiệm tải lại lần thứ hai, mà không làm mất trạng thái, trên emulator, simulator và device cho iOS và Android

Truy cập các tính năng và SDK native: Làm cho ứng dụng của bạn tr ởnên sống động với API của platform, SDK c a bên thủ ứ ba và native code Nó cho phép bạn s d ng lử ụ ại mã Java, Swift và ObjC hiệ ại củn t a mình và truy cập các tính năng và SDK native trên iOS và Android

Phát tri n ng d ng th ng nhể ứ ụ ố ất: Flutter có các công c ụ và thư viện đểgiúp b n dạ ễ dàng đưa ý tưởng c a mình vào cuủ ộc sống trên iOS và Android Nếu bạn chưa có kinh nghiệm phát tri n trên thiể ết bị di động, thì Flutter là một cách dễ dàng và nhanh chóng để xây dựng các ứng dụng di động tuyệt đẹp Nếu bạn là một nhà phát triển iOS hoặc Android có kinh nghiệm, bạn có

Trang 12

thể s d ng Flutter cho các View cử ụ ủa bạn và t n d ng nhi u code Java / ậ ụ ềKotlin / ObjC / Swift hiện có của bạn

7 Quản Lí Dữ Liệu Mong Db.

MongoDB là một database hướng tài li u (document), mệ ột dạng NoSQL database Vì th , MongoDB s tránh c u trúc table-based cế ẽ ấ ủa relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON MongoDB s dử ụng lưu trữ ữ liệu dưới dạng Document JSON dnên mỗi m t collection sộ ẽ các các kích cỡ và các document khác nhau Các

dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ

10, vào tháng Mười năm 2007, nó là một phần của sản phẩm PaaS (Platform

as a Service) tương tự như Windows Azure và Google App Engine Sau đó

nó đã được chuyển thành nguồn mở từ năm 2009

MongoDB đã trở thành một trong những NoSQL database nổi trội nhất bấy giờ, được dùng làm backend cho rất nhiều website như

eBay, SourceForge và The New York Times

Các feature của MongoDB gồm có:

• Các ad hoc query: hỗ trợ search bằng field, các phép search thông thường, regular expression searches, và range queries

• Indexing: bất kì field nào trong BSON document cũng có thể được index

• Replication: có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bản đang tồn tại, đang sử dụng Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ liệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao Vì vậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên

Trang 13

bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố

• Aggregation: Các Aggregation operation xử lý các bản ghi dữ liệu và trả về kết quả đã được tính toán Các phép toán tập hợp nhóm các giá trị từ nhiều Document lại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã được nhóm đó để trả về một kết quả duy nhất Trong SQL, count(*) và GROUP BY là tương đương với Aggregation trong MongoDB

• Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng những function trên và hoạt động như một cách phân phối qua sharding

8 API

API là các phương thức, giao th c kứ ế ối với các thư việt n n và ng d ng ứ ụkhác Nó là viết t t cắ ủ Application Programming Interface –a giao di n l p ệ ậtrình ứng d ng API cung c p khụ ấ ả năng cung cấp kh ả năng truy xuất đến một tập các hàm hay dùng Và từ đó có thể trao đổi dữ liệu giữa các ứng d ng ụ

Web API là một phương thức dùng để cho phép các ứng dụng khác nhau

có thể giao tiếp, trao đổi dữ liệu qua lại Dữ liệu được Web API tr lả ại thường

ở dạng JSON hoặc XML thông qua giao thức HTTP hoặc HTTPS

RESTful API là m t tiêu chu n dùng trong viộ ẩ ệc thiế ết k API cho các ng ứdụng web (thiết kế Web services) để tiện cho việc quản lý các resource Nó

Trang 14

chú trọng vào tài nguyên hệ thống (tệp văn bả ản, nh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền t i qua HTTP ả

REST (REpresentational State Transfer) là một dạng chuyển đổ ấu trúc i c

dữ liệu, một ki u kiể ến trúc để ế vi t API Nó s dử ụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một s thông ố tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu

Chức năng quan trọng nhất c a ủ REST là quy định cách sử d ng các ụHTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để qu n cả ác resource RESTful không quy định logic code ứng d ng và không giụ ới hạn b i ngôn ng l p trình ng d ng, bở ữ ậ ứ ụ ất kỳngôn ng hoữ ặc framework nào cũng có thể ử ụng để thiết kế ộ RESTful s d m t

• Mã nguồn mở, hỗ trợ chức năng RESTful đầy đủ, sử dụng bởi bất kì client nào hỗ trợ XML, Json

• Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test

Trang 15

• Giao tiếp hai chiều được xác nhận trong các giao dịch, đảm bảo độ tin cậy cao

b Nhược điểm

Do web API còn khá mới nên chưa thể đánh giá nhiều về nhược điểm của

mô hình nay Tuy nhiên, có hai nhược điểm dễ dàng nhận thấy:

• Web API chưa hoàn toàn phải là RESTful service, mới chỉ hỗ trợ mặc định GET, POST

• Để sử dụng hiệu quả cần có kiến thức chuyên sâu, có kinh nghiệm backend tốt

• Tốn thời gian và chi phí cho việc phát triển, nâng cấp và vận hành

• Có thể gặp vấn đề về bảo mật khi hệ thống bị tấn công nếu không giới hạn điều kiện kỹ

Trang 16

CHƯƠNG II: THIẾT KẾ CƠ SỞ DỮ LIỆU

Quản lí d ữ Liệu Mong Db

Trang 17

CHƯƠNG III: CÁC API TRONG DỰ ÁN

Swagger là một phần m m mã ngu n mề ồ ở được sử ụng để d phát tri n thiể ết

kế và làm các document cho các REST API và còn có một số tính năng khác Link Swagger: http://itcode.vn/sapxeplichhoc/#/

- Mô tả: trả ề ữ liệ v d u tài kho n ả

- Status:

Trang 19

"status" : 401 ,

"success" : false ,

"message" : "Please login to access"

Trang 20

"schedule" : "3" ,

"during" : 2 ,

"amount" : 18 ,

Trang 21

"schedule" : "2" ,

Trang 23

+500: L i server

c API change name room

- Link: http://45.77.12.16:5000/changenameroom/{_id}

Trang 24

- Mô tả: Trả ề ữ liệ v d u các khóa h c ọ

-Tham số truyền vào:

Trang 25

-Tham số truyền vào:

- Status:

Trang 26

+200: return the coursed

Trang 30

i API delete course

- Link: http://45.77.12.16:5000/deletecourse/{_id}

Trang 31

CHƯƠNG IV: CÁC THUẬT TOÁN ĐƯỢC SỬ DỤNG

1 Bubble Sort

Bubble Sort(Sắp x p nế ổi bọt) là m t ộ thuậ t toán s p xếp đơn giản, với

thao tác cơ bản là so sánh hai phần tử k nhau, nếu chúng chưa đứng đúng ềthứ t ự thì đổi chỗ (swap)

Có thể tiến hành t trên xu ng (bên trái sang) hoừ ố ặc từ dưới lên (bên ph i ảsang)

Sắp x p nế ổi bọt còn có tên g i khác là s p x p b ng so sánh trọ ắ ế ằ ực tiếp Nó s ửdụng phép so sánh các ph n t nên là mầ ử ột giải thuật sắp x p ki u so sánh ế ể

function bubbleSort(array) { var size = array.length;

for (var i = 0; i < size - 1; i++) { for (var j = 0; j < size - - 1; j++) { i

if (array[j].during > array[j + 1].during) { var temp = array[j];

array[j] = array[j + 1];

array[j + 1] = temp;

} else if ( array[j].during === array[j + 1].during &&

array[j].amount < array[j + 1].amount ) {

var temp = array[j];

array[j] = array[j + 1];

array[j + 1] = temp;

} }

Ngày đăng: 27/04/2022, 15:53

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w