Chương 1: TỔNG QUAN 1.1 Mục tiêu đề tài Quản lý tốt là nền tảng giúp doanh nghiệp thành công và bền vững. Nhưng để quản lý thế nào cho tốt là một vấn đề lớn và tốn rất nhiều công sức, đặc biệt là trung tâm dạy học, cụ thể là trung tâm tiếng anh. Với số lượng nhân viên, giảng viên lớn, số lượng học viên cũng gia tăng khiến thông tin cần quản lý sẽ nhiều lên theo thời gian, dễ gây ra những sai sót không đáng có, dẫn đến việc không thấy được những khó khăn đang gặp phải, sai lệch về doanh số, thu chi,. Với thời buổi công nghệ phát triển như hiện nay, việc áp dụng khoa học công nghệ vào việc quản lý sẽ dễ dàng và hiệu quả hơn so với việc quản lý bằng tay như trước đây.
Cho nên chúng ta cần có một phần mềm, cụ thể là một website quản lý trung tâm Anh ngữ để có thể dễ dàng quản lý những thông tin, thực hiện các chức năng cần thiết của một phần mềm quản lý, cũng như thống kê những thông tin quan trọng, đặc biệt là doanh thu, để người dùng có thể dễ dàng truy cập, nắm bắt được thông tin và đưa ra những hướng đi mới để trung tâm ngày một phát triển.2 Mô tả ứng dụng web Với một website, người dùng có thể dễ dàng truy cập, thao tác, quản lý thông tin bất cứ lúc nào chỉ cần có kết nối internet và thiết bị thông minh bên cạnh. Chỉ với vài thao tác để có thể quản lý được toàn bộ trung tâm giúp tiết kiệm được rất nhiều thời gian, công sức, chi phí so với việc quản lý bằng tay như trước đây. Ngoài ra, website cũng xây dựng để dành cho nhân viên trong trung tâm như giảng viên và bộ phận hỗ trợ. Giảng viên có thể xem được thời khóa biểu của mình trên website, xem danh sách học viên trong lớp cũng như gửi mail thông báo nếu có thay đổi trong lịch học hay gửi thêm tài liệu qua mail cho các học viên.
Nhân viên hỗ trợ sẽ tiếp nhận các email thắc mắc của học viên và giải đáp để có thể tương tác nhiều hơn, mang lại cảm giác thân thiện, chuyên nghiệp cho trung tâm. Một số tính năng của ứng dụng web: Các chức năng, nghiệp vụ cho một ứng dụng quản lý. Phân quyền các chức năng tương ứng với các actor. Cho phép giảng viên xem được thời khóa biểu, danh sách các học viên trong lớp.
Gửi mail đến các học viên. Chức năng đề xuất giảng viên và phòng học. Cho phép học viên thanh toán thông qua ví điện tử Momo. 1 do an Chương 2: Cơ sở lý thuyết 2.
Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Nền tảng phát triển Bảng 2.1 Phiên bản các công nghệ được sử dụng Tên Phiên bản Nodejs 10.4 Recaptcha API V2 Google Drive API V3 2.2 Thư viện sử dụng Bảng 2.2 Phiên bản các thư viện được sử dụng Tên Phiên bản body-parser V1.2 2 do an Chương 2: Cơ sở lý thuyết 2.2 Công nghệ sử dụng 2.1 Tổng quan Nodejs 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ể. Các ứng dụng của Nodejs: Websocket server RESTful API 2.2 Ứng dụng Nodejs vào dự án Là một web server kết nối tới cơ sở dữ liệu. Tạo ra các API để nhận yêu cầu từ client và trả về dữ liệu theo yêu cầu của client dưới dạng JSON.1 Tổng quan Express là một framework dành cho Nodejs. Nó cung cấp cho chúng ta rất nhiều tính năng mạnh mẽ trên nền tảng web cũng như trên các ứng dụng di động.
Express hỗ trợ các phương thức HTTP và middleware tạo ra một API vô cùng mạnh mẽ và dễ sử dụng. Một số chức năng chính của Express như sau: Thiết lập các lớp trung gian để trả về các HTTP request. Định nghĩa router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL. Cho phép trả về các trang HTML hoặc JSON dựa vào các tham số.
3 do an Chương 2: Cơ sở lý thuyết 2.2 Ứng dụng express vào dự án Thiết lập các HTTP request để nhận request từ client. Router các request dựa vào HTTP method. Trả về cho client dữ liệu dạng JSON.1 Tổng quan MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql và được hàng triệu người sử dụng 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 quan hệ nên truy vấn sẽ rất nhanh 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 (bảng), còn document(tài liệu) sẽ ứng với row(hàng) , MongoDB sẽ dùng các document thay cho row trong RDBMS Các collection(bộ sưu tập) 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 2.2 Ứng dụng MongoDB vào dự án Lưu trữ dữ liệu để backend Nodejs có thể thực hiển các thao tác truy vấn để trả về dữ liệu cho client.1 Tổng quan Angular là một frameworks Javascript giúp chúng ta xây dựng ứng dụng web đầy đủ tính năng từ phía client. Angular lần đầu được phát hành bởi gã khổng lồ Google vào năm 2010 với phiên bản AngularJS, sau đó đã có chỗ đứng khá vững chắc trong một thời gian dài, phiên bản Angular 2 phát hành năm 2016 mang đến một bước chuyển mình vượt bậc, một công cụ thực sự mạnh mẽ cho việc phát triển ứng dụng Web trên cả nền tảng Mobile và Desktop 4 do an Chương 2: Cơ sở lý thuyết Một số ưu điểm của Angular: Cơ chế Two-Way Data Binding: Đây là tính năng cool nhất của Angular.
Data binding tự động và rất nhanh tức là bất cứ thay đổi nào trên view đều được tự động cập nhật vào component class và ngược lại. Hỗ trợ cơ chế Routing mạnh mẽ: Angular có cơ chế routing tải trang một cách bất đồng bộ trên cùng một trang cho phép chúng ta tạo SPA. Mở rộng HTML: Angular cho phép chúng ta sử dụng cấu trúc lập trình giống như điều kiện if, vòng lặp for. Thiết kế module hoá: Angular tiếp cận theo hướng thiết kế module hoá.
Bạn phải tạo các Angular Module để tổ chức tốt hơn và quản lý source code. Hỗ trợ làm việc với hệ thống Backend: Angular được xây dựng hỗ trợ làm việc với backend server và thực thi bất cứ logic nào và nhận dữ liệu về. Cộng đồng tốt: Angular được hỗ trợ bởi Google và cộng đồng.2 Ứng dụng của Angular vào dự án Xây dựng ứng dụng web admin cho quản trị viên có thể call API từ server nodejs để lấy dữ liệu và hiển thị cho người quản trị dễ dàng quản lý. Và một ứng dụng web cho người dùng có thể dễ dàng đăng kí lớp học từ hệ thống.5 Dịch vụ bên ngoài 2.1 Thanh toán Momo 2.1 Giới thiệu Momo Payment Platform API là giải pháp thanh toán cho các đơn vị kinh doanh, cho phép khách hàng sử dụng tài khoản Ví Momo để thanh toán các dịch vụ trên nhiều nền tảng khác nhau: Desktop Website, Mobile Website, Mobile Application, POS, Pay In Bill, In App Momo.
5 do an Chương 2: Cơ sở lý thuyết 2.2 Sơ đồ hoạt động Hình 2.1 Sơ đồ hoạt động thanh toán Momo Merchant Website: website client của hệ thống yêu cầu thanh toán Momo. Merchant Server: server của hệ thống. Momo: server Momo. Các bước thực hiện: Bước 1: Client yêu cầu tạo thanh toán Momo tới server.
Bước 2: Server yêu cầu thanh toán tới server của Momo. Bước 3: Server của Momo sẽ gửi trả về cho server của hệ thống một url để chuyển hướng tới trang website Momo. Bước 4: Hiện mã QR thanh toán cho người dùng. Bước 5, 6: Người dùng quét QR thanh toán từ ứng dụng.
6 do an Chương 2: Cơ sở lý thuyết Bước 7: Chuyển về trang của client của ứng dựng, đồng thời yêu cầu thông báo tới server của ứng dụng. Bước 8: Server của hệ thống xử lý kết quả. Bước 9: Hiển thị kết quả cho người dùng.3 Ứng dụng vào hệ thống Tích hợp Momo vào hệ thống đăng kí lớp học dùng để thanh toán học phí online.2 Upload file Google Drive 2.1 Tổng quan Google Drive API cho phép các bạn tạo các ứng dụng tận dụng lưu trữ đám mây của Google Drive. Bạn có thể phát triển ứng dụng của mình tích hợp với Google Drive, và tạo các chức năng trong ứng dụng của bạn sử dụng Google Drive.
Một số tính năng của Google Drive API: Download và Upload file lên Google Drive Tìm kiếm file, thư mục trên Google Drive User có thể chia sẻ file, thư mục hợp tác về nội dung trên Google Drive Kết hợp với API Google Picker để tìm kiếm tất cả các tệp trong Google Drive, sau đó trả lại tên tệp, URL, ngày sửa đổi cuối cùng và người dùng Tạo các phím tắt là các liên kết bên ngoài đến dữ liệu được lưu trữ bên ngoài Drive, trong một kho lưu trữ dữ liệu hoặc hệ thống lưu trữ đám mây khác Tạo thư mục Drive chuyên dụng để lưu trữ dữ liệu của ứng dụng để ứng dụng không thể truy cập tất cả nội dung của người dùng được lưu trữ trong Google Drive. Xem Lưu trữ dữ liệu dành riêng cho ứng dụng Tích hợp với Giao diện người dùng Google Drive, là giao diện người dùng web tiêu chuẩn của Google mà bạn có thể sử dụng để tương tác với các tệp Drive 2.2 Sơ đồ hoạt động Hình 2.2 Sơ đồ hoạt động upload file Bước 1: Client upload file lên server của hệ thống.