CHƯƠNG 1. Tính cấp thiết của đề tài Trong những ngày tháng năm cuối đại học, đa số sinh viên thường ra ngoài đi làm dẫn đến khó có thể sắp xếp, cập nhật thông tin, thời gian về việc đăng ký đồ án tốt nghiệp. Trong khi đó giảng viên bận rộn với các công việc giảng dạy, ít nắm bắt được số lượng, tình hình sinh viên đăng ký. Với những lý do trên, nhóm quyết định chọn đề tài xây dựng website quản lý đồ án tốt nghiệp nhằm giảm bớt gánh nặng cho giảng viên cũng như sinh viên trong việc quản lý đồ án của mình, phần nào giảm bớt khó khăn trong việc lưu trữ đồ án tốt nghiệp.
Mục đích của đề tài Đề tài “XÂY DỰNG WEBSITE QUẢN LÝ ĐỒ ÁN TỐT NGHIỆP TẠI KHOA CƠ KHÍ MÁY TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ” đặt ra các vấn đề trọng tâm về mục tiêu mà sinh viên nghiên cứu cần thực hiện được bao gồm: - Sử dụng công nghệ, kỹ thuật, thư viện ứng dụng và quá trình phát triển phần mềm, mang lại giá trị nhanh nhất cho khách hàng, bao gồm: các công nghệ giúp phát triển ứng dụng web đa nền tảng, các công nghệ ứng dụng giúp phát triển dự án nhanh nhất, độc lập nhất và dễ dàng triển khai cho các môi trường khác nhau. - Xây dựng website quản lý đồ án tốt nghiệp giúp các thầy cô dễ dàng quản lý thông tin về đồ án mà sinh viên đã thực hiện cho trường. Từ đó, sản phẩm được xem xét và đánh giá một cách phù hợp. - Sản phẩm là một trang web nên yêu cầu giao diện thân thiện với người dùng, phù hợp với khách hàng mong muốn.
Sản phẩm cũng yêu cầu phải sử dụng được trên nhiều trình duyệt khác nhau cũng như nhiều loại thiết bị. Đối tượng và phạm vi nghiên cứu Đồ án được thực hiện xoay quanh hai đối tượng trọng tâm, bao gồm: công nghệ và kiến thức thực tế về việc quản lý, xử lý các nghiệp vụ mà khách hàng yêu cầu. Trong đó, đối tượng công nghệ bao gồm các đối tượng nghiên cứu bắt buộc: Java Spring Boot, Angular Framework, cơ sở dữ liệu NoSQL MongoDB. Ngoài việc kết hợp các đối tượng nghiên cứu công nghệ, một số thư viện hữu ích như JWT (Json Web Token), Ant Design (ng-zorro) cũng được nghiên cứu để xây dựng giao diện website được tốt hơn.
1 Đối tượng khách hàng hướng đến là nhóm đối tượng có nhu cầu tổ chức, quản lý các đồ án tốt nghiệp, bao gồm các quy trình đăng ký từ giảng viên, xem xét các thông tin rồi xét duyệt thông tin, quản lý người dùng, quản lý các danh mục. Phạm vi thực hiện được đặt ở mức độ tổng quát, nắm được kiến thức chung cho nội dung thực hiện và vận dụng từng nội dung kiến thức vào sản phẩm thực tế, không đặt nặng lý thuyết. Tham khảo ý kiến của giảng viên hướng dẫn, khách hàng, bạn bè xung quanh, những người có kinh nghiệm liên quan đến các vấn đề đang gặp phải để tạo ra độ chính xác của sản phẩm. Kết quả dự kiến đạt được - Hiểu được các kiến thức về chức năng, cách thức hoạt động của Java Spring Boot và Angular trong việc xây dựng website.
- Xây dựng hoàn thành một website quản lý đồ án tốt nghiệp với những kiến thức đã tìm hiểu. Giới thiệu về Java 2. Java là gì? Hoàn cảnh ra đời của Java Java là một ngôn ngữ lập trình hướng đối tượng (OOP), có mục đích chung [9][2] cho phép các nhà phát triển ứng dụng “Write once, run anywhere”[12] (viết một lần, chạy ở mọi nơi), nghĩa là mã Java đã biên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java mà không cần biên dịch lại. Cú pháp của Java tương tự C/C++ nhưng có ít cơ sở cấp thấp hơn các ngôn ngữ trên, do đó ngôn ngữ này trở nên phổ biến, đỡ tốn công sửa lỗi hơn.
Tính đến năm 2021, Java nằm trong top 3 ngôn ngữ lập trình phổ biến nhất được sử dụng theo GitHub[7]. Được phát triển bởi Sun Microsystem (sau đó đã được Oracle mua lại), do James Gosling khởi xướng vào năm 1991 và phát hành vào năm 1995 như một thành phần cốt lõi của nền tảng Java của Sun Microsystem (Java 1. Ban đầu ngôn ngữ này được gọi là Oak theo tên một cây sồi bên ngoài văn phòng của Gosling. Sau đó, dự án có tên là Green và cuối cùng được đổi tên thành Java, từ cà phê Java, loại cà phê đến từ Indonesia.
Với sự ra đời của Java 2 (ban đầu được phát hành với tên gọi J2SE 1.2 vào tháng 12 năm 1998 – 1999), các phiên bản mới có nhiều cấu hình được xây dựng cho các loại nền tảng khác nhau. J2EE bao gồm các công nghệ và API cho các ứng dụng doanh nghiệp thường chạy trong môi trường máy chủ, trong khi các API đặc trưng của J2ME được tối ưu hóa cho các ứng dụng di động. Phiên bản dành cho máy tính để bàn được đổi tên thành J2SE. Năm 2006, vì mục đích tiếp thị, Sun đã đổi tên các phiên bản J2 mới lần lượt là Java EE, Java ME và Java SE: - Nền tảng Java, phiên bản Micro (Java ME) – nhắm mục tiêu môi trường với tài nguyên hạn chế.
- Nền tảng Java, phiên bản tiêu chuẩn (Java SE) – nhắm mục tiêu môi trường máy trạm. - Nền tảng Java, phiên bản Doanh nghiệp (Java EE) – nhắm mục tiêu các môi trường doanh nghiệp hoặc Internet phân tán lớn. Java có thể bắt gặp ở nhiều nơi, từ những trang web thương mại điện tử, đến ứng dụng Android, hoặc thậm chí trên ứng dụng khoa học, ứng dụng tài chính như hệ thống giao dịch điện tử, trò chơi Minecraft, công cụ phần mềm như Eclipse, Netbeans, IntelliJ,… Java có thể chạy trên nhiều nền tảng hệ điều hành khác nhau như Windows, Mac và các phiên bản khác nhau của UNIX. Oracle (và những công ty khác) khuyên người dùng nên gỡ cài đặt các phiên bản Java đã lỗi thời vì những rủi ro nghiêm trọng 3 do các vấn đề bảo mật chưa được giải quyết.
Vì Java 9, 10, 12, 13 và 14 không còn được hỗ trợ, Oracle khuyên người dùng nên chuyển ngay sang phiên bản mới nhất hoặc bản phát hành được hỗ trợ lâu dài. Hiện tại, phiên bản mới nhất của Java Standard Edition (SE) là Java SE16, cùng với các phiên bản được hỗ trợ lâu dài (LTS) là Java SE 8 và Java SE 11. Các phiên bản Java đã phát hành: Bảng 2.1: Danh sách phiên bản Java đã phát hành Phiên bản Ngày phát hành JDK Beta 1995 JDK 1.0 30/09/2004 Java SE 6 11/12/2006 Java SE 7 28/07/2011 Java SE 8 18/03/2014 Java SE 9 21/09/2017 Java SE 10 20/03/2018 Java SE 11 25/09/2019 Java SE 12 19/03/2019 Java SE 13 17/09/2019 Java SE 14 17/03/2020 Java SE 15 15/09/2020 Java SE 16 16/03/2021 Java SE 17 Dự kiến vào tháng 8/2021 2. Đặc điểm của Java - Hướng đối tượng: Trong Java, mọi thứ đều là Object (vật thể).
Java có thể mở rộng vì nó dựa trên mô hình Object.1: Lập trình hướng đối tượng trên Java [10] - Nền tảng độc lập: Không giống như nhiều ngôn ngữ lập trình khác (C, C++), khi Java được biên dịch, nó không biên dịch sang một máy tính cụ thể trên nền tảng nào, thay vào đó là những byte code độc lập với nền tảng. Byte code này được phân phối trên web và được thông dịch bằng Virtual Machine (JVM) trên bất cứ nền tảng nào mà nó đang chạy. - Đơn giản: Java được thiết kế để dễ học. Chỉ cần hiểu cơ bản về khái niệm lập trình hướng đối tượng, thì có thể nắm bắt ngôn ngữ này rất nhanh.
- Bảo mật: Với tính năng an toàn của Java, nó cho phép phát triển những hệ thống không có virus, giả mạo. Các kỹ thuật xác thực dựa trên mã hóa công khai. - Kiến trúc trung lập: Trình biên dịch của Java tạo ra một định dạng file object có kiến trúc trung lập, làm cho code sau khi biên dịch có thể chạy trên nhiều bộ vi xử lý, với sự hiện diện của Java runtime system. - Portable: Là kiến trúc trung lập và không phụ thuộc vào việc thực hiện là những đặc điểm chính nhất khi nói về khía cạnh Portable của Java.
Trình biên dịch trong Java được viết bằng ANSI C với một ranh giới portable gọn gàng, đó là một subset POSIX (giao diện hệ điều hành linh động). Điều này cho phép nhà phát triển có thể mang byte code của Java lên bất cứ nền tảng nào. - Mạnh mẽ: Java nỗ lực loại trừ những tình huống dễ bị lỗi bằng cách nhấn mạnh chủ yếu là kiểm tra lỗi thời gian biên dịch và kiểm tra runtime. - Đa luồng: Với tính năng đa luồng của Java, nhà phát triển có thể viết các chương trình có thể thực hiện nhiều tác vụ đồng thời.
Tính năng này cho phép xây dựng các ứng dụng tương tác có thể chạy trơn tru. 5 - Thông dịch: Byte code của Java được dịch trực tiếp tới các nền tảng gốc và nó không được lưu trữ ở bất cứ đâu. - Hiệu suất cao: Với việc sử dụng trình biên dịch Just-In-Time, Java cho phép thực thi với hiệu suất cao, nhanh chóng phát hiện, gỡ lỗi. - Phân tán: Java được thiết kế cho môi trường phân tán của Internet.
- Linh động: Java được coi là năng động hơn C hay C++ vì nó được thiết kế để thích nghi với môi trường đang phát triển. Các chương trình Java có thể mang theo một lượng lớn thông tin run-time, được sử dụng để xác minh và giải quyết các truy cập đến đối tượng trong thời gian chạy. Tổng quan về Spring [6] Spring Framework (hay Spring) là một cấu trúc mã nguồn mở có thể được sử dụng để phát triển các ứng dụng dành cho ngôn ngữ lập trình Java một cách dễ dàng và với tốc độ nhanh chóng. Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng lại code,… Do Spring là một mã nguồn mở, nên có cộng đồng người dùng rất lớn, luôn được phát triển, chia sẻ.
Nói cách khác, Spring giúp xử lý cơ sở hạ tầng trong khi chúng ta chỉ cần tập trung vào việc phát triển ứng dụng của mình. Có lẽ Spring Framework nổi tiếng nhất với sự cung cấp một cách hiệu quả các tính năng cần thiết để tạo ra các ứng dụng thương mại phức tạp, vượt lên khỏi các mô hình lập trình từng chiếm vị trí ưu thế trong lịch sử ngành công nghiệp phần mềm. Tiếp theo, nó cũng được ghi nhận về việc đưa các chức năng vốn ít được quen biết vào thực tế, có khi còn vượt cả ra bên ngoài nền tảng Java nữa.