mở đầu bằng việc khảo sát thực trạng, tìm hiểu những vấn đề của quy trình thực hiện khóa luận hiện tại ở Khoa Công nghệ Phần mềm UIT. Trong quá trình nghiên cứu nghiệp vụ, tác giả đã nhận được sự giúp đỡ từ các Giảng viên và Cán bộ của Khoa, giúp hiểu rõ hơn về quy trình và các vấn đề hiện có cũng như nhận được những góp ý về phân tích thiết kế của mình, từ đó rút ra được những mục tiêu, chức năng của đề tài. Sau khi tìm hiểu, nghiên cứu nghiệp vụ và xác định được những tính năng cần thiết, ứng dụng được xây dựng qua từng công đoạn Xây dựng đặc tả yêu cầu, Usecase, thiết kế sơ đồ lớp và Cơ sở dữ liệu, thiết kế wireframe sử dụng công cụ Figma. Trong quá trình xây dựng, client và server cũng như nghiên cứu các thư viện, framework như Google Drive API, mongoose Paginate v2, React Quill, Recoil được thực hiện song song với nhau.
Cuối cùng, ứng dụng được triển khai trên Heroku. Kết quả của quá trình thực hiện được tổng hợp lại vào báo cáo tổng kết, đưa ra kết luận và hướng phát triển cho ứng dụng trong tương lai. Giới thiệu đề tài Ngày nay, với sự phát triển nhanh chóng của công nghệ, thói quen làm việc và vận hành của các công ty, cơ quan, trường học cũng dần thay đổi để bắt kịp sự chuyển mình ấy. Các dữ liệu ngày nay dần được số hóa và các quy trình cũng được chuẩn hóa bằng các phần mềm quản lý nhằm đem lại độ chính xác và tốc độ cao hơn.
Với một quy trình phức tạp và đòi hỏi độ chính xác như quy trình thực hiện khóa luận tốt nghiệp, việc áp dụng xu hướng này chắc chắn cũng sẽ đem lại hiệu quả cao, giảm bớt công việc cho các cán bộ nhà trường cũng như sinh viên. Quy trình thực hiện Khóa luận là một quy trình phức tạp với nhiều giai đoạn, nhiều bên tham gia và đòi hỏi sự chính xác. Tuy nhiên, hiện nay ở khoa Công nghệ Phần mềm UIT, quy trình hiện nay đang được thực hiện hầu hết là thủ công, không có sự trợ giúp của phần mềm quản lý nào, từ đó dẫn đến việc đặt nhiều gánh nặng lên giáo viên với những vấn đề như phải duyệt sheet một cách thủ công, khó quản lý được đề tài đã được đăng ký trong quá khứ chưa, khó quản lý được việc phân hội đồng và thời gian phản biện. Nhận ra những khó khăn và bất cập trên, để hỗ trợ Cán bộ Khoa cũng như các bạn sinh viên trong quá trình thực hiện Khóa luận, đề tài đã được lên ý tưởng và thực hiện.
Lý do chọn đề tài Trong quá trình tìm hiểu về Quy trình thực hiện Khóa luận, tác giả nhận thấy đây là một Quy trình phức tạp mà sẽ rất khó khăn cho các cán bộ của Khoa để thực hiện mà không có sự trợ giúp của một công cụ quản lý nào. Bên cạnh đó, ở phía sinh viên, việc theo dõi tin tức liên quan đến khóa luận cũng không dễ dàng vì thông tin không được tổng hợp thống nhất ở một kênh thông tin nào. Sinh viên phải theo dõi ở nhiều nơi như phòng kế hoạch tài chính, cổng thông tin sinh viên, cổng thông tin 2 của khoa,… để không bỏ lỡ giai đoạn nào trong quá trình đăng ký và thực hiện khóa luận. Với mong muốn giải quyết được phần nào những vấn đề nêu trên, tác giả đã chọn thực hiện đề tài Xây dựng phần mềm Quản lý Quy trình thực hiện Khóa luận tốt nghiệp, với mong muốn có thể phần nào giúp đỡ các quý thầy cô giảm bớt khối lượng công việc của mình, cũng như cung cấp cho các bạn sinh viên một kênh thông tin thống nhất để dễ dàng theo dõi tin tức, giúp các bạn yên tâm hơn trong quá trình thực hiện khóa luận tốt nghiệp.
TỔNG QUAN ĐỀ TÀI 2. Mục tiêu Xây dựng ứng dụng hỗ trợ Giảng viên, Cán bộ khoa có thể dễ dàng thực hiện các công việc Quản lý Sinh viên thực hiện Khóa luận, quá trình đề xuất, đăng ký và thực hiện đề tài cũng như quá trình phản biện và chấm đề tài. Giúp Sinh viên dễ dàng theo dõi các thông tin quan trọng liên quan đến khóa luận, đăng ký đề tài, nộp file và ghi lại quá trình thực hiện đề tài. Phạm vi Ứng dụng sẽ được triển khai trên môi trường Web.
Ứng dụng sẽ có những tính năng: ● Quản lý thông tin Sinh viên thực hiện khóa luận, Giảng viên hướng dẫn. ● Quản lý quá trình đề xuất, xét duyệt, thay đổi thông tin đề tài. ● Hỗ trợ Cán bộ khoa đăng thông báo, quản lý các file nộp của Sinh viên, Giảng viên. ● Quản lý Hội đồng chấm.
● Giảng viên có thể thực hiện đề xuất Đề tài, nộp file bằng cách tương tác trực tiếp với bài đăng thông báo. ● Tương tự, Sinh viên có thể thực hiện đăng ký Đề tài, nộp file dễ dàng bằng cách tương tác trực tiếp với bài đăng thông báo. ● Sinh viên có thể ghi lại quá trình thực hiện khóa luận của mình để dễ dàng theo dõi. Phương pháp thực hiện Tìm hiểu Quy trình triển khai và thực hiện Khóa luận tốt nghiệp hiện nay ở Khoa Công nghệ Phần mềm UIT.
4 Sau khi tìm hiểu, rút ra những điểm hạn chế cần cải thiện, từ những điểm đó rút ra những tính năng cơ bản mà một ứng dụng Quản lý Quy trình thực hiện Khóa luận tốt nghiệp cần có. Tìm hiểu các công nghệ cần thiết để hoàn thiện ứng dụng: React cho Front-end, NodeJS cho back-end và MongoDB cho Cơ sở dữ liệu. Kết quả mong đợi Rèn luyện tính độc lập, chủ động. Biết lên kế hoạch và quản lý thời gian.
Vận dụng những kiến thức đã được học cũng như học hỏi thêm nhiều công nghệ mới, giúp bản thân phát triển. Ứng dụng làm ra hoàn thiện, đủ các tính năng đã đặt ra, UI/UX tốt mang lại trải nghiệm tốt cho người dùng. Dễ dàng bảo trì, mở rộng, có khả năng đưa vào thực tiễn. Hiện trạng Thực hiện Khóa luận là một cột mốc rất quan trọng của một Sinh viên, nó đánh giá kết quả thu được trong quá trình học tập của Sinh viên cũng như trau dồi những kỹ năng đã có để chuẩn bị cho tương lai.
Chính vì vậy, công việc quản lý quy trình này cũng rất quan trọng. Với sự giúp đỡ của thầy cô Khoa trong việc điều tra nghiệp vụ, tác giả nhận thấy hiện nay ở Khoa Công nghệ Phần mềm UIT, công việc Quản lý Quy trình Thực hiện Khóa luận hầu hết được thực hiện thủ công. Việc Giảng viên đề xuất Đề tài hay Sinh viên đăng ký Đề tài được thực hiện bằng cách điền vào file excel. Sau đó, Cán bộ Khoa sẽ phải tổng hợp các thông tin này một cách thủ công.
Tương tự, các công việc xuất báo cáo cũng được thực hiện thủ công như vậy. Phải xử lý tay một lượng thông tin nhiều và đòi hỏi sự chính xác cao như vậy là một công việc rất vất vả cho các thầy cô của Khoa. Ví dụ về một file Excel biểu mẫu Khóa luận Tốt nghiệp1 Bên cạnh đó, phương pháp nộp file hiện nay là người nộp sẽ đặt tên file theo format và nộp lên một thư mục Google Drive public. Cách này tuy tiện lợi nhưng cũng có khả năng xảy ra các sự cố như xóa nhầm file, đổi tên nhầm file.vn/images/thongbao/Bieu%20mau%20KLTN%202020.
Một thư mục nộp file thường thấy2 Như vậy, cần thiết phải xây dựng một ứng dụng giúp tự động hóa một phần của công việc Quản lý Quy trình thực hiện Khóa luận. Ứng dụng sẽ hỗ trợ việc tổng hợp, lưu trữ thông tin và xuất báo cáo, giúp việc thực hiện quy trình được dễ dàng hơn.com/drive/u/2/folders/1cD11bk0SJS6Xx0t65xTMvhaB_Oe7gjQj 7 Chương 3. CÔNG NGHỆ SỬ DỤNG 3. ReactJs3 ReactJs là một thư viện JavaScript được dùng trong phát triển web để xây dựng giao diện của websites.
Trước thời kỳ của ReactJs, các lập trình viên đa phần phải xây dựng UI bằng HTML, JavaScript thuần cùng với các thư viện như jQuery. Điều này khiến cho thời gian phát triển lâu hơn và dễ xuất hiện lỗi và bug. Vào năm 2011, một kỹ sư của Facebook là Jordan Walke đã phát triển ReactJS để giải quyết vấn đề trên. React cung cấp cho lập trình viên khả năng gói các thành phần giao diện thành các component để dễ dàng tái sử dụng cũng như giúp quá trình sửa lỗi được nhanh hơn.
React có hai tính năng chính khiến công nghệ này thu hút các lập trình viên JavaScript: JSX và Virtual DOM. JSX Thành phần chính của các website là HTML, các trình duyệt web sẽ đọc HTML và hiển thị trang web lên máy tính, điện thoại,. Trong quá trình này, trình duyệt tạo nên một dạng cây dữ liệu gọi là DOM (Document Object Model) để thể hiện bố cục của các thành phần trang web. Các lập trình viên sau 3 https://logos-download.com/9747-react-logo-download.html 8 đó có thể điều khiển các thành phần này để đưa dữ liệu động vào trang web bằng JavaScript.
JSX (JavaScriptXML) là một dạng cú pháp mở rộng cho JavaScript, được viết theo dạng XML. Mã lệnh JSX sẽ được chuyển thành JavaScript nên nó được hỗ trợ trên tất cả các trình duyệt. Sử dụng JSX không chỉ tiện lợi mà còn giúp công việc update DOM hiệu quả hơn nhờ vào Virtual DOM. Virtual DOM Một trang web được viết bằng HTML, JavaScript thuần sẽ dùng HTML để cập nhật DOM.
Đối với những trang web tĩnh và đơn giản thì không có vấn đề gì nhưng với những trang web động và đòi hỏi tương tác với người dùng nhiều thì việc này có thể ảnh hưởng lớn đến hiệu suất vì mỗi lần thay đổi một thành phần thì cả DOM sẽ phải reload. Đối với ReactJs, nếu lập trình viên sử dụng JSX để điều khiển và cập nhật DOM, ReactJS sẽ tạo một bản copy của DOM gọi là Virtual DOM và sử dụng bản copy này để xác định chính xác thành phần nào cần phải cập nhật và chỉ cập nhật đúng thành phần đó. Tính năng này làm cho công việc update DOM tốn ít thời gian và chi phí tính toán hơn, dẫn đến sự cải thiện đáng kể nếu áp dụng cho những trang web lớn. Ngoài những điểm mạnh cơ bản trên, ReactJS còn có hệ sinh thái đa dạng, với rất nhiều các thư viện và tiện ích được phát triển để hỗ trợ cho công nghệ này.
Cộng đồng lập trình viên ReactJS cũng rất lớn mạnh, khiến cho việc tìm kiếm giải đáp cho những thắc mắc, lỗi trên các trang web như StackOverFlow là rất dễ dàng. Cùng với đó là sự chống lưng của công ty lớn như Facebook, có thể chắc chắn rằng, trong tương lai ReactJS sẽ còn phát triển hơn nữa. MongoDB4 MongoDB là một cơ sở dữ liệu lưu data dưới dạng JSON document được phát triển bằng ngôn ngữ C++.