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

Hệ thống hỗ trợ học vụ cho sinh viên trường đại học công nghiệp thành phố hồ chí minh

12 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 đề Hệ thống hỗ trợ học vụ cho sinh viên trường đại học công nghiệp thành phố hồ chí minh
Tác giả Tôn Long Phước, Lê Văn Tùng, Phan Tấn Tài
Trường học Trường Đại học Công nghiệp Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại bài báo
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 1,69 MB

Nội dung

Hệ thống phảicócácchức nănghọc vụcơ bản cũngnhưđaphânhệ đảmbảo cho sinhviên thuậntiện sửdụng, đồngthời hệthống phải luôn ổn định ởmọithời điểm.Chúng tôiđề xuất công cụ có tênlà “ERUKALEA

Trang 1

TÔN LONGPHƯỚC1, LÊVĂNTÙNG1, PHAN TẤN TÀI1

}Khoa Công nghệ Thông tin, TrườngĐại học Công nghiệp Thành phổ Hồ Chỉ Minh

ton longph uoc@iuh edu vn, tuny ỉ ỉ 3tungle@gmail com, ta itoỉ đoraemon@gmaiỉ com

Tóm tăt. Trường Đại học Công nghiệp TP.HCM đượcxếphạng 10 trường đạihọchàngđầu Việt Nam năm2021 theo bảng xếp hạng QS Đây là mộttrường đàotạo đangành với điều kiện cơsở hạ tầng tốtvà

đội ngũ giảng viêncó chuyên môncao.Hiệntại, hườngcóhơn 36,000 sinh viên,học viên đanghọctậpvà nghiên cứutại đây Do đó,hường cần có mộtcông cụ hỗhợsinh viên, học viên trong quá trình họctậpvà nghiên cứu tốt hơn Hệ thống phảicócácchức nănghọc vụcơ bản cũngnhưđaphânhệ đảmbảo cho sinh

viên thuậntiện sửdụng, đồngthời hệthống phải luôn ổn định ởmọithời điểm.Chúng tôiđề xuất công cụ

có tênlà “ERUKALEARN”,mộtcôngcụ có đầy đủ các chức năng vềhọc vụcho sinh viên, cũng như giảng dạy cho giảng viên, nhân viên tạitrường Đại học Công cụ gồm hai phânhệ chính: ứng dụng Webvà ứng

dụngtrênthiết bị di động Chúng tôi dùng các côngnghệ như NodeJS, ReactNativevà đặc biệtlà AWS để hiển khai hệ thống thay vì dùng chủ vật lý giúp giải quyết vấn đề tắc nghẽn đang cấp thiết Hiệnhệ thống

đã được thử nghiệm cho một sốsinh viên tạiKhoa Côngnghệ thông tin tạihường Trong tươnglai, chúng tôi sẽmở rộng các chức năng cũng nhưtích hợpcác hệ thốngkháctrong trường nhằm nâng cao tính tiện dụng của hệthống

Từ khoá ứng dụngweb, ứng dụng diđộng, AWS, Điện toánđám mây

OF HO CHI MINH CITY

2021 according to the QS rankings This is amultidisciplinary training school with good infrastructure

conditions and highly qualified teaching staff Currently, the school has morethan 36,000 students and

trainees studying and researching here Therefore,the schoolneeds a tool to support students and learners

inthe process of studying andresearchinghere andtool need to be stable at all times The systemneeds to have academicfunctions as well as many modules for students and trainees to be convenient duringuse

Werecommend a toolcalled “ERUKALEARN”,a toolwithfull academic functions for students,trainees

as well as teaching for lecturers and staffat the University ofIndustry The tool consists of two main

modules: Web application and mobile application We usetechnologies like NodeJS, ReacteNative and specially AWS instead of physical serverto solve the urgent congestion Currently the system has been

tested forsome students atdie Facultyof Information Technology atdie university In diefuture, we will expand the functions as well as integrate other systems in the schoolto improvetheusabilityof thesystem

Keywords.Webapplication, Mobile application, AWS, Cloud-Computing

Trường ĐạihọcCông nghiệpTP.HCM (IUH)là một trong những trườngđạihọclớn của Bộ Công Thương,

cũng là trường có quỵmô đàotạo lớn với hơn 36,000sinh viên, đa ngành, đa bậchọcvànhiều chương trình

liênkết quốc tế Trường đượcđầu tư cơ sở vậtchất tốt, đáp ứng nhu cầu củangười họcvà các tiêu chuẩn

quốctế Bên cạnh,đội ngũgiảng viêncótrìnhđộ cao cùng với nhiều chương trình đào tạođạt chuẩnquốc

tế như AUN Vì vậy,Nhà trường cần có mộthệ thống website hỗ dợ đào tạo một cách hiệu quả chongười

Trang 2

Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH

học,người dạy,người quản lý Tuynhiên, hệ thống website hỗ trợ cho người học hiện nay còn nhiều hạn

chế.Vềmặthệthống, khảnăngđáp ứng huy cập đồngthời của sinh viên trong một số thời điểm nhất định không được ổnđịnh Vídụ nhưvào thời điểm nhà hường mở đăng ký lớp học phầncho học kỳ mới hoặc

đầutiếthọc thì nhu cầutruy cập websitetăng cao một cách đột ngột Lúcnày hiện tượng hang không phản

hồikhi truy cập websitecủa nhà hường xảyra thường xuyêntrong nhiều ngày hoặckhôngthực hiện các

chức năng hên hệ thống Sinh viên không thể làm gì được hong vòngnhiều giờ dù đã tốn công thức khuya

dậy sớmđể đăng kýhọc phần chẳng hạn Tìnhhạng này có nhiềunguyên nhân Nguyên nhânđầutiên là

sốlượng sinhviên truy cập website của hường tăng đột biến, từđó dẫn đến việc sốlượngyêucầu (request) gửilên máy chủ tăng cao Thứhai, xửlýquánhiềuyêu cầuvượt quágiới hạn của máy chủvậtlýgây hiện tượng trang không phản hồi.Ngoài ra, cũngcòn có những nguyên nhân kháchquan khác như đường huyền

và hệ thống hạ tang của nhà trường chưa đáp ứng đủ mạnh Chính vì lẽ đó,giải pháp dễ thấy nhấtlànâng cấp cấuhình củamáychủ, thậm chí là tăngsốlượng máy chủ lên để xử lý được nhiều yêu cầu hơn Đồng thời,nếu như việc đầu tư này đã đáp ứng, chúng ta cũngcần phải đưara cácgiải pháp này rõ ràng hơn như việc kết nối máy chủmớivào hệ thống xử lý cũ cũnglàmộtbài toánlớn Tương tựnhư với việc nâng cấp cấuhìnhcũng có nhiều câuhỏi đặt ra: Nâng cấptrong bao lâu?, baonhiêu? Có xảy rarủiro trong lúc nâng cấp không? Neu phát sinh những vấnđề ngoài ý muốn lúcnâng cấpthì phải ứng cứu kịp thời như thế nào?

Và cònrấtnhiều vấn đềcầngiải quyết nữa vấn đề cần bậntâmlà mộtnămchỉ xảyra haiđến ba đợt mở

lớp đăng ký học phần,nghĩa làchỉ có tạithời điểm đó thì nhu cầumớivượtquángưỡngxửlýcủa máy chủ

Vậy nhà hườngcó nêntốn kém hay không khi đầutưmột hệ thốngvớichi phí lớn chomột số sựcố xảy ra không thường xuyên? vềmặthọcvụ, việc thanh toán học phí hiện nay ởIUH vẫn còn thựchiện thủ công, dẫn đến việcsinh viên xếphàng và mấtthờigian

Đe giải quyết các vấnđềcủacác mặt, chúng tôiđã đưa ra 2 giải pháp chính:một là sử dụng điện toán đám

mây (cloud computing)vềmặthệ thống vàhai là tích hợp thanh toán họcphí online bằng các ví điện tử nội

địa (momo,vnpaỵ) vào hangsinh viên Đầu tiên,nóivề giải pháp sử dụng các dịch vụ trên điện toánđám mây như cho thuê máy chủ, dùng cácdịchvụ web, nổi tiếng trênthế giới hiện nay đó là các dịch vụcung cấp bởi các công ty nhưAmazonvới AWS,Microsoft với Azure, trong nước có các tổ chức như Viettel, FPT, Sao bắc đẩu Điện toánđám mâylà một giải pháp có tính xuhướngtoàn cầucho cáccánhân, tổ

chức, doanh nghiệp vừa và nhỏ [1] Hiện nay các dịch vụ trực tuyến phục vụ cho nhu cầu cá nhân, kinh

doanh ngày càng nhiều Hệ thốngtriển khai trên điệntoán đám mây sẽ có chiphírẻ, cấuhình đơngiản nhưng vẫn an toàn, bảo mật tốt, khảnăng nâng cấp bảo trì hệ thống dễ dàng Hơn hếttrong các ưu điểm

hên là khả năng cân bằngtải, đó là ưu điểm tuyệt vời của điện toán đám mây Cân bằngtải (scale) là dịch

vụ có khả năng tự động điềuchỉnh sốlượngmáy chủ để đápứng nhu cầutruy cập của khách hàng (tăng

khi yêu cầunhiềuvà giảm khi yêucầu ít) Do đó nhàphát triển hệthống không còn phải đầutưquá nhiều chiphí chỉ đểgiải quyết nhu cầu cho việc sửdụngtài nguyêncủa hệ thống trong một quãng thời gian ngắn trongnăm Đó cũng là lý do chúng tôichọn giải pháp này cho bài toánxây dựng hệ thống hỗtrợđào tạo cho sinh viên của IUH

Riêng giải pháp xây dựng website và ứng dụng trên di động cho sinh viênsử dụng nhằm giải quyếtcác nguyên nhânđượcliệtkê sau đây Nguyên nhân thứ nhấtlàwebsite của trường IUH thựchiện cơ chế kết

xuất máy chủ Server Side Rendering(SSR) Cơ chế nàycó nhiều ưu điểm tuyệt vời nhưkhả năng Search

EngineOptimization(SEO) hiệu quả, chạyđược hên phần lớn cáctrình duyệt thông dụng (kểcả disable JavaScript vẫn chạytốt), hiệu năng cho lần tải trang đầutiêntốt Nhưnglạicó một nhượcđiểmlớn chính

làmáy chủ phải đảm nhiệm gánhnặngkết xuất hang web,gánhnặng trả về nội dung hang web (tốnnhiều băng thông) và vô tình làm tăng sốlượng như cầu phải xử lý cho máy chủ [2] Nguyên nhân thứ hai, đặt hường hợpkhinhu cầu huy cập website tăng cao độtbiến, máy chủ phảithựchiện một sốlượng yêu cầu cực lớn và còn phải phụ trách gánhnặng kết xuấttrang web và gửi hả vềnó càng làm tìnhhình xấu đi Hơn nữa, các trang web như hang đăng ký học phần, quản lý thông tin cho sinh viênlà những trang web cótính

cánhânnên cầnrấtítkhảnăng SEO, tính chất tương thích với trình duyệt hoàn toàn có thể khắc phục được bởi lập hình viên Đó là lý do chúng tôixây dựngứng dụngcho thiếtbị diđộng nhằmhỗ trợ cánhân hóa

cũngnhư giảm tải cho máy chủ trong hệ thống

246 © 2023 TrườngĐạihọcCôngnghiệp ThànhphốHồ Chí Minh

Trang 3

2 CÁC CÔNG NGHỆ LIÊN QUAN

2.1.1 Amazon Relational Database Service (Amazon RDS)

Amazon Relational Database Service (Amazon RDS) là một dịch TO tồ chức vàquản lý dữ liệuquan hệ

trênđám mây củaAWS, dịch vụnàygiúpcho người dùng dễ dàng thiết lập,vậnhànhvàquảntrịdữ liệu một cách hiệu quả

2.1.2 xAmazon Simple storage Sendee (S3)

AWS S3 là dịch TO lưu trữđốitượngdo AWS cung cấp Đây có lẽ là dịch vụlưutrữ được sử dụng phỗ

biếnnhất cho ngườidùng AWS nhờ các tínhnăng như tính khảdụng, bảo mậtcực cao và kếtnốiđơn giản

với các dịch vụAWskhác Chúng tôi dùng AWs S3 đểlưutrữ các file vớinhiều đỉnh dạng khác nhau:lưu trữ ảnh png, jpg 3x4 củasinhviên, file excel nhập điểm củagiảng viên tải lên, file backup bak mà nhân viên thực hiện backup để làm dự phòng, lưu trữ các tập tín tài nguyên của việc phát triển (keys, certificates, ) Sử dụng S3 kếthợpvóicác service khác của AWS cũng là một lợi thế [4, 5],

2.1.3 xAmazon Elastic Compute Cloud (Amazon EC2)

Đầu tiên, EC2 là viếttắt củaElastic Compute Cloud Amazon EC2 là một máy ảo cơ bảnvới các thành phần phần cứng có thể tùy chỉnh và một hệđiềuhành Elastic Compute Cloudlà hệ thốngdịchvụ chính và

được sử dụng nhiều tronghệ sinhthái AWs khốnglồ EC2giúp bạn không cầnphải mua phần cứng.Ngoài

ra, không có thêmchiphí khi bảo trì phần cứngđãthuê AWS cho phép bạn khởi chạy nhiều EC2.Nó cũng

cung cấp khả năng kiểm soát để mở rộng quỵ mô hoặc thunhỏ tương ứng với tốc độ của lưu lượng truy cập trangweb[6],

User

Hình 1: Đặc điểm AutoScale củamáychủEC2khắcphụcđiểm yếu củamáy chủ vật lý [5]

Chúng tôi sẽ dùng các máy chủ EC2này đểthaythếcác máy chủ vật lý tạiNhà trường Càng mua nhiều

EC2 thì việc chia tải saukhi áp dụng Load Balancer càng hiệu quả Việcmuanhiều phần mềm máy chủ

EC2 trên AWS giúp tiết kiệmchiphí hơn rất nhiều so với việc ta mua thêm phần cứngmáy chủ vậtlýđòi thực.Tronglần này, chúngtôi sẽ tạo ra (mua) khoản2 con EC2 để tiếnhành triển khai máy chủ.Mỗi EC2

sẽ được triển khai hệ thốngErukaLeamgiống nhauvà đồng bộhóa truy xuất dữ liệutừ cơ sởdữ liệu RDS

2.1.4 Load Balancers (EC2 Feature - Load Balancing)

Load Balancers - EC2 Feature cũng là mộtdịch TO cân bằng tải của AWS nhưng EC2-Featurecónghĩa là

nóthuộc về một chức năng củaEC2 cókhả năng phân phối tải công việc giữa nhiều máy ảo EC2, giúp cân bằng tải và tăng tính sẵn sàng củahệthống Chúng tôi sẽ sử dụng loạiLoadBalancernày (có nhiều cách

đểloadbalancing khác nữa) để tiện lợi cấu hìnhvì nó như là một service con của EC2service

Trang 4

Hội Nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH

EC2 Instance

Hình 2: Load Balancer sẽ là người điều khiển chia đều tải cho các máy chủ EC2 [6]

2.2 Framework React Native Expo

ReactNative Expo: làmộtcông cụ mã nguôn mở giúp xâydụng ứng dụng di động trênnên tản$ IO s và

Android Nócho phép lập trình viên sử dụng các công nghệ web nhưHTML,css vàJavaScript đe tạoúng dụng di động chât lượng cao Expo cungcâpmột loạt các công cụ và tính năng đê giúp đơn giản hóa việc

phát triển úng dụng, bao gôm cảthưviệnvà cáchướngdẫn Với React Native Expo, chúng tôi có the nhanh

chóng tạo ra cácúng dụng di động đa nên tảng chât lượng cao và pháttriển nó vớitôc độ nhanh chóng và hiệuquả [7,8] Chúng tôi chọnExpo thay vì React Native CLI đe phát triểnapp di động bởivì: Expo build úng dụng nhanh hơn; Chạy được đa nên tảng (hỗ trợ build web); Được cộngđônghướngdẫn và đónggóp

rộng rãi; Ngoài ra expocòncho phép deployứng dụng lênExpo Store như App Store, CHPlay

Môhình MVC (Model-View-Controller) là một kiêntrúc phân mêm được sử dụng rộng rãi trong phát triển ứng dụngphânmêm Chúng tôi dùngkiên trúc nàyvì nó mang lại nhũng lợi ích sau: Giúptách biệt logic

xử lý dữliệu (model), giao diện ngườidùng (view), và luông điêu khiển (controller) đe dễ dàng quản lý và bảotrì mãnguôn; Tái sử dụng mã các giao diện người dùng có cùng bô cục; Tích hợpdễdàngvớicáccông

nghệ và thư viện khác được cộng đông phát triểnhỗ trợ (Vídụ:phát triển tích hợp thanh toánonline);Phù hợp vớiúng dụng cho doanhnghiệp có quy mô vừa vànhỏ [9]

2.4 Docker

Docker là mộtnên tảng ảo hóa câpphân mêm, cho phép đóng gói ứng dụng và cácphụ thuộc của chúng

vào các container độc lập Giúp đơngiảnhóa việc chạyúng dụng trên nhiêu môi trường khác nhaumà

không cân quan tâm đên cài đặt hệ thông Docker Compose là công cụ đikèmvới Docker, cho phép định

nghĩa và quản lý việc chạy nhiêucontainercùnglúc Băng cách sửdụng tệpcâu hình docker-compose.yml, chúng tôi có the định nghĩacácúngdụngnhỏ,mạng và cáctùy chọn khác choúng dụng giao tiêp vớinhaư Docker Compose cho phép các service nhỏ giao tiêp với nhau thông qua mạngnội bộ Docker network

Chúng tôi dùng kỹ thuậtDocker Compose vì nhăm mục đích chia nhỏ các trang web dành cho các đôi

tượng người dùngnhư: sinh viên,nhânviên, giáo viên,thành tùng service (ứng dụng nhỏ) Ngoài ra còn nhiêu servee hỗ trợ khác Điêunày giúp việc triển khai úng dụng saunày tiêt kiệm chi phí, chạy đa nên

tảng [10]

248 © 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh

Trang 5

3 PHÂN TÍCH HỆ THỐNG

Chúngtôisử dụngkiếntrúcClient -Server (chialàmFront-end vàB ack-end)để xây dựngứng dụng bằng cách xử lý tấtcả request từngười dùng gửi đến máy và hầu hết các côngnghệ ở phíamáychủ đều là các sendee của AWSnhằmmụcđích tận dụngcácưuđiểmcủa nó.Với kiến trúcnàyphần xử lý backend sẽ là quan trọng nhất Chúng tôi sẽgiảiquyếtcácvấnđề vềtắcnghẽn, phânluồng, mở rộngtàinguyên, bảo mật

vàlưu trữ dữliệu ở phíaserver (Hình 3)

3.2 Usecase tổng quát

Đối tượng người dùng cho hệ thống ERUKALEARN gồm có 3 actor chính: Sinh viên, Nhân viên, Giáo viên Tuynhiên chưongtrìnhtập trung vào việc phát triển hỗ trợ cho sinh viên trênnền tảngđiện thoại

thông minh Bởi lý dochính, hiện tại lượngsinh viênIUH cósốlượng đông nhưng chưacónềntảng hỗ

trợ trênđiện thoại Bảng use-casethểhiện rõ các chức năng hiện có trong ứng dụng củasinh viên cũng như

nhân viên.Nhân viênđóng vai trò là giáo vụ có thể quản lý đàotạosinh như việc sinh viên nhập học, mở lớp học phần, học phần Còn sinh viên thực hiệncác chức năng cơ bảnnhư theo dõi lịchhọc, kết quả học tập, đẵng kýhọc phần Dưới đây là bảng vẽ lược đồuse-case Những chức năngnàychúng tôi trinh bày trongHình 4

Trang 6

Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈƯH

Hình 4: Sơ đồUseCase tổng quátcủa hệ thốngERUKALEARN

3.3 So ’ đồ lớp

Từ cácusecase đã phân tích ở trên thì chúng tôi đã tạo ra được lược đồ lóp củahệ thống ERUKALEARN

Trong đó, chúng tôichútrọng đếncác lớpnhưSinhVien, Nhanvienvà GiaoVien Các lớpkhácđược sinh

rađể phục vụ cho 3 đối tượng này Trongđó chúng tôi tập trung lớpThoiKhoaBieu để đáp ứng nhu cầu xem lịch của Sinh viênvàGiáo viên, tiếpđó lớp ThanhToanGiaoDich nhằm thựchiệncác giao dịch của

sinh viên, đồng thòi cũng hỗ trợ cho đối tượng nhân viên kiểm soát dựavàođó chứng thực các giao địch Ngoài ra, các lóp khác nhằm phục vụ cho việc quản lý, hỗ trợhọc vụ, lưutrữdữ liệu của nhà trường Chi tiết hơn cho cácđối tượng nàỵ, chúng tôi trinh bàỵ tronglược đồ lớp được thiêtkênhư Hình5

rhoiKhoaBãní" LopHoc Phan

Khoaltoc' GiouVieii tuTretl loc Tietfloc

thoKhoafficuConr l.êKlboiKhoaB

ngayKotThuc: Date

rihomHoc hl

giaoVieti GiaoVieti

ghtChu string

- thulioc Thiriloc

ỉ- maThoiKhoaBieu: long

rinhVmn LopHocPhanr.

seriatVensitmUID: long

SflKSmhVi

kipHod’tiau I opHocPhan

den HelHoc 1 kitHlic

-thi: boolean

- phorxjllor string

! rigayBatDou Date

lealỉkroíHoc I oaiBuoiHoc

soluongDaDangKy Snt

iiumhloanGiaoDfcti

nxpirodTlmo Tknostamp

niaGianOkh string

status boolean

ghtChu Siring

.-unDebtlds: String

! sinhVkm SinhVien

balance: double

' iwaWVcminnlJID- long

Montloc thoiKboa»6«, UsKThoiKN tenKhoaHoc lenKho _loaiGwoVierr IoaiGmoVUn

kialHoc loalHoc -qiaoVien GiaoVen sol.uong ini

- mal cipliocPtian long

- lenLopllocPhan: String ktaaHoc Khoatloc hanNopHocPhl Dale serialVefsionUID long trangĩhal Trang I lull

- nxinHoc, MonHoc soLuongMax ini ngayBalDau Dale ngayKetThuc: Dato SinhVksi I op Hoc

- id: long lopllocPhan I opHocPti.rn sinhVkn SWrVren

Chuongĩrinh Khung Tôi Khoan -maKhoaHoc: long

ị namBatDair int setlafVeiskinlJID I

- namKet 1hue ini

alias String bocKy HocKy

Iiiiụ.

+ addCo<rrMi(Kbo.ilioq

thoiKhcallkiur SeKThiriKhoí jeifcilVetsionUID ki

- diaCtii String

- maGiaoVien: long sdt String -serialVersionUID long gtoffinh: Gloillnh

- avatar: String taiKhoan litKhoan

hocRii dwririe

- hocKy: HocKy

I nlioinMon ini tnuMonHoc long

- loaiMon: LoaiMon

monitor: Mont lor.

«1 long

- done: boolean

- sinhVien: SinhVlen snrialVerxionUID long

r.rtfiatVarsionUM) long user User -id: long

- type: LoaiTalKhoen oman string

+ g0K?nunterSlu<fente-.e tanGiaoVion string

r getCoursesByStuderi ng ạ-,'Sinh: Date HocKy

- soTinChr lot nganh Nganh

- leriliocKy String

- mallocKy: long monHocs SsKM

CongNo

lholKhoa8ieu lhuKhouKei + ad(iSr.mosloi(tM serlrrfVersiorilJIf) kxKj

IhoiKhoaBiouCnn TboiKhoi ngaytlangKy Dato

* daThuHocPhi.boolean

» getTongSoĩlnChi

t gelUstSemeslei

trang I hai String

- soTten: double congNo double lopHocl’lian t upHoc.

Id long ssrialVorsionUC Ion

•iiohVfari SinhVlen monHoc MoriHuc

PI1ĨCU I hi

crenleTii>risaclk>n(lorig s

giXPayni0ntByld(Str i ng

ijpdat<jPaymantroPasr.Bylil

* I donViltru String - maPhieuThu: long - solian doub&r ghIChu String

I t - tlwnti loanGiaoDlcÌL ItianhroanGãaoDkh

grriSwmistersB) njienGiam: float

t " ■* - khauTnr double

daNop double

loaiPhieuTlMr LoaiHikniThn

geHbkenByPaymerilAridSiudei I

gMS^TaKKltWtBz^k XXTswX

i)prtatoPaymondPN(CapNhat ngayihu; Date

maMonYouCau lorỊ, rụpnh Nganti -sol let ill Ini tanMonlioc String ons Sot«.Tboii so T k ILT ill

SinhVien

♦ gotSotmChjOoncByStiKlonJ ’ crealeAocoutíỉalKhoanDIC

I 4 updateAcixHinlt-maijlonj a

Diem

i - maSinhVien: long diems S<;t<Dwrn>

DaoTao

bacDaoTao BacDaoTao

nuiDierrc long

- (fiemGK: float pass boolean yhiChu String -slnhVien: SinhVtai uwlalVwsfonUID lunJ loallfinhllaolno looillinhDaa'

-sdt Sshg avatar String ogayVaoI ruong Dale

- coSo: CoSo

- điemTHỈ: float I cScmTongKet id diemCK fcal

- <fiemLT3: float

NtunVicn

phteuThus Set'-Phiêu I

- diaCM: String ngaySinh Dats hnTijn String

- noiSinh: String tnlKhotwv TaiKhonn

- sinhViwi lopHoirPhatt

LopllocDanhNghw

4 gelDebteByStudunllt.^!^ G|o|rmh

4 getUnDeblsB’ /Studei totNghlep boolean + gtriSononByDnbtldn IhongBaos SeKThong + iipdateUnDobfflyMtt eced String

matop- long tonLop Siring

- giaoVien: GlaoVien soLuong: Illi

- sinhViene: SeKSintf r.orialVorcionUII) In tHpinh Nganh

- khoaHoc- Khoallor

srri.lIVcrrJontltf

<SemLT2 float -dremlHI: float lopHocPhsn 1.0 d»emTH2: float

diaChi Siring svrialVer BtonUlD long maNhanVicn long -sdt: String avatar String

- talKhoan: Ta Khoan

- tenNhanVien: String ngayVuoLam Dato đemChu String tfmcVu ChucVu Ngarh

rnaNganh long khoa Khoa

- tenNganh: String

- lastBackup Timestamp

- gioilinh: Gioãĩĩnh nariiSiiih ini

§e<PayedDebt5(loog' ’ lopHocDanhNghla:

I - daoTao DaoTao IhanhĩoanGiaoDir.taỉ S«t<ThanhToanGi.n>Dil

14 uddaaasllopHocf nwintVersionUiD: long (Tirmllocr Scl<Monllo<>

- hocKres: SeKHocKy>

+ addTmployoo(NhjnVi

♦ removeLlslHnployee(l

♦ updaleCmpk>yee(Nhan

♦ golt:mploygeByld( lory gall i : i :-.I'> i - si udonrtk

Hình5: Sơ đồ ClassDiagramương hệthốngERUKALEARN

250 © 2023 TrườngĐạihọc Côngnghiệp ThànhphốHồ Chí Minh

Trang 7

4 KÉT QUẲ HIỆN THựC

4.1 Triển khai Load Balancing

Hình 6: Khởitạocác máy chủEC2trên AWS đùngđểchiađều tài Quỵ trình triển khai toàn ứng dụng gồm 4 bước chính: i)Khởitạovà cấu hình số lượng EC2 đủcần thiết;

ii) Triển khai source code ứng dụng lên các EC2 vừa tạo; iii) Tiến hành cấu hìnhvà kích hoạt con Load

Balancers để điềukhiển tải trên các EC2; iv)Gắntên miền và chứngchỉ cho con LoadBalancersđể người dùng truy cập

Chúng tôi sẽ thực hiện quy trình từng bước chính thôngquatùng quy trình nhỏ: Đầu tiênlàcần tạo lượng EC2để cânbằng tải.Mỗi EC2 hãy cứhình dung nó nhung 1 chương trình và được nhân bản ra Sau đó truy cập vào tùng EC2 để kéo (pull) source code ErukaLeam từ Github về Source code và cách deploy trên mỗi

EC2đều giống nhau lên và chúng được cấu hìnhđểcùngkếtnối đếnmột database RDS Chi tiết quỵ trình triển khai lên lên máy chủEC2: Bước 1: Tạo 2 conEC2 vàđặt tên dễ nhớlà ec2_lvà ec2_2với hệ điều hành linuxvà cấu hìnhchúng (mở port, tạo rule, ); Bước 2:Kếtnối vào ec2_l rồikéo source code từgithub về; Bước 3: Thay đồi, cấu hình các biến môi trườngkết nối tới RDS, S3, các biếnenvironment; Bước4:

Build ứng dụng bằng docker-compose.yml và ứng dụng ErukaLeam được chạy; Bước 5: Làm tương tự

bước 1 đen 4 cho EC2thứ2 (Hình 6)

Tiếp theo là đến triển khai một Load Balancer (người điều khiển tải cácEC2) Quy trình cấu hình Load

Balancer lên 2 con EC2 đã tạo trước đó như sau: Bước 1:Tạo ra một Target Group - EC2 Feature; Bước 2: Gom (đăng ký) nhóm các EC2 lạivói nhau trênport 4000 (càng nhiều EC2 thi tải chia ra càng nhiềurà

cànglàmgiảmtắc nghẽn); Bước2: Tạo 1 load balancer, chúng tôi chọn loạiLoad Balancer Networkvà cấu hình điều khiểntarget group Vàload balancersẽ cótrạngthái'Active'; Bước 3: Theo dõi monitor Theo

lý thuyết các luồng request đến serversẽ đi đến qua domain củaLoad Balancer (Hình 7)

Trang 8

Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH

Hình7: Khởi tạoLoad Balancer thành côngvàcấuhình trạngthái Active

Vàđây làmột sốbiểuđồ (monitor) Load B alancers dodịchvụ phân tích trong Hình8

Hình 8:Cácbiểuđồ LoadBalancers của dịchvụcungcấp

Sau khi đã cấu hình Load Balancer ta sẽ cấp cho nó một tên miền (hiện Namecheap.com tài trợ cho tài khoản sinhviênmột domain miễn phí).Với cáchiệu năng cơ bảnchỉ qua vài bước đãngkýsẽ có kết quả

trong Hình 9 Chúngtôi xin phép đặt têncho ứng dụng mang tênlà “ERUKALE ARN” và các tên liên quan

được đề cập trong ứng dụng,tài liệu, video demosảnphẩm hoặc tên miền đặtcho ứng dụng đều sẽ nhắc đến cụm từ ErukaLeam này để nhất quán dễ gợi nhớ khi nhắc đếnchương trình này

o Actions »

52 erukalearn.rne

Hình 9: Tên miền erukaleam saukhimuabằng Namecheap

Trang 9

Draft Expiring Soon Issued Pending Validation Expired Cancelled

Hình 10: Tên miềnLoadBalancer được xác thực SSL bằng Namecheap

Ngoài ra ứng dụng còn sử dụng vài tên miền chạy ngầm với các cồng (port) khác nhau như: erukaleam.iuh.edu.vn:8080 - domain cửa sendee springboot; erukalearn.iuh.edu.vn:8000 - domain của

service Apache PHP; Để các ứngdụng có thể giao tiếp frontend và backendvới nhau Tiếp theo chúng tôi

sẽtiến hành việc xác thực SSL - Chứngchỉ khóa xanh để đảm bảotrang web thực hiện chứng năng Socket (Cámơn Namecheap.comcũng tài trợmộtSSLmiễn phí 1 năm) Sau khi có domaincho Load Balancerlà

đã thànhcôngviệc cấu hình cân bằng tải và đã thành công một bướcgiảiquyếtbàitoánlưulượng truy cập cùnglúc tại mộtthòi điểm tăng cao độtngột Load Balancer sẽ là người điềuphối tải hoàn hảo giúp giải

quyếtvấn đề tắc nghẽn ỏ’ phía server Việc còn lại là theo dõihiệu quả Load Balancer thông quacác biểu

đồ monitorcó sẵn

4.2 Triển khai trên hai nền tảng Web và App

ứng dụng hỗ trợ học vụ đượctriển khaitrên hainền tảng là web và app (úng dụng web và ứng dụng trên

mobile; điện thoạidi động cho cả Androidvà IOS) Trong đó web app sẽ được ưu tiên phát triển và triển

khai đầu tiên tập trungvi đơn giản hon ứng dụngwebsẽ được triển khai lên cloud computingcủa AWS

và được trỏmột tên miềnđại diện vào.Hai nền tảng web và app sẽ được đồng bộ hóadữ liệu (data) do tất

cả nền tảng đều sử dụng chung một cơ sởdữ liệu khi thực hiện truy vấn, đọcghi thông tin

Nền tảngdiđộngcủa ứng dụng nàycung cấp tính năng linh hoạt, cho phép sinh viên truy cập thông tin học

tập và quản lý nhiệm vụ của mình bấtcứ lúc nào và ởbấtkỳ đâu Nềntảng web app cũng cung cấptrải nghiệm sử dụng tốt trêncác thiết bị desktop hoặc app sẽ nhắcđến(Hình 11)

Hình 11: ErukaLeam đãtriểnkhaitrênhaiflatformweb vàmobileđồng bộ datatrên cloud

Trang 10

Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH

Trong giao diện đăng kýhọc phần, đầu tiên sinhviênsẽ chọn học kỳcần đãng ký, học kỳnào vừa được

giáo vụ (nhânviên) mở thì sẽ được đánh tick xanh lá để sinhviên biết và chọn Các hộp thoạicủa học kỳ

cũ sẽ hiển thị các môn học đã mởởquá khứrà các lớp học phần đã đãngkýtươngđương cho học kỳ đó

(Hình 12)

Hình 12: Giaodiện đăng ký học phầntrên 2nền tảng

Việc đăngký học phần đốivới sinh viên vào nhũngđợtmởlópcũnglàcần “chiến thuật” ErukaLeam cung cấp khả năng cập nhậtsĩsốcủa một láp học phần theomônhọc màsinh viên đang quan tâm realtime, giúp

sinh viên cóthể nắm bắtsĩsố mỗilớphọc phần ứng nhanh chóng mà khôngcần phải tải lại trang và chọn môn Chúngtôi tin chức năng này sẽ hữu ích với sinhviên đang cần đãng ký nhiềumôn vàmuốn sắp xếp thờigian hợp lý (Hình 13)

10000 *0

looocet

I« n»»f Hé Chi Minh I.<vinr*l»uor.ĩ umn r.r

o nÃONUnôoiiMiNtt w*aw><*

o

Hình 13: Sinhviên đăngkýhọcphần cập nhật realtime sĩsố lớp màkhôngcần tải lại trang

Tính năng thanh toán học phí đơn giản, dễ dàng,có thể thựchiện ở bất ki nơi nào, bấtkì thiết bị nào gồm

cả máytính, laptop, điện thoại Sau khi thựchiệnmột giao dịch điện tử số tiền lớn ErukaLeamsẽ từng bước

Ngày đăng: 10/03/2024, 08:12

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

TÀI LIỆU LIÊN QUAN

w