Lýdochọnđề tài
Hiện nay, công nghệ thông tin là ngành mũi nhọn của nhiều quốc gia, đặc biệt là các nước đang phát triển như Việt Nam Sự bùng nổ thông tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật số đang tạo ra yêu cầu cấp thiết cho sự phát triển toàn diện, đòi hỏi sự tin học hóa trong tất cả các ngành và lĩnh vực.
Với sự tiến bộ nhanh chóng của phần cứng máy tính, các ứng dụng ngày càng đa dạng và hoàn thiện, mang lại hiệu quả cao cho người dùng Hiện nay, nhiều ứng dụng có khả năng mô phỏng các nghiệp vụ phức tạp, giúp người dùng sử dụng thuận tiện hơn, rút ngắn thời gian xử lý và nâng cao trải nghiệm giải trí.
Trong quá trình phát triển ứng dụng, sự đổi mới không chỉ đòi hỏi tính chính xác và khả năng xử lý nhiều nghiệp vụ thực tế, mà còn cần đáp ứng các yêu cầu về tốc độ và giao diện thân thiện Chúng tôi đã chọn đề tài "xây dựng ứng dụng game caro" dựa trên kiến thức từ môn lập trình mạng đã học trên lớp, nhận thấy rằng việc áp dụng kiến thức này vào việc phát triển game caro mang lại lợi thế lớn.
Mụctiêunghiêncứu
Xây dựng một ứng dụng hoàn thiện về giao diện và tối ưu về chức năng giúp người dùng dễ dàng truy cập và kết nối với các máy khác để thực hiện chơi game Ứng dụng này sẽ bao gồm các chức năng cơ bản như tạo phòng thường, tạo phòng có mật khẩu, phần chat, tìm phòng, đầu hàng và tính điểm.
- Giúpbảnthâncóthêmkhảnăngsángtạo,tưduythôngquathiếtkếgiaodiện tươngtácvớingườidùng,vậndụngkiếnthức bảnthânvàothực tiễn.
Nhiệmvụnghiêncứu
Phươngphápvàphạmvinghiêncứu
- Thamkhảo, nghiêncứuthêmcác tàiliệutrêntrangweb, trangbáo, t ìm hiểutì nhhìnhthựctrạngcủađềtài.
- Tìmhiểucácđềtàicủacácanhchịkhóatrướcđãlàmhoặctìmhiểuquasáchbáo,trangm ạngliênquan đến đề tàinghiêncứu.
Phươngtiệnnghiêncứu
- Sửdụngcáccôngcụeclipđểlậptrình,thiếtkếgiaodiện.-Sửdụnghệquảntrịcơsởdữ liệuMySQLđ ể quảntrịcơsởdữliệuchođềtài.
Xác địnhnhữngyêucầuhệthống
Yêucầuchức năng
Những người quản lý thông tin có khả năng truy cập nhanh chóng và dễ dàng vào dữ liệu chính xác, giúp họ theo dõi những thay đổi và quyền lợi liên quan Hệ thống hoạt động một cách tự động, nâng cao hiệu quả quản lý thông tin.
Yêucầuphi chức năng
Kếtquảđềtài
Hoàn thiện giao diện và chức năng cơ bản của ứng dụng giúp tạo ra mối liên hệ mới giữa hai máy tính, cung cấp đầy đủ các tính năng cần thiết.
Côngcụthiếtkế ứngdụng
Côngcụquảntrịcơ sởdữliệuPhpMyAdmin
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới, được ưa chuộng bởi các nhà phát triển ứng dụng nhờ vào tốc độ cao, tính ổn định và dễ sử dụng Hệ thống này có khả năng chuyển đổi linh hoạt và hoạt động trên nhiều hệ điều hành, cung cấp nhiều hàm tiện ích mạnh mẽ Với tính bảo mật cao, MySQL là lựa chọn lý tưởng cho các ứng dụng truy cập cơ sở dữ liệu trên internet Người dùng có thể tải MySQL miễn phí từ trang chủ, với nhiều phiên bản tương thích cho các hệ điều hành như Windows, Linux, Mac OS X, Unix và nhiều hệ thống khác.
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệuquanhệsửdụngNgôn ngữtruyvấn cócấu trúc(SQL).
MySQL được sử dụng cho việc bổ trợ Node.js, PHP, Perl, và nhiều ngôn ngữkhác,làmnơilưutrữnhữngthôngtintrêncáctrangwebviếtbằngNodeJs,P HP hayPerl,
Ngônngữthiếtkếứngdụng
Ngônngữchínhlậptrìnhứngdụngandroid
Java là một ngôn ngữ lập trình hướng đối tượng phổ biến, được sử dụng rộng rãi trong phát triển phần mềm, trang web, game và ứng dụng di động Được sáng lập bởi James Gosling và các đồng nghiệp tại Sun Microsystems vào năm 1991, Java ban đầu được thiết kế để viết phần mềm cho các sản phẩm gia dụng với tên gọi là Oak Java chính thức được phát hành vào năm 1994 và đã được Oracle mua lại từ Sun vào năm 2010.
Java được phát triển với tiêu chí "Viết một lần, thực thi khắp nơi" (WORA), cho phép chương trình phần mềm viết bằng Java chạy trên nhiều nền tảng khác nhau Điều này khả thi nhờ vào môi trường thực thi, miễn là môi trường đó hỗ trợ nền tảng cụ thể.
Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn, tương tự như C++ Được phát triển bởi các kỹ sư của Sun Microsystems, Java được thiết kế để chạy trên nhiều nền tảng khác nhau Mục tiêu của họ là tạo ra một ngôn ngữ dễ học và quen thuộc với hầu hết lập trình viên, vì vậy họ đã áp dụng các cú pháp của C và C++ trong quá trình phát triển.
Java là một ngôn ngữ lập trình kết hợp giữa biên dịch và thông dịch, cho phép các lập trình viên phát triển ứng dụng hiệu quả Cơ chế thu gom rác tự động trong Java giúp quản lý bộ nhớ bằng cách tự động cấp phát không gian cho các đối tượng trên heap Ngoài ra, Java hỗ trợ lập trình đa luồng, cho phép thực thi nhiều công việc đồng thời và cung cấp các giải pháp đồng bộ hóa giữa các tiến trình, như sử dụng priority.
UML (Unified Modeling Language) là ngôn ngữ dành cho việc đặc tả, hình dung, xâydựngvàlàm tàiliệucủacáchệthống phầnmềm.
UML cung cấp cơ hội để thiết kế hệ thống thông qua các khái niệm như quy trình nghiệp vụ và chức năng của hệ thống Việc xây dựng các mô hình trong UML giúp mô tả toàn diện cấu trúc và hoạt động của hệ thống thông tin Cách tiếp cận theo mô hình của UML hỗ trợ hiệu quả cho các nhà thiết kế, thực hiện và người sử dụng hệ thống, tạo ra cái nhìn tổng quát về hệ thống thông tin dự kiến Nhờ vào cái nhìn này, các yêu cầu của người dùng được nắm bắt đầy đủ, từ giai đoạn phân tích đến thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin.
UML sử dụng hệ thống ký hiệu thống nhất để biểu diễn các phần tử mô hình (model elements) Các phần tử này kết hợp với nhau để tạo thành các sơ đồ UML (UML diagrams) Các loại sơ đồ UML chủ yếu bao gồm:
Framework Laravel
Côngnghệxâydựng ứng dụng
Biểuđồ Usecase
Biểuđồ Usecasetổng quát
Biểuđồ Usecasephânrãactor“Giáo Viên”
Biểuđồ Usecasephânrãactor“HọcSinh”
Biểuđồ Usecasephânrãactor “Admin”
Usecase quản lídanh sáchhọcsinh
Usecase quản líđiểm
Usecase quản límôn học
Usecase quản lílịch học
Usecase quản lívà hiệu chỉnh tàikhoản
Usecase quản lígiáo viên
Đặc tảUsecase
ĐặcUsecaseđăngnhập hệ thống
- Tácnhân:admin,giáoviên,học sinh(hoặc phụhuynhhọc sinh) b) Cácluồngsựkiện
+Ngườisửdụngcóthểchọnhoặclàđăngnhậplạihoặclàhuỷbỏđăngnhập,khiđócasửdụ ng kết thúc. c) Tiềnđiềukiện:Không d) Hậuđiềukiện:Nếuviệcđăngnhậpthànhcông,ngườisửdụngsẽđăngnhậpđượcvàohệthống
ĐặctảUsecasequảnlívà hiệu chỉnhthôngtinhọcsinh
+Ngườidùngkhôngmuốnthêmhọcsinhmới,ấnnút“Không”trongthôngbáoxác nhậnthông tin thêm họcsinh.
+Hệ thốngkiểmtradữliệunhậpvàocósaisót, đưa ra thôngbáo“Lưu khôngthàn hcông”.Yêu cầu nhập lại. c) Tiềnđiềukiện:Tácnhânphảiđăngnhậpvàohệthống. d) Hậuđiềukiện:Nếucasửdụngđượcthựchiệnthànhcôngthìthôngtinhọcsinhsẽ được thêm, sửa,cònlại cáctrườnghợp khácthông tinvẫn đượcgiữnguyên.
ĐặctảUsecasequản lýmônhọc
+ Người quản lý không muốn thêm môn học mới, ấn nút “Không” trong thông báoxácnhậnthông tin thêm mônhọc.
+Ngườiquảnlýkhôngmuốnthayđổithôngtinmônhọc,ấnnút“Không”trongthôngbáoxá cnhậnthông tinsửađổimôn học.
+Hệ thốngkiểmtradữliệunhậpvàocósaisót, đưa ra thôngbáo“Lưu khôngthàn hcông”.Yêu cầu nhập lại.
+Ngườiquảnlýkhôngmuốnxóamônhọc,ấnnút“Không”trongthôngbáoxácnhậnxóa mônhọc.
+Hệthốngkiểmtraràngbuộcdữ liệumônhọckhôngxóađược,đưarathôngbáo“khôngthểxóa”.Usecase xóakếtthúc c) Tiềnđiềukiện:Tácnhânphảiđăngnhậpvàohệthống. d) Hậuđiềukiện:Nếucasửdụngđượcthựchiệnthànhcôngthìthôngtinmônhọcsẽđ ượcthêm, sửa hoặc xóa,cònlạicáctrườnghợpkhácthôngtinvẫnđượcgiữnguyên.
ĐặctảUsecasequản lýĐiểm
+Môtảtácnhânđãchọnmộttrongcácchứcnăngnhậpđiểm,sửađiểmhoặcxóađiểmsauđó giáoviêncóthểthêm,sửa,xóađiểm củahọcsinhvàkếtthúc.
- Hệthốngnhắcgiáoviênchọnmônhọc,giáoviênchọnmônhọc,hệthốngnhắcgiáovi ên chọn việc:
+H ệ t h ố n g h i ể n t h ị m à n h ì n h d a n h s á c h c á c m ô n h ọ c m à g i á o v i ê n g i ả n g d ạ y tronghọckỳ gồmtên mônhọc,mãsốmôn học.
+H ệ t h ố n g h i ể n t h ị m à n h ì n h d a n h s á c h c á c m ô n h ọ c m à g i á o v i ê n g i ả n g d ạ y tronghọckỳ gồmtên mônhọc,mãsốmôn học.
+H ệ t h ố n g h i ể n t h ị m à n h ì n h d a n h s á c h c á c m ô n h ọ c m à g i á o v i ê n g i ả n g d ạ y tronghọckỳ gồmtên mônhọc,mãsốmôn học.
+Hệthốngthôngbáo:Điểmphảinhậptừ1->10,làmtrònđếnchữsốthậpphânthứ2 vàkhông đượcđểtrống.
+Hệthốngthôngbáo:Điểmphảinhậptừ1->10,làmtrònđếnchữsốthậpphânthứ2 vàkhông đượcđểtrống.
Giáo viên cần đăng nhập vào hệ thống để thực hiện việc sửa lại điểm Nếu ca sử dụng thành công, thông tin điểm của học sinh sẽ được cập nhật, sửa đổi hoặc tính điểm trung bình Trong trường hợp không thành công, thông tin điểm của học sinh vẫn được giữ nguyên.
ĐặctảUsecasethốngkê
- Hiểnthịdanhsáchcầnthốngkê.Kếtthúcusecasethốngkê. c)Tiềnđiềukiện:Ngườidùngcầnđăngnhậphệ thốnghợplệ d) Hậuđiềukiện:Casửdụngđượcthựchiệnthànhcôngngườidùngcóthểxemđược danhsách thốngkêtheo yêucầu.
ĐặctảUsecasetracứuthôngtin
- Ngườidùngnhậpthôngtincầntracứuvàchọnnút“Tìm”.Nếukhôngmuốntìmkiếmnữat hì thựchiện luồng A1.
+Hệthốngsẽkếtthúcviệctìmkiếmthôngtin c) Tiềnđiềukiện:Ngườidùngcầnđăngnhậphệ thốnghợplệ d) Hậu điều kiện: Ca sử dụng được thực hiện thành công người dùng có thể xem được kếtquảtìm kiếm theo yêu cầu.
ĐặctảUsecasequảnlígiáoviên
- Tácnhân:Ngườiquảnlí(Admin) b) Các Luồngsựkiện
+Người quảnlýkhôngmuốn thêmgiáoviênmới, ấnnút“Không”trong thôngbáoxá cnhậnthông tin thêmmôn học.
+Ngườiquảnlýkhôngmuốnthayđổithôngtingiáoviên,ấnnút“Không”trongthôngbá oxácnhậnthông tinsửađổimôn học.
+Hệ thốngkiểmtradữliệunhậpvàocósaisót, đưa ra thôngbáo“Lưu khôngthàn hcông”.Yêu cầu nhập lại.
+Ngườiquảnlýkhôngmuốnxóagiáoviên,ấnnút“Không”trongthôngbáoxácnhậnxóa mônhọc.
+Hệthốngkiểmtra ràngbuộcdữliệugiáoviênkhôngxóa được,đưara thôngbáo“khôngthểxóa”.Usecase xóakếtthúc c) Tiềnđiềukiện:Tácnhânphảiđăngnhậpvàohệthống. d) Hậuđiềukiện:Nếucasửdụngđượcthựchiệnthànhcôngthìthôngtinmônhọcsẽđ ượcthêm, sửa hoặc xóa,cònlạicáctrườnghợpkhácthôngtinvẫnđượcgiữnguyên.
ĐặctảUsecase quảnlývàhiệuchỉnhtàikhoản
+ Người quản lí không muốn thêm tài khoản mới, ấn nút “Không” trong thông báoxácnhậnthông tin thêm tàikhoản.
+Ngườiquảnlíkhôngmuốnthayđổithôngtintàikhoản,ấnnút“Không”trongthôngbáoxá cnhậnthôngtinsửađổitàikhoản.
+Hệ thốngkiểmtradữliệunhậpvàocósaisót, đưa ra thôngbáo“Lưu khôngthàn hcông”.Yêu cầu nhập lại. c) Tiềnđiềukiện:Tácnhânphảiđăngnhậpvàohệthống. d) Hậuđiềukiện:Nếucasửdụngđượcthựchiệnthànhcôngthìthôngtint à ikhoảnsẽđư ợc thêm, sửa,xóacòn lạicáctrườnghợpkhácthôngtinvẫnđượcgiữnguyên.
Biểuđồlớp
HệthốngCSDL
Bảnguser
Truyvấn:INSERTINTO`user`(`id`,`email`,`password`,`name`)VALUES('1','oanh@gm ail.com', '12345678','12345678');
Cột Kiểu Null id(Chính
) int(11) Không email varchar(100) Không password int(11) Không name int(11) Không
Bảnggiáoviên
Truyv ấ n : I N S E R T I N T O ` g i a o v i e n ` ( ` i d ` , ` n a m e ` , ` m a g v ` , ` s d t ` , ` e m a i l ` , ` d i a c h i ` ) VALUES ('1', 'Nguyễn Mai Phương Anh',
'103AB', '0300000002', 'phuonganh@gmail.com','123LýThườngKiệt,BắcLý,ĐồngHới');
Cột Kiểu Null id(Chính) int(11) Không name varchar(50) Không magv varchar(50) Không sdt int(11) Không email varchar(100) Không diachi varchar(255) Không
Bảnghọcsinh
Truyvấn:INSERT INTO`hocsinh`(`id`, `name`,`mahs`,`link`, `DTB`) VALUES (7,'Trần ThịKimOanh','19it184', 'http://192.168.1.105/Web/Anhthe/anhthe4.jpg','8');
Cột Kiểu Null id(Chính
) int(50) Không name varchar(50) Không mahs varchar(50) Không link varchar(100) Không
Bảnglớp
Truyvấn:INSERTINTO`lop` (`id`,` na me` , `mahs`,`l i n k ` , `DTB` ) VALUES('1' ,'Lop1A', '19it184', ''http://192.168.1.105/Web/Anhthe/anhthe4.jpg','8',);
Cột Kiểu Null id(Chính
) int(11) Không name varchar(50) Không mahs varchar(50) Không link varchar(100) Không
Bảnglịchhọc
Truyvấn:INSERT INTO`lichhoc`(`thu`,`monhoc`,`giaovien`) VALUES ('2','T oán', 'NguyễnMai Phương Anh');
Cột Kiểu Null thu(Chính
) int(11) Không monhoc varchar(100) Không giaovien varchar(100) Không
Bảngmônhọc
) V A L U E S ('4', 'toan', 'toan hoc','https://docs.google.com/document/d/1_H04lyR0aiGzQTpzi3Ja2corSiqI- ByY4ezlSEHUKHU/edit');
Cột Kiểu Null id(Chính) int(50) Không tenmon varchar(50) Không thuocnganh varchar(50) Không linkpdf varchar(100) Không
Thiếtkế ứngdụng
PhầnwebAPI
Trangchủgiaodiệnquảnlýhọcsinhnhữngphần chínhnhưlớp,mônhọc,lịch họcvàkhen thưởng.
Lớp học cho phép hiển thị danh sách học sinh theo từng lớp Tại đây, người quản lý có thể dễ dàng thêm học sinh mới vào danh sách, chỉnh sửa thông tin của học sinh hiện có và xóa học sinh không còn trong danh sách.
- Môn học: Hiện thị danh sách môn học Danh sách các môn học có thể thay đổi, thêmmộtmônhọcmớivàodanhsách,chỉnh sửa mônhọcđã có vàxóamôn học,
- Lịch học: Hiện thị lịch học theo ngày học Tại đây người quản lý có thể chỉnh sửa, cậpnhậtvàtạo mớilịch học.
Khen thưởng là danh sách được hiển thị và lựa chọn dựa trên điểm trung bình của học sinh trong lớp Danh sách này được đánh giá định kỳ, và những học sinh có điểm trung bình trên 8 sẽ đủ điều kiện để được xét duyệt học bổng.
PhầnứngdụngAndroid
ỨngdụngdụngđượcxâydựngdựatrênnềntảngwebAPI.Toànbộdữliệucủaứng dụng đều đượcJsontrảvề.
- Phầnđăngnhập:Ngườidùngchỉđăngnhậpkhiđượccấptàikhoản,vớinhữngtrườnghợp khôngcótàikhoảnvàkhôngđăngnhậpđượcthìhệthốngsẽthôngbáođăngnhập khônghợplệ.Mọidữliệuđăngnhậpđềuđượclưutrữvàtruyxuấttronghệquảntrịcơsởdữ liệu.
- Phầntrangchủ:Trangchủứngdụnglànơihiểnthịđầyđủcácphânmụccủaứngdụng.Vớihiện thitrựcquan dễsửdụng.
PhầnHọcSinh:Hiểnthịdanhsáchhọcsinhtheolớp.Thêmmộthọcsinhmớivàodanhsách,chỉnh sửa cậpnhậtlạithôngtincủahọcsinh,xóahọcsinhra khỏidanhsách
- Phầnkhenthưởng:Hiệnthịthôngtincủanhữnghọcsinhđạtthànhtíchcao.Hệthốngnàyđ ượcxác lập dựatrênđiểmtrungbình ởdanhsách học sinh,
Để xây dựng một hệ thống quản lý học sinh hiệu quả, cần thực hiện các giai đoạn khảo sát, phân tích, thiết kế hệ thống, nghiên cứu công cụ lập trình, thiết kế phần mềm và kiểm thử Trong bối cảnh công nghệ hiện đại, việc phát triển một ứng dụng quản lý học sinh đơn giản và tối ưu là rất quan trọng Qua nghiên cứu và thực hiện đề tài này, chúng tôi đã củng cố và học hỏi được nhiều kiến thức bổ ích.
- Củngcốkiếnthứcvềlậptrìnhwebbằngngônngữphp,laravelframework.Cũngbiết thêm được nhiều kiến thức về quản lý cũng như phân tích hệ thống của mộtứngdụng quản lý.
- Trau dồi kiến thức và kĩ năng lập trình di động, Từ đó có thể phát triển và xâydựngnênmột số hệthốngquản lítương tự.
Củng cố kiến thức về phân tích thiết kế hệ thống UML, bao gồm việc vẽ và thao tác thành thạo các loại biểu đồ cơ bản như biểu đồ use-case, biểu đồ lớp và biểu đồ tuần tự Đồng thời, nắm vững cách đặc tả use-case để áp dụng hiệu quả trong quá trình thiết kế hệ thống.
Việc biết cách viết và sử dụng API để lấy dữ liệu từ web qua ứng dụng là một công nghệ hữu ích, giúp tiết kiệm thời gian và tối ưu quản trị hệ cơ sở dữ liệu.
Trong bối cảnh công nghệ thông tin phát triển nhanh chóng, việc tin học hóa quản lý học sinh trở nên cần thiết và quan trọng Phần mềm này hỗ trợ các trường học và giáo viên trong việc quản lý và theo dõi thành tích học tập cũng như thông tin của học sinh một cách hiệu quả Dự án của nhóm chúng tôi đã đạt được một số kết quả đáng chú ý.
- Xây dựng được hệ thống web API và ứng dụng android với giao diện phù hợp,chưa đượctối ưuhoàn toànnhưngđủ bắt mắtvớingườidùng.
Ứng dụng này tích hợp các chức năng cơ bản của một hệ thống quản lý, bao gồm quản lý danh sách học sinh, theo dõi khen thưởng, ghi nhận điểm số và quản lý môn học cũng như lịch học.
- Ứng dụng giúp người dùng tối ưu hóa dữ liệu người dùng, cơ sở dữ liệu rõ ràngliênkết hoàntoàntrên web API.
Dự án quản lý học sinh tiểu học đã có những chức năng cơ bản, mặc dù chưa hoàn thiện hoàn toàn Do thời gian hạn chế, một số chức năng vẫn chưa được hoàn tất trước khi bảo vệ Chúng em hy vọng sẽ có thêm thời gian để hoàn thiện và duy trì dự án tốt hơn, từ đó có thể đưa ứng dụng vào thực tiễn.
Hướngpháttriển Để dự án có thể hoạt động hiệu quả hơn cần dữ liệu phải đượ clưu trữ bằng hệquảntrịcơsởdữliệucótínhbảomậthơn Cầncósựkếthợpsongsonggiữanhà trườngvàgiáoviênmộtcáchchặtchẽ hơnđểviệctheodõivàquảnlýhọcsinhđượctốthơn.
Để đưa dự án quản lý học sinh vào thực tiễn, cần có sự phối hợp chặt chẽ giữa nhà trường, giáo viên và phụ huynh Dự án sẽ được hoàn thiện trong thời gian tới và ứng dụng vào thực tế nếu có tính thuyết phục cao Trong khuôn khổ đồ án, chúng em chỉ có thể trình bày những chức năng cơ bản và mô phỏng một số yêu cầu thực tế Chúng em rất mong nhận được sự đóng góp ý kiến từ quý thầy cô để hoàn thiện dự án này hơn.