ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG QUẢN LÝ DỰ ÁN TRONG TRƯỜNG ĐẠI HỌC

63 435 0
ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG QUẢN LÝ DỰ ÁN TRONG TRƯỜNG ĐẠI HỌC

Đ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

ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG QUẢN LÝ DỰ ÁN TRONG TRƯỜNG ĐẠI HỌCTrong bài khóa luận này tôi sẽ trình bày về việc xây dựng hệ thống “quản lý dự án trong trường đại học” cho trƣờng Đại học Công Nghệ Đại học Quốc Gia Hà Nội với framework Ruby On Rails. Bên cạnh việc tập trung vào việc xây dựng “hệ thống quản lý dự án trong trường đại học” tôi cũng sẽ giới thiệu về framework Ruby On Rails một Framework MVC còn khá mới mẻ nhƣng đang rất được ưa chuộng hiện nay

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Cấn Văn Nghị HỆ THỐNG QUẢN DỰ ÁN TRONG TRƢỜNG ĐẠI HỌC KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Cấn Văn Nghị HỆ THỐNG QUẢN DỰ ÁN TRONG TRƢỜNG ĐẠI HỌC KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hƣớng dẫn: TS Trần Thị Minh Châu HÀ NỘI - 2016 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY Can Van Nghi SYSTEM FOR PROJECT ADMINISTRATION IN UNIVERSITIES Major: Information Technology Supervisor: Ph.D.Tran Thi Minh Chau HA NOI - 2016 LỜI CẢM ƠN Lời đầu tiên, xin gửi lời cảm ơn sâu xắc tới cô giáo, Tiến sĩ Trần Thị Minh Châu, ngƣời tận tình hƣớng dẫn, bảo nhƣ đóng góp ý kiến quý báu để thực khóa luận Tôi xin gửi lời cảm ơn chân thành tới thầy cô giáo trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội dạy truyền đạt kiến thức quý giá cho thời gian học tập trƣờng Tôi xin cảm ơn tập thể lớp K57CLC ủng hộ, khuyên khích việc học tập tổ chức hoạt động ngoại khóa bổ ích sau buổi học Cuối cùng, xin cảm ơn gia đình bạn bè ngƣời bện cạnh giúp đỡ động viên không ngừng cố gắng, nỗ lực phấn đấu học tập Tôi xin chân thành cảm ơn ! Hà nội, ngày 26 tháng 04 năm 2016 Sinh viên Cấn Văn Nghị LỜI CAM ĐOAN Tôi xin cam đoan khóa luận tốt nghiệp thực đƣợc hƣớng dẫn Tiến sĩ Trần Thị Minh Châu Các nội dung nghiên cứu, kết đề tài trung thực chƣa công bố dƣới hình thức trƣớc Tất tài liệu tham khảo khóa luận có nguồn gốc rõ ràng đƣợc ghi danh mục tài liệu tham khảo Trong khóa luận, việc chép tài liệu, công trình nghiên cứu ngƣời khác mà không rõ tài liệu tham khảo Hà nội, ngày 26 tháng 04 năm 2016 Sinh viên Cấn Văn Nghị TÓM TẮT Tóm tắt: Ngày việc áp dụng công nghệ thông tin vào lĩnh vực đời sống trở nên phổ biến cần thiết, điều giúp cho công việc trở nên hiệu giảm chi phí nhiều Các trƣờng đại học nơi áp dụng công nghệ thông tin việc tổ chức quản đào tạo, chứng loạt hệ thống đời nhƣ: hệ thống đăng kí môn học, hệ thống quản thƣ viện, quản sinh viên Tuy nhiên có thực trạng việc sinh viên giảng viên phải tham gia vào dự án nghiên cứu khoa học hay khóa luận, luận văn tốt nghiệp ngày nhiều nhƣng lại chƣa có hệ thống hỗ trợ cho việc Việc xây dựng hệ thống quản dự án trƣờng đại học, hỗ trợ cho việc trao đổi công việc sinh viên giảng viên thật vấn đề cần đƣợc giải Trong khóa luận trình bày việc xây dựng hệ thống “quản dự án trƣờng đại học” cho trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội với framework Ruby On Rails Bên cạnh việc tập trung vào việc xây dựng “hệ thống quản dự án trường đại học” giới thiệu framework Ruby On Rails Framework MVC mẻ nhƣng đƣợc ƣa chuộm Từ khóa: Hệ thống quản dự án trường đại học, framework Ruby On Rails ABSTRACT Abstract: Up till these days, technology has been increasingly applied in most of fields, which makes it become a popularly essential part in life Technology has effect on easing the burden brought by daily work as well as expense Regard to the use of technology in universities in Vietnam, technology is a fundamental element for establishing the educational administration system The outstanding proof for this is that a series of systems made up, including systems for credit registration, library administration, student administration, and so on However, despite the fact that there is an increase on the number of scientific researches as well as graduation thesis launched by professors together with students each year, there are no system willing to support this This, seriously, leads to an urgent demand on building a system specifically working on connecting between research instructors and researchers, and smoothing the project process In my graduation thesis, I would like to demonstrate how I constructed The system for Project administration in universities in the context of The University of Engineering and Technology Besides, I also chose the framework Ruby on Rails to support for my work Therefore, my thesis focuses on two important parts: the first one is how to build up the “system for project administration in universities”; for the later, I provide you with an overview about the framework Ruby On Rails, one of updated and beloved Framework MVC these days Key words: System for Project administration in Universities, framework Ruby On Rails MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN TÓM TẮT ABSTRACT MỤC LỤC Danh sách bảng Danh sách hình vẽ Danh sách thuật ngữ từ viết tắt 10 Mở đầu 11 Chƣơng 1: Giới thiệu mô hình MVC toán quản dự án trƣờng đại học 12 1.1 Mô hình MVC Framework MVC phổ biến 12 1.1.1 Mô hình MVC 12 1.1.3 Ƣu điểm nhƣợc điểm mô hình MVC 13 1.1.5 Giới thiệu Framework MVC phát triển ứng dụng web .13 1.1.5.1 Ruby on rails 13 1.1.5.2 Spring MVC 13 1.1.5.3 Django .14 1.1.5.4 Laravel .14 1.1.5.5 Phalcon 15 1.1.6 So sánh số thành phần Framework MVC 15 1.2 Bài toán quản dự án trƣờng đại học 17 1.2.1 Hệ thống quản dự án trƣờng đại học 17 1.2.1.1 Phát biểu toán 17 1.2.1.2 Chức hệ thống 17 1.2.2 Kế hoạch phát triển hệ thống 18 Chƣơng 2: Framework Ruby On Rails 21 2.1 Ruby on rails 21 2.1.1 Giới thiệu Ruby on rails 21 2.1.2.2 Các thành phần Ruby On Rails .21 2.1.2 Phát triển dự án với Ruby On Rails .24 2.1.2.1 Cài đặt môi trƣờng phát triển .24 2.1.2.2 Ví dụ dự án Ruby on Rails .25 2.2 Viết test Ruby On Rails 29 2.2.1 Giới thiệu test Ruby On Rails 29 2.2.2 Công cụ viết test RSpec 29 2.2.2.1 Cài đặt RSpec 29 2.2.2.2 Generators rspec 30 2.2.2.3 Các loại rspec test cho Rails 30 1.2.2.4 Một số cú pháp đơn giản thƣờng đƣợc sử dụng rspec-rails 31 1.2.2.5 Các matcher thƣờng đƣợc sử dụng rspec-rails 32 1.2.2.6 Chạy rspec test .32 Chƣơng 3: Phân tích thiết kế hệ thống quản dự án trƣờng đại học 33 3.1 Phân tích thiết kế hệ thống 33 3.1.1 User story hệ thống 33 2.1.2 Use case diagram 35 2.1.3 Sequence diagram 45 3.2 Phân tích thiết kế sở liệu 48 3.2.1 Mô hình ER mô hình quan hệ 48 3.2.2 Chi tiết bảng liệu 49 3.3 Viết test cho hệ thống 55 3.4 Giao diện hệ thống .57 KẾT LUẬN 59 Tài liệu tham khảo 60 Tạo công việc: Hình 3.4: Sequence diagram tạo công việc Update công việc: Hình 3.5: Sequence diagram cập nhật công việc 46 Thêm thành viên cho dự án Hình 3.6: Sequence diagram thêm thành viên cho dự án 47 3.2 Phân tích thiết kế sở liệu 3.2.1 Mô hình ER mô hình quan hệ + Mô hình ER Hình 3.7 Mô hình ER hệ thống Mô hình quan hệ:  Ituet_user(email, name, full_name, birthday, class, subject, student_code, picture, role)  Project(id, name, start_date, end_date, status, description, project_type)  Task(id, title, description, start_date, end_date, estimated_time, spent_time, project_id, ituet_user_id)  Member_projects(ituet_user_id, project_id)  Comment(ituet_user_id, task_id, content)  Activities(ituet_user_id, task_id, activity_type, action_type, passive_ituet_user_id) 48  File_attachment(id, ituet_user_id, task_id, title, size) 3.2.2 Chi tiết bảng liệu Hình 3.8: Bảng sở liệu hệ thống + Bảng ituet_user: Lƣu thông tin ngƣời dùng hệ thống Bảng 3.17: Bảng sở liệu ituet_user Kiểu liệu Giá trị mặc định Mô tả id int(11) not null Khóa bảng liệu ituet_user email varchar(255) not null Địa email ngƣời dùng STT Tên trƣờng liệu 49 uid varchar(255) Id ngƣời dùng đƣợc cung cấp google, đƣợc lấy từ tài khoản email ngƣời sử dụng login vào hệ thống name varchar Tên ngƣời dùng, lấy từ tên tài khoản Gmail ngƣời dùng birthday date oauth_token varchar Token đƣợc cấp google ngƣời dùng xác thực thành công tài khoản gmail picture varchar(255) Lƣu link ảnh đại diện ngƣời dùng Ngày sinh ngƣời dùng Quy định quyền ngƣời dùng: role int 0: Member 1: Admin Quy định loại ngƣời dùng hệ thống: user_type int 0: Sinh viên 1: Giảng viên 10 full_name varchar null Tên đầy đủ ngƣời dùng đƣợc hiển thị hệ thống, đƣợc ngƣời dùng cập nhật 11 class_courses varchar null Lớp khóa học, đƣợc cập nhật ngƣời dùng sinh viên 12 student_code varchar null Mã sinh viên, đƣợc cập nhật ngƣời dùng sinh viên 13 subject varchar null Bộ môn giảng viên giảng dạy, đƣợc cập nhật ngƣời dùng giảng viên 14 created_at datetime Lƣu lại thời gian lúc ngƣời dùng tạo tài khoản 15 update_at datetime Thời gian ngƣời dùng cập nhật thông tin ngƣời dùng 50 + Bảng projects: Lƣu thông tin dự án ngƣời dùng hệ thống Bảng 3.18: Bảng sở liệu projects STT Tên trƣờng liệu Kiểu liệu Giá trị mặc định Mô tả id int(11) not null Vai trò khóa bảng project name varchar(255) not null Tên project ituet_user_id int description varchar(255) Id ituet_user tạo project, ngƣời chủ dự án Mô tả cho dự án Loại dự án: 0: Khóa luận project_type int 1: Luận văn 2:Nghiên cứu khoa học 3:Dự án thay khóa luận 4: Dự án khác Trạng thái dự án: 0: Dự án mở status int 1: Dự án thực 2: Dự án không xác định thời gian chờ đƣợc bắt đầu 3: Dự án hoàn thành start_date date Ngày bắt đầu dự án end_date date Ngày kết thúc dự án created_at datetime Thời gian tạo dự án 10 updated_at datetime Thời gian cập nhật dự án gần 11 customer varchar null 51 Khách hàng( có) dự án + Bảng tasks: Lƣu thông tin công việc dự án Bảng 3.19: Bảng sở liệu tasks Giá trị mặc định STT Tên trƣờng liệu Kiểu liệu id int(11) title varchar(255) description Varchar(255) null Mô tả công việc cần làm ituet_user_id Varchar(255) null Id ituet_user thực công việc Start_date date Ngày bắt đầu thực công việc end_date date Ngày kết thúc công việc estimated_time int Mô tả not null Khóa bảng task not null Tên công việc Thời gian dự kiến hoàn thành công việc, đƣợc tính Phần trăm công việc hoàn thành complete_pecent Có giá trị khoảng [1, 10], tƣơng ứng với giá trị từ 10% đến 100% int Trạng thái công việc: 0: Tạo status 1: Đang thực int 2: Đã hoàn thành 3: Đã đóng Thời gian thực thực tế cho công việc 10 spent_time int 11 created_at datetime Thời gian tạo công việc 12 update_at datetime Thời gian gần công việc đƣợc cập nhật 52 + Bảng comments: Lƣu lại ghi thành viên dự án vào công việc Bảng 3.20: Bảng sở liệu comments STT Tên trƣờng liệu Kiểu liệu Giá trị mặc định id int(11) not null Khóa bảng comment ituet_user_id int not null Id thành viên ghi task_id int not null Id công việc đƣợc ghi content varchar(255) created_at datetime Thời gian tạo ghi updated_at datetime Thời gian gần ghi đƣợc cập nhật Mô tả Not null Nội dung đƣợc ghi + Bảng member_projects: Các thành viên dự án Bảng 3.21: Bảng sở liệu member_projects Giá trị mặc định STT Tên trƣờng liệu Kiểu liệu id int(11) project_id int Id dự án ituet_user_id int Id thành viên dự án Mô tả Khóa bảng members_project + Bảng file_attachments: Tài liệu đƣợc upload công việc Bảng 3.22: Bảng sở liệu file_attachments 53 Giá trị Kiểu liệu mặc định STT Tên trƣờng liệu id int Ituet_user_id int not null Id thành viên dự án upload file Task_id int not null Id công việc chứa tài liệu upload file_attachment_file_name varchar file_attachment_content_type varchar(255) Mô tả Khóa chỉnh bảng file_attachments Tên file đƣợc upload Nội dung file Kích thƣớc file file_attachment_file_size int file_attachment_updated_at dateime Thời gian cập nhật title varchar Tiêu đề cho file + Bảng activities: Lƣu lại hoạt động thành viên dự án Bảng 3.23: Bảng sở liệu activities STT Tên trƣờng liệu Kiểu liệu Giá trị mặc định Mô tả id int(11) not null Khóa bảng liệu active_user_id int(11) not null Id thành viên gây hoạt đọng Quy định loại hoạt động: activity_type int passive_user_id int(11) null 54 0: Hoạt động công việc nhƣ: thêm, sửa, xóa công việc 1: Hoạt động thành viên dự án nhƣ thêm thành viện vào dự án Id thành viên đƣợc thêm vào dự án created_at datetime project_id int(11) Thời gian hành động xảy Id dự án Các hành động thay đổi công việc: action_type int 0: Tạo 1: Cập nhật 2: Xóa task_id int null Id công việc chịu tác động deleted_task_name varchar null Tên công việc bị xóa khỏi dự án 3.3 Viết test cho hệ thống Hệ thống sử dụng công cụ RSpec (đã đƣợc giới thiệu chƣơng 2) để viết test case cho hệ thống Các test case tập trung vào hai đối tƣợng model controller Trong đó:  Một controller đƣợc tập trung test hành vi sau: Những method đinh có đƣợc thực không kết action render xác template không, hay redirect xác hay không  Một model test hành vi: Kiểm tra hàm validate liệu có chạy hay không khóa phụ thuộc có không Bảng 3.24: Test case Use case Xem danh sách dự án Đối tƣợng test projects_controller (action: index) Tên test case GET index Kết mong đợi Hệ thống render templdate index project_controller Nhận đƣợc response code 200 từ hệ thống trả 55 Kết chạy test pass Hệ thống redirect tới template index project_controller có thông báo tạo thành công dự án pass Tạo dự án project_controller (action: create) POST create Xóa dự án project_controller (action: destroy) DELETE destroy Nhận đƣợc response code 200 từ hệ thống redirect đến template index project_controller pass Tạo dự án project_controller (action: new) GET new Render template new project_controller pass GET index Render template index tasks_controller response code 200 pass GET new Render template new tasks_controller pass POST create Nhận đƣợc response code 200 redirect đến template index tasks_controller pass POST update Redirect đến template show tasks_controller pass POST create Redirect đến template index member_project_controller pass POST create Redirect đến template new nhận đƣợc thông báo mời thành viên thành công pass Xem danh sách công việc tasks_controller Tạo công việc tasks_controller Tạo công việc tasks_controller Cập nhật công việc tasks_controller Thêm thành viên vào dự án member_projects Mời thành viên vào hệ thống Invites_controllers Tạo dự án projects name is invalid Nhận đƣợc thông báo lỗi pass Tạo công việc task title is invalid Nhận đƣợc thông báo lỗi đối tƣợng task pass Tạo ghi comments content is blank Nhận đƣợc thông báo lỗi trƣờng content pass (action: index) (action: new) (action: create) (action: update) (action : create) (action:create) 56 Tổng kết: Bộ test case phủ đƣợc 70% luồng use case hệ thống 3.4 Giao diện hệ thống Hình 3.8: Giao diện thông tin dự án Hình 3.9 Giao diện danh sách công việc 57 Hình 3.10: Giao diện thêm công việc Hình 3.11: Giao diện xem chi tiết mộ công việc 58 KẾT LUẬN Kết đạt đƣợc khóa luận Trong khóa luận này, giới thiệu đặc điểm bật việc viết test framework Ruby On Rails Từ toán đặt ra, xây dựng sở liệu phân tích thiết kế hệ thống “quản dự án trƣờng đại học” để hỗ trợ cho sinh viên trƣờng Đại học Công Nghệ việc tƣơng tác, quản dự án Đồng thời, khóa luận hoàn thành hệ thống mặt cài đặt hệ thống đƣợc chạy thử server heroku4 Vì thời gian có hạn nên việc phát triển thêm chức hữu ích cho hệ thống chƣa đƣợc hoàn thiện, test case chƣa phủ hết 100% luồng use case hệ thống, sở liệu tài liệu phân tích thiết kế hệ thống thiết kế chƣa đƣợc đánh giá tƣ vấn Định hƣớng tƣơng lai Hệ thống quản dự án trƣờng đại học đề xuất cần đƣợc cải tiến để hệ thống hoạt động tốt Cụ thể, phát triển thêm chức nhƣ:  Cho phép tạo công việc công việc từ giúp cho ngƣời dùng quản công việc cách hiệu  đƣa cảnh báo nhắc nhở thành viên công việc vƣợt thời gian cho phép  Gửi email thông báo cho ngƣời dùng có thay đổi dự án  Chuyển việc upload file lên cloud để giảm tải cho server  Đƣa thống kê chi tiết công việc vƣợt thời gian cho phép thành viên thực công việc vƣợt thời gian Về lâu dài, tiến hành chạy thử hệ thống môi trƣờng thực tế, trƣờng Đại học Công Nghệ để nhận đƣợc đóng góp nhằm cải thiện chất lƣợng hệ thống https://dashboard.heroku.com/ 59 Tài liệu tham khảo [1] https://en.wikipedia.org/wiki/Comparison_of_web_frameworks [2] Yehuda Katz, Steve Klabnik and Rebecca Skinner Ryan Bigg, Rails in action., 2015 [3] https://techmaster.vn, [4] http://adrianmejia.com/blog/2011/08/11/ruby-on-rails-architectural-design/ [5] http://edgeguides.rubyonrails.org/index.html 60 ... toán quản lý dự án trƣờng đại học 1.2.1 Hệ thống quản lý dự án trƣờng đại học 1.2.1.1 Phát biểu toán Hiện trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội việc sinh viên tham gia vào dự án. ..ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Cấn Văn Nghị HỆ THỐNG QUẢN LÝ DỰ ÁN TRONG TRƢỜNG ĐẠI HỌC KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hƣớng... trung vào việc xây dựng hệ thống quản lý dự án trường đại học giới thiệu framework Ruby On Rails Framework MVC mẻ nhƣng đƣợc ƣa chuộm Từ khóa: Hệ thống quản lý dự án trường đại học, framework Ruby

Ngày đăng: 27/06/2017, 01:39

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan