Việc xây dựng một hệthống hỗ trợ việc sắp lịch là cần thiết để tạo nên sựtiện lợi, nhanh chóng và giảm tảiđược một phần công việc cho các cán bộ phụ tráchmảngcôngviệcnày.. Hệ thốngnày đã
ĐẶTVẤNĐỀ
Hiệntrạng
Ngày nay với việc phát triển về ngành học, số lượng sinh viên lớn cùng với đó làcác lớp học phần ngày càng được mở ra nhiều hơn để đáp ứng được nhu cầu giảng dạyvà học tập Nhưng số lượng phòng học thì có hạn, cũng như là giờ rảnh của các cán bộgiảng viên ngày ít nên việc sắp xếp được thời khóa biểu hoàn chỉnh cho một học kỳngàycàng khókhăn.
Xuất phát từ thực tế đó, việc xây dựng “Ứng dụng xếp lịch thời khóa biểu chogiảng viên giảng dạy tại Khoa Phát Triển Nông Thôn” là một điều cần thiết, hệ thốngnày sẽ đảm bảo được việc sắp xếp trở nên tiện lợi hơn,v ớ i m ụ c đ í c h l à t ạ o r a m ộ t trang web tích hợp các chức năng giúp cho việc sắp xếp và quản lý các thông tin dùngđể nhập xuất dữ liệu trở nên dễ dàng hơn, hi vọng có thể đem lại sự tiện lợi cho ngườisửdụng hệthống.
Mụctiêu
Nghiên cứu và xây dựng hệ thống hỗ trợ xếp thời khóa biểu tự động cho giảngviên với việc ứngdụng công nghệN o d e J S d ù n g đ ể v i ế t m ộ t w e b s i t e v ớ i m ô h ì n h MVC có cácchức năng đượcthiết kế như sau:
Ngày nay việc tương tác giữa người dùng hay Server – Client luôn được chútrọngvànângcaolên.Vìvậyápdụngcôngnghệmớivàoviệcxâydựnghệthốnghi vọng đem lại hiệu suất cao hơn trong việc vận hành cũng như những tiện lợi nhất địnhtrongquátrình pháttriển hệthống.
Ngoài ra có thể thấy được hiện nay việc sử dụngc ô n g n g h ệ N o d e J s đ ể v i ế t r a mộtwebsitevớimôhìnhMVCkhôngcònxalạnữa,Nodejscóthểtạorađượcc ácứng dụng có tốc độ xử lý nhanh, realtime thời gian thực Ngoài ra, NodeJs cũng đượcápdụngch ócác s ả n phẩ m cól ượ ng tr uy cậplớ n, cần mở rộ ng n h a n h, c ầ n đổi m ới côngnghệ,hoặctạo racácdựán khởinghiệpnhanh nhấtcó thể. Ứng dụng các công nghệ đề xuất như trên vào việc xây dựng nhằm tạo ra một hệthống thật sự hoàn chỉnh để có thể hỗ trợ người dùng như cán bộ phụ trách việc xếpthời khóa biểu và cácg i ả n g v i ê n c ó t h ể c ả m t h ấ y s ự t h o ả i m á i v à t i ệ n l ợ i t ố i đ a k h i thựchiệncôngtácquảnlývàsắpxếpthờikhóabiểu,hoặclàgiảngviêncóthểdễdàngđăngkýt hu thậpcáctiếtdạylinh hoạt.
Hệ thống được tạo là một hệ thống bao gồm một mô hình để xử lý, một websitecho người dùng và ứng dụng thu thập biểu mẫu của Google và Office Excel.
Là một hệthốngphục vụchocác công tác quảnlýsắpxếpthờikhóabiểuchogiảngviên.
LỊCHSỬ GIẢI QUYẾTVẤNĐỀ
Khi mà sự phát triển về các ngành học ngày càng tăng, cùng với đó là số lượngsinh viên lớn, các lớp học phần được đăng ký ở đầu mỗi học kỳ ngày càng nhiều thìkhó khăn trong việc sắp xếp thời khóa biểu giảng dạy cho các giảng viên ngày càngtăng Ở thời điểm hiện tại, để sắp xếp được một thời khóa biểu hoàn chỉnh thì cán bộphụtráchmảngcông việc này phảirất vấtvảvềthời gianvàcôngsức.
Vì thế việc thực hiện đề tài “Ứng dụng xếp lịch thời khóa biểu cho giảng viêngiảng dạy tại Khoa Phát Triển Nông Thôn” nhằm tạo ra một ứng dụng bắt kịp xuhướng công nghệ hiện nay và đem đến sự tiện lợi cho người dùng Cùng với đó hệthống cũng đã giải quyết được một phần khó khăn mà các cán bộ quản lý giáo vụ gặpphải.
PHẠMVI CỦAĐỀ TÀI
Vềcơsởlý thuyết
Vềchứcnăng
Mục tiêu chính của đề tài là xây dựng hệ thống bao gồm một website dùng choviệc quản lý sắp xếp thời khóa biểu, một bảng biểu mẫu của Google dùng để thu thậpthông tin tiết dạy, một file Excel dùng để lưu trữ và đưa dữ liệu đầu vào và mộtWebsite để xử lý thông tin gửi tới server, hệ thống sẽ có các chức năng tương ứng nhưsau: Đốivớiwebsitecó1quyềnngườichodùngchính, vớicácchứcnăngnhưsau.
Tổng hợp và xử lýQuyềnquảnlý:
Quảnlýthôngtinthôngtincáclớphọcphần:mãhọcphần,tênhọcphần,mãcán bộgiảngdạy,sốtiếthọctrong mộtbuổi,…
Xuất file thời khóa biểu hoàn chỉnh sau khi sắp xếpHệ thốngcầnđạt được:
Vềkỹ thuật
Sửdụngngônngữlậptrìnhweb:HTML5,CSS3,Bootstrap3,Javascript,JQuery,AJA X
PHƯƠNG PHÁPNGHIÊNCỨU
Thuthập dữ liệu
Rútkinhnghiệmtừnhữnghạnchế,khókhăntrongviệcsắpxếpthờikhóabiểutừđóxâyd ựng nhữngdữ liệu cần thiếtchohệthống.
Phântíchhệ thống
NghiêncứucáctàiliệuvềviệcquảnlýthuthậpdữliệutừGoogleForms,ápdụngvà nângcao đượcsựlinh hoạt chohệthống.
Côngcụvàngôn ngữ lậptrình
LậptrìnhngônngữNodeJS,HTML, CSS,J a v a S c r i p t , JQuery,AJA X
4 Creately–DiagramMaker Thiếtkế lưuđồ, biểubảng
Bốcụcquyển luận văn
Chương1:Tổngquan– trìnhbày lýdo chọnđềtài,lịchsửgiảiquyết đềtài,phạmviđềtài,các phương pháp nghiêncứukhoahọc.
Chương2:CơSởLýThuyết– trìnhbàycáccơsởlýthuyếtđượcápdụngtrongđềtàinhư:lậptrìnhhướng đốitượng,NodeJS, NoSQL MongoDB,…
Chương3 : Nộidu ng nghiên cứu – t r ì n hbà ycác mô hìnhd ữ l i ệ u cũngn hư c ác thiếtkếcàiđặtcủahệ thống, lưuđồgiảithuật,cácsơ đồliênquanvàkiểmthử.
Chương 4: Kết quản thực nghiệm –trình bày các chức năng cũng như giao diện đãlàmđ ư ợ c t r o n g h ệ t h ố n g v à n h ữ n g v ấ n đ ề v ẫ n c h ư a đ ư ợ c g i ả i q u y ế t t r o n g h ệ thống.
PHÂNTÍCHTHIẾT KẾHỆ THỐNG THÔNGTIN
Hệ thống thông tin là một tập hợp và kết hợp của các phần cứng, phần mềm vàcáchệmạngtruyền thôngđược xâydựngvàsửdụngđểthuthập,tạo,táitạo,ph ânphốivàchiasẻcácdữliệu, thôngtinvàtrithứcnhằmphụcvụcácmụctiêuđãđịnhra.
Thu thập thông tin: thực hiện phân tích, sàng lọc và ghi nhận những thông tincầnthiết chohệthống quảnlý
Truyền thông tin: Thực hiện truyền thông thông tin trong thông suốt, đảm bảovề mặt thời gian, đảm bảo tính bảo mật hỗ trợ cho việc ra quyết định đúng đắnvà kịp thời
Có rất nhiều loại hệ thống thông tin nhưng ở đề tài này loại hệ thống thông tinđượcsửdụnglà hệthốngthông tinquản lý.
Hệ thống thông tin quản lý (Management Information System) xử lý thông tinmang tính thống kê và dự báo, dành cho nhiều cấp quản lý Các hệ thống thông tinquản lý tiêu biểu là các hệ thống máy vi tính, được sử dụng để quản lý ba đối tượngchínhlà:côngnghệ,conngười(cá nhân,nhóm), vàdữ liệu.
Hệ thống thông tin quản lý là một tập hợp gồm nhiều phương tiện thông tin đượcsửdụng đểđảmbảocácchứcnăng:
Xửlýphântíchthôngtintheoyêucầucủabộphậnquyếtđịnh,bộphậntácvụ,nhờbộ phận xử lýthông tin.
Giaiđoạn1:Phântíchhiệntrạng- làgiaiđoạnnắmbắtcácthôngtinliênquanđếnhiệntrạng hệ thốngthôngtinhiện thờicầntinhọchoá.
Giaiđoạn2:Nghiêncứukhả thi-l à giaiđoạnđề xuấtcácgiảiphápkhảthi
Giaiđoạn3:Thiếtkế-làgiaiđoạnxácđịnhcáchthựchiệncácgiảiphápđượcđề xuấttrong giaiđoạnnghiên cứukhảthi.
Giaiđoạn6:Càiđặt–làgiaiđoạnbốtrícácthànhphầndữliệuvàxửlýcủahệthốngtrên cácthiếtbịvật lýđểthựcthi.
Bên cạnh đó trong quy trình thiết kế HTTT cũng có sử dụng đến một thành phầnkhôngthểthiếu đólà môhình hoádữ liệu.
Mô hình hoá dữ liệu là cách thức biểu dữ các dữ liệu được sử dụng và tạo ra bởihệthống.Côngviệcbắtđầulàphântíchvàthuthậpcácnhucầuthôngtincầnthiế tcho các hoạt động nghiệp vụ Cần phải đảm bảo rằng các nhu cầu thông tin sẽ được càiđặt một cách đầy đủ bên trong CSDL và phải làm cho người dùng hiểu được nội dungcủa thông tin ấy Mô hình hoá dữ liệu có thể dùng biểu diễn thông tin ở nhiều mứckhác nhau Ví dụ: mô hình dữ liệu mức quan niệm, mô hình dữ liệu mức luận lý, môhìnhdữ liệu mứcvật lý,…
Lậptrình hướngđối tượng
Kháiniệm cơbản
Lập trình hướng đối tượng (gọi tắt là OOP - object-oriented programming) là mộtngôn ngữ vận dụng Đó cũng là phương pháp lập trình dựa trên mô hình đối tượng đểchuyểnmộtbài toánvànhữngvấnđềvàongôn ngữlậptrìnhmáytính.
Đối tượng được xây dựng dựng dựa trên thuộc tính và hành vi (hoặc làphươngthức).
Các đặc trưng của lậptrình hướngđốitượng
Tronglậptrìnhhướngđốitượngliênkếtchặtchẽgiữadữliệuvàthaotác(hàm)c ủamột đối tượng Cho phép tatập trung vào bản chất của vấn đề hơn làc á c c h i tiết bên trong vấn đề Các dữ liệu và hàm được “bao gói” trong một đối tượng.
Mọiđốitượngbaogồmcácthuộctínhvàhànhvi.Cácđốitượngnàytươngtácvớinhaut hông quacơchếtruyềnthông điệp.
Các khái niệmkhác trong lập trình hướngđốitượng
Mỗimộtlớpgồm:thuộctínhvàphươngthức,trongđóthuộctínhsẽcómộtk iểu,phương thức làtậphợpcáckhối lệnh.
Truyền thông điệp là việc thực hiện lời gọi các phương thức của một đối tượng,khi một đối tượng nhận được một thông điệp nó sẽ kích hoạt phương thức/hàm tươngứng.
Các tính chấtcủaLậptrìnhhướngđối tượng
Làsựmôhìnhhóacủanhiềuđốitượng.Quátrìnhxâydựngcáclớp,thuộctính,phương thứctừmộtbàitoánhaymộtvấnđề chínhlàquátrìnhtrừu tượnghóa.
Xácđịnhđườngtruyxuấtđếncácđặc trưngcủamộtlớphayđốitượng.Phạmvitruy cập (access modifier)
Private(dùngriêng):nhữngthành phầnchỉđượctruycậpbởicácthànhphầ ntrongcùng mộtlớp đó.
Làchophépdùnglạimã(reusability).Dùngđểmôhìnhhóamốiquanhệ“là”(“is a”) giữacácđối lớp/đốitượng vớinhau:
Đốitượng“thừakế”làmộtđốitượngđãcósẵnkhác,vớinhữngthuộctínhvàphương thức“tương tự”nhau.
Thừa kếsửdụng “sự tương tự”(similarities)và“sự khácnhau”(differences) đểmôhình một nhómcácđốitượngcóliên quan vớinhau.
Lớpđượcthừakế:Lớpcha(superclass),lớpcơsở(basedclass).
Lớpthừakế:lớpcon(subclass),lớpdẫnxuất(derivedclass).
Trongthừakế,lớpcon“là”lớpcha⇒lớpconcótấtcảthuộctínhvàphương thứccủalớpcha(“thừakế”từlớpcha!).Tuynhiên,chỉđượctruyxuấtvàocácthànhphầnnào màlớp chacho phép.
Cóthểtáiđịnhnghĩa(nạpchồng)là thêmbổsungvà nạpđè làthaythế
NODEJS
Nodejs là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine.Nodejs sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới NodeJS có thểchạy trên nhiều nền tảng hệ điều hành khác nhau từ Windows cho tới Linux, MacOsnên đó cũng là một lợi thế NodeJS cung cấp các thư viện phong phú ở dạng JavascriptModule khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime Realtime ở đây chính là xử lýgiaotiếptừclienttới máychủtheothời gianthực.
Không đồng bộ: Tất cả các API của Nodejs đều không đồng bộ (none- blocking),nó chủ yếu dựa trên nền của Nodejs Server và chờ đợi Server trả dữ liệu về. Việc dichuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện củaNode.jsgiúpmáychủđểcóđượcmộtphảnứngtừcáccuộcgọiAPItrước(Realtime). Chạy rất nhanh: Nodejs được xây dựng dựa vào nền tảng V8 Javascript Enginenênviệcthựcthichươngtrình rấtnhanh. Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồngduynhấtvớisựkiệnlặp.cơchếtổchứcsựkiệngiúpcácmáychủđể đápứng mộtcách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược vớicác máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu Node.js sử dụng mộtchương trình đơn luồng và các chương trình tương tự có thể cung cấp dịch vụ cho mộtsố lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTPServer.
Không đệm: Nodejs không đệm bất kỳ một dữ liệu nào và các ứng dụng này chủyếulàđầuradữ liệu.
//Khởi tạo server chạy cổng
3000http.createServer(function(request,respons e){
//thiết lập giá trị server trả vềresponse.write('Hello - Nguyễn Trung
Sauđómởcửa sổCMDlênđứngngayvịtrílưufileapp.js đểthực thinóvớicâulệnh:nodeapp.js
Sau đó ta có thể mở trình duyệt lên và gõhttp://localhost:3000sẽ thấy kết quảhiểnthị ramànhình dòngchữ "'Hello- Nguyễn TrungKiên".
Môhình MVC
Mô hình MVC(Model - View - Controller) là một kiến trúc phần mềm hay môhìnhthiếtkếđượcsửdụngtrongkỹthuậtphầnmềm.Nógiúpchocácdevelopertáchứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller Mỗi thànhphầncómộtnhiệmvụ riêngbiệtvàđộc lậpvớicác thànhphầnkhác
Vào những năm 70 của thế kỷ XX, tại phòng thí nghiệm Xerox PARC ở
PaloAlto Sự ra đời của giao diện đồ họa (Graphical User Interface – GUI) và lập trìnhhướng đối tượng (Object Oriented Programming – OOP) cho phép lập trình viênlàmviệcvớinhữngthànhphầnđồhọanhưnhữngđốitượngđồhọacóthuộc tínhvà phươngriêngcủanó.Khôngdừnglạiởđó, nhữngnhànghiêncứuởXeroxPARCcònđi xa hơn nữa khi họ cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View –Controller)
Kiếntrúc nàyngàycàngpháttriểnvàhoànthiệnnhằmgiảiquyếtcác vấnđềphátsinhcũngnhư các giảiphápchoquá trình pháttriểnphần mềm
Trongkiếntrúcnày,hệthốngđượcchiathành3phầntươngứngđúngvớitêngọicủa nó(Model,View,Controller)
MôhìnhMVC đượcchialàm3lớpxửlýgồmModel–View–Controller:
Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sởdữ liệu (mysql, mssql…); nó sẽ bao gồm các class/function xử lý nhiều nghiệp vụ nhưkếtnốidatabase,truyvấn dữliệu, thêm–xóa–sửa dữ liệu…
View: là nơi chứa những giao diện như một nút bấm, khung nhập, menu, hìnhảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệthống.
Controller: là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽgồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tincần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho ngườidùngnhờlớp View.
Controller– View: sẽlấy những hình ảnh,nút bấm…hoặch i ể n t h ị d ữ l i ệ u đ ư ợ c trảratừControllerđểngườidùngcóthểquansátvàthaotác.Trongsựtươngtácnày cũngcóthểkhôngcódữliệuđượclấ ytừModelvà khiđónóchỉchịu tráchnhiệmhiểnth ị đơn thuầnnhư hình ảnh,nút bấm…
Controller – Model: là luồng xử lý khi controller tiếp nhận yêu cầu và các thamsốđầuvàotừngườidùng,controllersẽsửdụngcáclớp/hàmtrongModelcầnthiếtđểlấyranh ững dữ liệu chính xác.
View – Model: có thể tương tác với nhau mà không qua Controller, nó chỉ đảmnhậnhiểnthịdữliệuchứkhôngphảiqua bấtkỳxửlýnghiệpvụlogicnào
MôhìnhMVC cóthểápdụngchonhiềuloạidựánkhácnhau:dựánwebsite,dựán ứng dụng – phần mềm… nhưng trong phạm vi bài viết chúng ta sẽ chỉ đi tìm hiểumô hình này được áp dụng như nào trong các dự án xây dựng và phát triển website.Ưuđiểm:
CácdựáncóthểápdụngngaymôhìnhMVCmàkhôngphụthuộc môitrường,nềntảngxâydựng hayngônngữ lậptrình pháttriển;
Quyhoạchcácclass/functionvàocácthànhphầnriêngbiệtController–Model–View, khi đó sẽ dễ dàng xây dựng – phát triển – quản lý – vận hành và bảo trì một dựán, tạo sự rõ ràng, trong sáng trong quá trình phát triển dự án, kiểm soát được cácluồngxử lývàtạoracácthành phầnxử lýnghiệp vụchuyên biệthóa.
Tạo thành mô hình chuẩn cho nhiều dự án, các chuyên gia sẽ tiếp cận – tìm hiểunhững dự án đó một cách nhanh chóng và hiệu quả Nếu bạn nắm rõ mô hình
MVCcủa mộtdựánnàođó, thìkhitiếpcậnvớimột dựánkhácmàbạnchưatừngbiếthoặctiếp xúc, nhưng nó lại được xây dựng với mô hình MVC thì sẽ không khó khăn gì màcựckỳdễdàng.Họcmộtnhưng cóthểhiểuvàsửdụngđượcmười.
Giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư, PM… có thể hiểu được dựánhoạtđộngrasaohoặcgiúpcác lậptrìnhviêndễdàngquảnlý–pháttriểndựán.Nókhông phải ngôn ngữ, nhưng khi họ cùng nhìn vào nó thì sẽ tự hiểu nó là gì, khi đó họcóthểtrao đổicácyêu cầu và bànbạccôngviệc.Đâylà mộtmôhìnhchuẩn, nótốiưunhấthiệnnaysovớinhiềumôhìnhkhácvàđược sử dụng trong nhiều dự án và nhiều lĩnh vực, đặc biệt trong công nghệ sản xuấtứng dụng – phần mềm Các lập trình viên sử dụng mô hình chuẩnMVC để có thể dễdàngphânphối vàchuyển giaocôngnghệ.
MongoDB
MongoDB là một trong cơ sở dữ liệu mã nguồn mở NoSQL phổ biến nhất được viếtbằngC++.
MongoDB là một cơ sở dữ liệu NoSQL hỗ trợ đa nền tảng, nó có thể chạy trênWindows, Linux và Mac Nó hỗ trợ hầu hết các ngôn ngữ lập trình phổ biến như C#,Java, PHP,Javascript và cácmôitrườngpháttriển khácnhau. ƯuđiểmcủamongoDB
Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi mộtcollectionsẽcócáckíchcỡvàcácdocument khácnhau, linhhoạttrong việclưutrữdữ liệu,nênbạnmuốn gìthìcứinsert vàothoải mái.
Dữ liệu trong MongoDB không có sự ràng buộc lẫn nhau, không có join nhưtrong RDBMS nên khi insert, xóa hay update nó không cần phải mất thời giankiểmtraxemcóthỏamãncácràngbuộc dữ liệu haykhông.
MongoDB rất dễ mở rộng (Horizontal Scalability) Trong MongoDB có mộtkháiniệmclusterlàcụmcácnodechứadữliệugiaotiếpvớinhau,khim uốnmởrộng hệthống ta chỉcầnthêmmộtnodevớivào cluster:
Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truyvấnthông tinđạthiệu suấtcaonhất.
Khi có một truy vấn dữ liệu, bản ghi được cached lên bộ nhớ Ram, để phục vụlượttruyvấn saudiễn ranhanhhơnmàkhôngcầnphảiđọctừổcứng.
Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) củaMongoDBnhanhhơnhẳnsovới cáchệquản trịcơsởdữliệu quan hệ.
MÔTẢBÀI TOÁN
Môtảquy trình bài toán
Nhận lớp học phần từ hệ thống quản lý và thu thập các tiết đăng ký của các giảngviên: cán bộ phụ trách sẽ nhận danh sách lớp học phần từ hệ thống quản lý, cùngvới đó là gửi biểu mẫu thu thập các tiết dạy của giảng viên có trong các lớp họcphần.
Người dùng đăng nhập vào hệ thống: để sử dụng, người dùng phải đăng nhập vàohệ thống.
NgườidùngimportfileExcel: ngườidùngchọnfileExcelchứadữliệucủal ớphọc phầnvàcáctiếtđăngkýcủagiảngviênđểimportvàohệ thống.
Server xử lý và sắp xếp thời khóabiểu: server sẽx ử l ý d ữ l i ệ u đ ầ u v à o v à t i ế n hànhsắp xếp thờikhóabiểu sauđó trảvềkếtquả.
Hiển thị kết quả cho client: client sẽ nhận được kết quả trả về và được hiển thị ratrangkết quả
Sơđồ usecase
Hình3.2Sơđồusecasecác chứcnăngcủaWebsite Sơđồusecasetrênđãchothấychứcnăngcủahệthốngcó1ngườidùnglàcánbộ quản lý công việc sắp xếp thời khóa biểu Với các chức năng là import file dữ liệuđầuvàođểthựchiệnviệcsắpxếpđượcthờikhóa biểuvàxuấtrafilekếtquảtừhệ thống.Nhưngđểsửdụngđượcchứcnăngtrêncánbộquảnlýphảiđăngnhậpvàođểsửdụng đượchệthống.
CÀIĐẶT HỆ THỐNG
Lưuđồ giải thuật đăng nhập
Client - Website cho phép người dùng nhập tên đăng nhập và mật khẩu để truy cậpvàohệthống.
Lưuđồ giải thuật xử lý sắp xếp thời khóa biểu
Sau đó hệ thống sẽ nhận file và kiểm tra định dạng file (.xlsx hoặc xls) Nếu đúngthì hệ thống sẽ tiếp tục xử lý, nếu sai sẽ trả về trang thông báo lỗi và đề nghị ngườidùngimport filelại.
Hệthống sẽ lấy đượcthông tin củaLop_hp từ filei m p o r t b a o g ồ m : m a _ h p , ten_hp, ma_nh,ma_cb,…
Từ mã cán bộ hệ thống sẽ lấy ngẫu nhiên các tiết mà cán bộ đã đăng ký và tiếnhànhxếpthời khóabiểu.
Lưuđồ giải thuật xuất filethời khóa biểuđã xếp
THIẾTKẾ HỆ THỐNG
Các mô hình thiết kế
CƠSỞDỮ LIỆU
Hình3.9Môhìnhcơ sởdữliệuquanhệ Hệthốngđượcxâydựngtheomôhìnhcơsởdữliệuquanhệ.Trongđócóthể
Ds_hocphan( 1 - n ) L o p _ h p : 1 t h ô n g t i n t r o n g D s _ h o c p h a n s ẽ đ ư ợ c m ở n h i ề u Lop_hpkhá cnhau.
Nhom_hp(1 - n ) L o p _ h p : 1 t h ô n g t i n tr on g N h o m _ h p c ó t h ể n ằ m tr on g n h i ề u Lop_hpkhá cnhau.
Lop_hp(1-1)Nhom_hp:1Lop_hpchỉđược1Nhom_hp.
Ds_canbo(1- n)Lop_hp: 1thôngtintrong Ds_canbo giảngviêncóthểdạyở nhiềuLop_hp khácnhau.
MÔTẢCÁC THỰCTHỂ
Sốdư ơng Độ dàit ối đa
1 MA_HP String x Mã họcphần
2 MA_NH String x Mã nhómhọc
3 MA_CB String x Mã cánbộgiảngdạy
4 TIET_BUOI String x Số tiết dạy trong buổi
Sốdươ ng Độ dàit ối đa
1 MA_HP String x Mãhọc phần
T Tênthuộctính Kiểudữ liệu Sốdươ ng Độdàit ốiđa
1 MA_NH String x Mãnhóm nhọc
STT Tênthuộctính Kiểudữliệ u Sốdươ ng Độ dài tối đa
1 MA_PHONG Int x x Mã phònghọc
2 TEN_PHONG String Tênphòng học
4 LOAI_PHONG String Loạiphòng,sứcchứa
Sốdư ơng Độ dàit ối đa
2 LICHDAXEP String Mảngchứacácphần tửtronglịchđãxếp Môtả:Thôngtinvềthờikhóabiểuđãxếphoànchỉnh
Sốdư ơng Độ dàit ối đa
KIỂMTHỬ
Với thiết kế và cài đặt hệ thống như vậy, hi vọng hệ thống có thể đem lại được sựthoải mái, tiện dụng, an toàn, tin cậy cho người dùng Nhưng trước khi đến tay ngườidùng thật sự sẽ có một vài kịch bản để kiểm thử xem hệ thống có những ưu điểmkhuyết điểm nào để có thể cải thiện cũng như phát triển hơn trong tương lai Dưới đâylàmột số kịchbảnkiểm thử. ĐốivớiWebsitechongườidùng
KịchBảnKiểmThử MongMuốn KếtQuả Đăngnhậpvớitênđăngnhậpvàmậtkhẩuđ úng VàosửdụngđượcWebsite Thànhcông Đăngnhậpvớitênđăngnhậpvàmậtkhẩus ai
Yêuc ầ u n h ậ p l ạ i , k h ô n g c h o phéptruycậpWebsite Thànhcông NhậpfileExcelđúngđịnhdạngchop hép Chạyđượchệthống,xếplịcht hànhcông Thànhcông
Giảngv i ê n đ ă n g k ý đ ủ t i ế t d ạ y v ớ i lớphọcphầncó têngiảngdạy Xếplịchthànhcông Thànhcông
Không xếp được lịch chogiảngviênđóvà trảvề kếtquả
Giảngviênkhôngđăngkýtiếtdạy Trảvềkểtquả“Giảngviênchưa đăngký tiếtdạy” Thànhcông Đủphònghọc xếpcác lớphọcphần Xếplịchthànhcông Thànhcông
XuấtralileExcellịchđãxếp Xuấtfilethànhcông,tựđộng tảivềfileExcelkếtquả Thànhcông
Biểumẫuthu thập tiết dạy
WebSite
Giaodiệnđăng nhập
GiaoDiệnChính
GiaoDiệnKết quả
Thiết kế và xây dựng ứng dụng xếp lịch thời khóa biểu cho giảng viên giảng dạytạikhoaPhát Triển NôngThôn.
Sử dụng cơ sở MongoDB để lưu trữ và xử lý thông tin Đây là một cơ sở dữ liệuNoSQL, có tính linh hoạt cao, truy vấn nhanh Cho dù hệ thống được xây dựngtheo mô hình cơ sở dữ liệu quan hệ nhưng việc ràng buộc các dữ liệu trên NoSQLcóthểthựchiệnquaquátrìnhlập trình.
Nâng cao khả năng phân tích thiết kế hệ thống, thiết kế cơ sở dữ liệu, thiết kế cácmôhình chứcnăng,giảithuật,…
Nâng cao khả năng lập trình Web với Javascript và sử dụng các kỹ thuậtnhưAJAX,JQuery,…
Tìm hiểu và cải thiện khả năng lập trình NodeJS, tìm hiểu về cách thức xây dựngwebsitevới NodeJS
Bằng cách sử dụng tốt front-end Framework Bootstrap 3 học được cách thiết kếwebsitec h u ẩ n r e s p o n s i v e t ư ơ n g t h í c h t r ê n n h i ề u m à n h ì n h c ó k í c h t h ư ớ c k h á c nhau
VềWebsitethìcănbảncácyêucầuđãđápứngđượcchoviệcquảnlýsắpxếp,cùngvớiđ ólàkhảnăngimport/exportcácfile dữliệu nhanhchóng.
Giaod i ệ n W e b s i t e t h i ế t k ế v à x â y d ự n g đ ơ n g i ả n t r ê n F r o n t - e n d F r a m e w o r k Bootstrap3nêntiện dụng, dễthaotác, trựcquan.
WebsiteviếtbằngNodeJSkếthợpvớiviệcsửdụngcơsởdữliệuMongoDB khiếnchoviệcxửlý dữ liệutương đốidễ dàng,nhanhchóng hơn.
Nhằmkhắcphụcnhữngkhuyếtđiểmtrên,nêndướiđâylàmộtsốhướngpháttriểnhivọngcóthể khiến chohệthống ngàymộtmạnh mẽhơn: