1. Trang chủ
  2. » Công Nghệ Thông Tin

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

63 438 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 1,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐỒ Á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

Trang 1

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

Trang 2

ĐẠ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

HÀ NỘI - 2016

Trang 3

VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Can Van Nghi

SYSTEM FOR PROJECT ADMINISTRATION IN

UNIVERSITIES

HA NOI - 2016

Trang 4

1

LỜI CẢM ƠN

Lời đầu tiên, tôi xin gửi lời cảm ơn sâu xắc nhất tới cô giáo, Tiến sĩ Trần Thị

Minh Châu, người đã tận tình hướng dẫn, chỉ bảo cũng như đóng góp những ý kiến

quý báu để tôi có thể thực hiện khóa luận này

Tôi cũng xin gửi lời cảm ơn chân thành tới các thầy cô giáo trường Đại học Công

Nghệ - Đại học Quốc Gia Hà Nội đã chỉ dạy và truyền đạt những kiến thức quý giá

cho tôi trong thời gian tôi học tập tại trường

Tôi xin cảm ơn tập thể lớp K57CLC đã luôn ủng hộ, khuyên khích tôi trong việc

học tập và tổ chức những hoạt động ngoại khóa bổ ích sau những buổi học

Cuối cùng, tôi xin cảm ơn gia đình và bạn bè những người luôn ở bện cạnh giúp

đỡ và động viên tôi không ngừng cố gắng, nỗ lực phấn đấu trong 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ị

Trang 5

2

LỜI CAM ĐOAN

Tôi xin cam đoan khóa luận tốt nghiệp này do chính tôi thực hiện và được sự hướng dẫn của Tiến sĩ Trần Thị Minh Châu Các nội dung nghiên cứu, kết quả trong

đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây

Tất cả các tài liệu tham khảo trong khóa luận đều có nguồn gốc rõ ràng được ghi trong danh mục tài liệu tham khảo Trong khóa luận, không có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về 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ị

Trang 6

3

TÓM TẮT

Tóm tắt: Ngày nay việc áp dụng công nghệ thông tin vào các lĩnh vực trong đời sống

đã trở nên rất phổ biến và cần thiết, điều này giúp cho công việc trở nên hiệu quả và giảm chi phí đi rất nhiều Các trường đại học cũng là một nơi đã và đang áp dụng công nghệ thông tin trong việc tổ chức và quản lý đào tạo, bằng chứng là một loạt các hệ thống đã ra đời như: hệ thống đăng kí môn học, hệ thống quản lý thư viện, quản lý sinh viên Tuy nhiên có một thực trạng hiện nay là việc sinh viên và giảng viên phải tham gia vào các dự án nghiên cứu khoa học hay khóa luận, luận văn tốt nghiệp ngày càng nhiều nhưng lại chưa có một hệ thống nào hỗ trợ cho việc này Việc xây dựng một hệ thống quản lý dự án trong trường đại học, hỗ trợ cho việc trao đổi công việc giữa các sinh viên và giảng viên thật sự là một vấn đề cần được giải quyết

Trong 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ộm hiện nay

Từ khóa: Hệ thống quản lý dự án trong trường đại học, framework Ruby On Rails

Trang 7

4

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

Trang 8

5

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

TÓM TẮT 3

ABSTRACT 4

MỤC LỤC 5

Danh sách bảng 8

Danh sách hình vẽ 9

Danh sách thuật ngữ và từ viết tắt 10

Mở đầu 11

Chương 1: Giới thiệu về mô hình MVC và bài toán quản lý dự án trong trường đại học 12

1.1 Mô hình MVC và các Framework MVC phổ biến 12

1.1.1 Mô hình MVC 12

1.1.3 Ưu điểm và nhược điểm của mô hình MVC 13

1.1.5 Giới thiệu về các Framework MVC trong 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 một số thành phần các Framework MVC 15

1.2 Bài toán quản lý dự án trong trường đại học 17

1.2.1 Hệ thống quản lý dự án trong trường đại học 17

1.2.1.1 Phát biểu bài toán 17

1.2.1.2 Chức năng chính của hệ thống 17

Trang 9

6

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 về Ruby on rails 21

2.1.2.2 Các thành phần chính của 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ụ về một dự án Ruby on Rails 25

2.2 Viết test trong Ruby On Rails 29

2.2.1 Giới thiệu về test trong 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 trong rspec 30

2.2.2.3 Các loại rspec test cơ bản cho Rails 30

1.2.2.4 Một số cú pháp đơn giản thường được sử dụng trong rspec-rails 31

1.2.2.5 Các matcher thường được sử dụng trong 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 lý dự án trong trường đại học 33

3.1 Phân tích và thiết kế hệ thống 33

3.1.1 User story của 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ế cơ sở dữ liệu 48

3.2.1 Mô hình ER và mô hình quan hệ 48

3.2.2 Chi tiết các bảng dữ liệu 49

3.3 Viết test cho hệ thống 55

3.4 Giao diện hệ thống 57

Trang 10

7

KẾT LUẬN 59 Tài liệu tham khảo 60

Trang 11

8

Danh sách bảng

Bảng 1.2 So sánh thành phần các Framework 15

Bảng 3.1: User story của hệ thống 33

Bảng 3.2 Use case tạo dự án 35

Bảng 3.3: Use case cập nhật thông tin dự án 36

Bảng 3.4 Use case xóa dự án 36

Bảng 3.5 Use case thêm công việc 37

Bảng 3.6: Use case chỉnh sửa công việc 38

Bảng 3.7 Use case xóa công việc 39

Bảng 3.8 Use case xem danh sách công việc 39

Bảng 3.9: Use case thêm thành viên trong hệ thống vào dự án 40

Bảng 3.10 Use case chỉnh sửa thông tin cá nhân 40

Bảng 3.11 Use case xem thống kê 41

Bảng 3.12 Use case upload file 41

Bảng 3.13: Use case thêm thành viên ngoài hệ thống vào dự án 42

Bảng 3.14 Use case mời thành viên vào hệ thống 43

Bảng 3.15 Use case xem danh sách người dùng trong hệ thống 44

Bảng 3.16: Use case xóa người dùng khỏi hệ thống 44

Bảng 3.17: Bảng cơ sở dữ liệu ituet_user 49

Bảng 3.18: Bảng cơ sở dữ liệu projects 51

Bảng 3.19: Bảng cơ sở dữ liệu tasks 52

Bảng 3.20: Bảng cơ sở dữ liệu comments 53

Bảng 3.21: Bảng cơ sở dữ liệu member_projects 53

Bảng 3.22: Bảng cơ sở dữ liệu file_attachments 53

Bảng 3.23: Bảng cơ sở dữ liệu activities 54

Bảng 3.24: Test case 55

Trang 12

9

Danh sách hình vẽ

Hình 1.1: dự án trên trello 19

Hình 2.1: Kiến trúc ruby on rails 23

Hình 2.2: Cấu trúc dự án Ruby On Rails 25

Hình 2.3: kết quả khi chạy ứng dụng hello_rails 27

Hình 2.4: homes_controller.rb 28

Hình 2.5: Kết quả khi chạy ứng dụng 28

Hình 3.1 Use case diagram 35

Hình 3.2: Sequence diagram tạo mới dự án 45

Hình 3.3: Sequence diagram cập nhật dự án 45

Hình 3.4: Sequence diagram tạo công việc 46

Hình 3.5: Sequence diagram cập nhật công việc 46

Hình 3.6: Sequence diagram thêm thành viên cho dự án 47

Hình 3.7 Mô hình ER của hệ thống 48

Hình 3.8: Bảng cơ sở dữ liệu của hệ thống 49

Hình 3.9: Giao diện thông tin dự án 57

Hình 3.10 Giao diện danh sách công việc 57

Hình 3.11: Giao diện thêm công việc 58

Hình 3.12: Giao diện xem chi tiết mộ công việc 58

Trang 13

10

Danh sách thuật ngữ và từ viết tắt

Tiếng Anh/Tên viết tắt Tiếng Việt/Cụm từ đầy đủ

Trang 14

11

Mở đầu

Trong bối cảnh hiện nay, khi mà công nghệ thông tin ngày càng phát triển một

cách mạnh mẽ Việc các trường đại học áp dụng công nghệ thông tin vào quản lý đào

tạo và giúp đỡ sinh viên trong quá trình học tập ngày càng nhiều Đại học Công Nghệ -

Đại học Quốc Gia Hà Nội là một trong những trường đi đầu trong việc áp dụng công

nghệ thông tin vào quá trình đào tạo Một loạt các hệ thống công nghệ thông tin trợ

giúp sinh viên trong việc học tập như: hệ thống đăng kí môn học, hệ thống quản lý đào

tạo, hệ thống quản lý lớp môn học, hệ thống quản lý sách thư viện, đã được xây

dựng, bên cạnh đó còn có một số trang web phục vụ cho việc tra cứu tài liệu do sinh

viên tự phát triển Tuy các hệ thống kể trên còn nhiều những bất cập nhưng chúng ta

không thể phủ nhận những lợi ích to lớn mà nó mang lại cho nhà trường và sinh viên

Nhận thấy lợi ích to lớn từ các hệ thống hỗ trợ học tập Khóa luận sẽ tham gia

vào việc phát triển hệ thống “ quản lý dự án trong trường đại học” Đây là một hệ

thống còn khá mới mẻ trong việc hỗ trợ sinh viên và giảng viên quản lý các công việc

trong các dự án

Nội dung khóa luận sẽ được tổ chức thành bốn chương với nội dung cụ thể của

mỗi chương được giới thiệu như dưới đây

Chương 1: Giới thiệu chung về mô hình MVC trong phát triển ứng dụng web,

một số Framework MVC phổ biến, so sánh các thành phần chính giữa các Framework

MVC và giới thiệu về bài toán xây dựng hệ thống quản lý dự án trong trường đại học

cùng với quy trình xây dựng

Chương 2: Giới thiệu về Ruby On Rails, là framework MVC được sử dụng

trong việc phát triển hệ thống quản lý dự án trong trường đại học Khóa luận giới thiệu

qua về các thành phần cơ bản của Rails và việc viết test với ứng dụng Rails

Chương 3: Phân tích và thiết kế hệ thống quản lý dự án trong trường đại học và

xây dựng cơ sở dữ liệu cho hệ thống, xây dựng bộ test case kiểm thử cho hệ thống

Trang 15

1.1.2 Cấu trúc của mô hình MVC

Model: Tầng Model xử lý các nghiệp vụ của ứng dụng và trực tiếp thao tác với

dữ liệu Trong ứng dụng web, tầng model thường được sử dụng để tương tác với các thành phần tương ứng với chúng trong cơ sở dữ liệu và kiểm tra tính hợp lệ của dữ liệu

View: Tầng view được dùng để hiển thị dữ liệu trong model thành các giao diện

tương tác với người dùng Trong mô hình MVC cho phát triển ứng dụng web các view thường sẽ là các file HTML được nhúng với code của ngôn ngữ server

Controller: Controller Controller tương tác với model và view Các request đến

từ trình duyệt sẽ được xử lý bởi controller, controller sẽ phân, xử lý request và có thể

sẽ tương tác với model để lấy dữ liệu sau đó trả về cho view để hiển thị thông tin

Hình 1.1 Mô hình MVC

Trang 16

13

1.1.3 Ưu điểm và nhược điểm của mô hình MVC

Ưu điểm: áp dụng mô hình MVC giúp cho việc phát triển phần mềm chuyên nghiệp hơn, có thể phân chia công việc dễ dàng cho nhiều nhóm, giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp giúp phát hiện lỗi và dễ sửa lỗi

Nhược điểm: MVC chỉ thích hợp với dự án lớn còn đối với dự án nhỏ việc áp dụng mô hình MVC sẽ gây cồng kềnh tốn thời gian trong quá trình phát triển, chí phí cho việc phát triển cao

1.1.5 Giới thiệu về các Framework MVC trong phát triển ứng dụng web

1.1.5.1 Ruby on rails

 Giới thiệu

Ruby on rails là một framework MVC được viết bằng ngôn ngữ Ruby, nó được tạo ra nhằm hỗ trợ các lập trình viên có thể phát triển ứng dụng web một cách nhanh nhất bằng cách sử dụng các qui ước triệt để và đảm nhận xử lý rất nhiều công việc như: việc tạo code, quản lý code, quản lý việc gửi email, Vì vậy các lập trình viên sẽ không cần quan tâm đến các công việc này

 Ưu điểm và nhược điểm của Ruby on Rails

Ưu điểm: Rails giúp cho việc phát triển ứng dụng web trở nên nhanh chóng, hơn nữa những ứng dụng viết bằng rails thường có số lượng dòng code ngắn gọn, rõ ràng,

dễ hiểu giúp cho ứng dụng dễ bảo trì, rails được hỗ trợ bởi một hệ thống các thư việc rất lớn

Nhược điểm: Ứng dụng được phát triển bằng rails có tốc độ thực thi không quá nhanh, thậm trí còn nặng hơn nhiều so với các framework MVC khác như Nodejs, Yii, lavarel

1.1.5.2 Spring MVC

 Giới thiệu

Spring MVC là một module con trong Spring framework, được phát triển dựa trên ngôn ngữ java và theo kiến trúc MVC, nó cung cấp các components có sẵn để sử dụng và phát triển ứng dụng web một cách nhanh chóng và linh hoạt

 Ưu điểm và nhược điểm của Spring MVC

Trang 17

1.1.5.3 Django

 Giới thiệu về Django

Django là một web framework rất mạnh được phát triển dựa trên ngôn ngữ lập trình python và theo mô hình MVC, nó được đưa vào sử dụng rộng rãi từ năm 2005, ban đầu là một framework hướng đối tượng cho một website của tờ báo ở Kansas Ngay lập tức framework này được phổ biến và phát triển rất mạnh Django rất thích hợp để xây dựng nên các trang web lớn Đó là lí do tại sao Django đang dần được phổ biến nhằm triển khai các dự án một cách nhanh chóng với những quy mô lớn

 Ưu điểm và nhược điểm của Framework Django

Ưu điểm: Do được phát triển dựa trên ngôn ngữ Python nên Django có tốc độ sử

lý nhanh Django hỗ trợ bạn tạo trang admin tùy thuộc vào database, đây dường như là Framework duy nhất làm được điều này

Nhược điểm: Việc tiếp cận với Django tương đối khó do cộng đồng phát triển của framework này còn hạn chế hơn so với các framework PHP

1.1.5.4 Laravel

 Giới thiệu về laravel

Laravel là một framework khá mới mẻ nhưng bù lại nó có tài liệu khá đầy đủ, rõ ràng, dễ hiểu và nhiều ưu điểm hấp dẫn Nếu bạn đã từng làm việc với các framework khác hoặc chỉ là người mới bắt đầu tìm hiểu php framework thì việc tiếp cận laravel framework không phải là vấn đề khó khăn gì

Laravel giúp bạn nhanh chóng tạo ra một trang web, giúp bạn tiết kiệm được nhiều thời gian và quan trọng là tạo cho bạn hứng thú hơn với công việc lập trình web Laravel đã làm rung chuyển tới giới lập trình PHP trên toàn thế giới bởi sự nhanh chóng, đơn giản, chặt chẽ, hiện nay nó đang là một framework được ưa chuộm và được sử dụng phổ biến nhất

Trang 18

15

 Ưu điểm và nhược điểm

Ưu điểm: Laravel có cộng đồng phát triển đông đảo, tài liệu rất đầy đủ và dễ đọc giúp cho việc tiếp cận framework trở nên dễ dàng hơn, các lệnh tương tác với cơ sở dữ liệu cực kì ngắn gọn và thân thiện, dễ dàng tích hợp các thư viện vào dự án

Nhược điểm: Laravel có số lượng module rất lớn dẫn đến tốc độ không được tối

ưu khi xây dựng những hệ thống nhỏ

1.1.5.5 Phalcon

 Giới thiệu về phalcon

Phalcon là một framework mã nguồn mở, tuy là một framework hỗ trợ cho PHP nhưng nó lại được viết bằng ngôn ngữ C và biên dịch ra extension, phalcon rất linh hoạt và mềm dẻo nên chúng ta có thể dễ dàng tùy biến với hiệu năng thực thi rất nhanh

 Ưu điểm và nhược điểm của Framework Phalcon

Ưu điểm: Phalcon là một thư viên có tính năng rất phong phú được viết bằng C biên dịch thành một PHP Extension Điều này giúp tăng tốc độ xử lý, giảm tối đa bộ nhớ tiêu thụ khi có nhiều truy cập đồng thời Phalcon dễ học, dễ lập trình, lập trình viên vẫn dùng ngôn ngữ lập trình PHP thông thường Những hàm trong thư viện Phalcon sẽ được tối ưu tốc độ

Nhược điểm: Phalcon không chạy được trên môi trường Shared Hosting PHP chưa hỗ trợ Websocket thực sự, mặc dù có tốc độ thực thi đáng kinh ngạc tuy nhiên phalcon lại có lượng thư viện hỗ trợ ít hơn so với Ruby on rails, Laravel và cộng đồng người phát triển không cao

Trang 19

16

Ajax Prototye,

JQuery, JQuery UI, Plugins

Hỗ trợ nhiều

MVC

Framework

Active record, action pack

Mock object, unit tests

ACL-based, RBAC – based, plugin

Template

JSP, commons Tiles, Velocity, Thymeleaf

Built – in, Jinja2, Mako, Cheetal

PHP – based, plugin

Trang 20

17

Caching

APC, redis, Memcache From validation

Bean

1.2 Bài toán quản lý dự án trong trường đại học

1.2.1 Hệ thống quản lý dự án trong trường đại học

1.2.1.1 Phát biểu bài toán

Hiện nay trong 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 các dự án như nghiên cứu khoa học, khóa luận tốt nghiệp, đồ án tốt nghiệp hay chỉ đơn giản là tham gia làm bài tập lớn trên lớp, những công việc đòi sự tương tác giữa nhiều sinh viên và giảng viên trở nên rất phổ biến, tuy nhiên những công việc này lại đang gặp rất nhiều khó khăn như việc tương tác giữa các thành viên trong một dự án hay giữa giảng viên và sinh viên, việc quản lý các công việc và hỗ trợ các thành viên đạt kết quả không cao Vì vậy, hệ thống quản lý dự án trong trường học được triển khai để giải quyết những vấn đề trên, nhằm giúp cho việc quản lý các công việc trong dự án được dễ dàng, việc tương tác trao đổi , lưu trữ tài liệu đạt hiệu quả, giúp chất lượng đào tạo tăng cao

1.2.1.2 Chức năng chính của hệ thống

 Hệ thống cho phép người dùng tạo dự án và thêm các thành viên vào trong dự

án hoặc mời thành viên chưa có trong hệ thống qua gmail

 Xem thông tin về dự án đang tham gia, chủ dự án có thể cập nhật thông tin hoặc xóa dự án

 Cho các thành viên tạo các công việc và quản lý các công việc (tạo mới , sửa, xóa, cập nhật)

 Các thành viên có thể xem danh sách tất cả các công việc từ đó có thể dễ dàng quản lý các công việc

 Lọc ra các công việc theo người thực hiện hoặc trạng thái của công việc đó

 Lưu lại lịch sử người dùng khi một thành viên thực hiện chỉnh sửa , tạo mới hay xóa một công việc và tất cả thành viên có thể xem lịch sử đã được lưu lại

Trang 21

 Lý do chọn framework ruby on rails để phát triển

Hiện nay có rất nhiều các Framework mạnh trong phát triển ứng dụng Web, tuy nhiên tôi lựa chọn Ruby on Rails cho việc phát triển hệ thống quản lý dự án trong trường đại học vì Rails là một Framework còn khá mới, mạnh mẽ với những ưu điểm như: Ruby on Rails sử dụng ngôn ngữ ruby là một ngôn ngữ với cú pháp trong sáng,

dễ đọc, dễ hiểu và là ngôn ngữ hướng đối tượng, việc phát triển ứng dụng với Rails rất nhanh chóng và ứng dụng được viết với số lượng dòng code ngắn gọn, rất dễ bảo trì,

hỗ trợ nhiều framework cho việc viết test như unit test, integration test, hệ thống phát triển bởi Rails sẽ đảm bảo về mặt chất lượng

 Mô hình Agile trong phát triển phần mềm

Phương thức phát triển phần mềm Agile là một tập các phương thức phát triển lặp trong đó các yêu cầu và giải pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng Agile là cách làm phần mềm linh hoạt để làm sao đưa sản phẩm đến tay người dùng càng nhanh càng tốt và được xem như là sự cải tiến so với những mô hình cũ như thác nước

Hệ thống “quản lý dự án trong trường đại học” sẽ được phát triển dựa trên phương thức phát triển phần mềm Agile, Giảng viên hướng dẫn khóa luận sẽ đóng vai trò là khách hàng và đưa ra các “user story” là những kịch bản người dùng mong muốn trong hệ thống, hệ thống sẽ được phát triển qua từng “user story” và dần hoàn thiện hệ thống

 Công cụ quản lý công việc Trello

Trello là một công cụ để phối hợp công việc hiệu quả giúp cho mọi người trong đội

dự án có thể tương tác và quản lý các công việc trong dự án một cách hiệu quả, các

Trang 22

19

thành viên chỉ cần nhìn qua là biết được có những đầu việc nào, ai đang làm gì, và làm đến giai đoạn nào Bạn có thể sử dụng trello một cách miễn phí cho đến khi cần những tích năng nâng cao và đặc biệt chỉ có bản trả tiền mới có thì bạn mới phải trả, trong dự

án này tôi sử trello để quản lý các kịch bản người dùng mong muốn trong hệ thống Trello có những thành phần cơ bản sau:

Card: là một thẻ thông tin có Title, Description dùng để lưu trữ công việc Mỗi

card sẽ có checklist để bạn chia những thông tin đầu việc nhỏ hơn Card có thể được comment, attach hình ảnh trên đó để dùng cho việc trao đổi giữa các thành viên

List: là một danh sách tổng hợp các card thuộc chung một tình trạng hoặc một

tính chất khác nhau Ví dụ: List Doing bao gồm những card đang được thực hiện List Done chứa những card đã hoàn thành

Board: là một bảng thường tương đương với một project hoặc một mảng công

việc Trong một board có thể có nhiều List để chia tình trạng của những đầu việc của project đó cho tiện theo dõi

Trang 24

21

Chương 2: Framework Ruby On Rails

2.1 Ruby on rails

2.1.1 Giới thiệu về Ruby on rails

Ruby on Rails là một web framework được viết bằng ngôn ngữ Ruby và tất cả các ứng dụng trong Rails đều được viết bằng Ruby Ruby là ngôn ngữ được tác giả

Matz tạo ra năm 1993 ở Nhật Bản và được công bố năm 1995 [2] Từ đó đến nay nó đã

trở nên phổ biến và nổi tiếng về thiết kế rõ ràng, cú pháp đẹp như việc không sử dụng dấu chấm phẩy khi kết thúc câu lệnh hay dùng ngoặc để nhóm các khối lênh Rails có một thư viện chuẩn phong phú với một hệ thống quản lý các gói thư viện có tên là RubyGems Đến nay, Rails có một cộng đồng phát triển trên toàn thế giới liên tục cải tiến ngôn ngữ và hệ sinh thái lập trình cho nó

Nền tảng cho Ruby on Rails được bắt đầu xây dựng năm 2004 [2] Kể từ đó,

Ruby on Rails đã nhanh chóng phát triển thành một trong những framework dẫn đầu cho việc phát triển ứng dụng web Ruby on Rails sử dụng các qui ước triệt để và đảm nhận xử lý rất nhiều các công việc khiến người lập trình viên không phải bận tâm về

nó nữa như: việc quản lý email, ánh xạ các đối tượng, quản lý các tệp mã nguồn và cấu trúc thư mục, tạo code tự động, đây chính là đặc điểm nổi bật nhất của Ruby On Rails, điều này không chỉ giúp các lập trình viên viết code ít hơn, phát triển ứng dụng nhanh hơn mà còn làm ứng dụng dễ hiểu và dễ bảo trì

2.1.2.2 Các thành phần chính của Ruby On Rails

Tương ứng với những đặc điểm trên Ruby on Rails gồm các thành phần sau:

Action Mailer [3]: Module này chịu trách nhiệm chuyên cung cấp các dịch vụ

email, nó xử lý các email đến và cho phép tạo mới các email Module này có thể xử lý

từ những email text đơn giản đến các email có định dạng phức tạp Action mailer được

kế thừa từ Action Controller, nó cung cấp các phương thức để tạo email với các template cũng giống như Action View sử dụng nó để render các trang lên trình duyệt Action pack: Module này cung cấp các lớp ở tầng controller và view trong mô hình MVC Nó nhận request từ client và sau đó ánh xạ chúng đến các action tương ứng Những action được định nghĩa trong tầng controller và sau đó các action này sẽ render view hiển thị lên trình duyệt Action pack được chia thành ba module con bao gồm:

Trang 25

để các controller khác có thể kế thừa từ nó Action Controller chứa các action

để điều khiển model và view, nó cũng quản lý các session người dùng, luồng chạy ứng dụng

 Action View: Được gọi bởi Action Controller, sau khi được gọi Action View

sẽ render các view tương ứng Action View cung cấp các master layouts, templates và các view helpers, các thành phần này hỗ trợ việc sinh tự động ra phần khung cho các trang HTML hay các định dạng khác

Active model: Thành phần định nghĩa interface giữa mô đun Action Pack và Active Record Giao diện Action Record có thể được dùng bên ngoài Rails, cung cấp các chức năng object relational mapping (ORM) ORM là một kỹ thuật lập trình giúp chuyển đổi dữ liệu giữa các thệ thống không tương thích được viết bởi các ngôn ngữ hướng đối tượng

Active Record: [4] được sử dụng để quản lý dữ liệu trong các cơ sở dữ liệu quan

hệ thông qua các đối tượng Trong Ruby on Rails mô đun Active Record cung cấp object relational mapping (ORM) đến các class Module này xây dựng nên tầng model, giúp kết nối các bảng database với các class tương ứng Rails cung cấp công cụ để thực thi chức năng thêm, sửa, xóa mà không phải cấu hình Thêm vào đó, nó cũng cung cấp các khả năng tìm kiếm thông minh và khả năng tạo ra các mối quan hệ hay các liên kết giữa các model Active record có những quy ước rất chặt chẽ bắt các lập trình viên phải tuân thủ theo như: phải đặt tên lớp, các bảng, các khóa chính và khóa ngoài như thế nào

Active Resource: [4]Module này quản lý các kết nối giữa RESTful web services

và các đối tượng nghiệp vụ, làm giảm số lượng code cần viết để ánh xạ đến các tài nguyên Active Resource ánh xạ model class đến các tài nguyên REST ở xa cũng giống như cách mà Active Record ánh xạ từ model class đến các bảng cơ sở dữ liệu

Nó cũng cung cấp các cơ chế proxy giữa Active Resource (client) và một RESTful

1 HTTP: Là một giao thức truyền tải siêu văn bản

Trang 26

23

service Khi một có một request cần truy cập đến các tài nguyên ở xa, một REST XML được sinh ra và được truyền đi, sau đó kết quả sẽ được đưa sang các đối tượng Ruby RESTful Architecture: REST viết tắt của Representational State Transfer REST

là một sự thay thế cho web service, chứa SOAP và WSDL

Active Support: Là thành phần chứa các thư viện chuẩn của của Ruby, Active Support rất hữu ích cho việc phát triển ứng dụng vì nó bao gồm rất nhiều thư viện hỗ trợ cho việc lưu trữ, các thao tác sử lý với chuỗi hay thời gian

Railties: Đảm nhiệm việc kết nối tất cả các module ở trên với nhau, thêm vào đó

nó sử lý quá trình mồi cho ứng dụng, giao diện dòng lệnh, và cung cấp bộ sinh code của Rails

Hình 2.1: Kiến trúc ruby on rails

Trang 27

24

2.1.2 Phát triển dự án với Ruby On Rails

2.1.2.1 Cài đặt môi trường phát triển

Hiện nay có thể cài đặt Ruby on Rails trên hầu hết các hệ điều hành phổ biến như Ubuntu, Window hay Osx, tuy nhiên chúng ta nên cài đặt môi trường phát triển trên Ubuntu hoặc Osx vì trên Window sẽ thường xuyên xảy ra lỗi cũng như các thư viện hỗ trợ ít hơn Khóa luận sẽ giới thiệu về việc cài đặt Ruby on Rails trên hệ điều hành Ubuntu

 Cài đặt Ruby

Ruby là một ngôn ngữ lập trình xây dựng nên Ruby On Rails và toàn bộ ứng dụng khi xây dựng chúng ta sẽ phải sử dụng ruby nên việc cài đặt ruby là bắt buộc Hiện tại có rất nhiều phiên bản Ruby, phiên bản mới nhất là 2.3, ở đây chúng ta sẽ cài phiên bản 2.2.3

+ Cài đặt các gói phụ thuộc:

sudo apt-get update

sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

Bật terminal trên ubuntu và gõ đoạn lệnh trên để cài đặt các gói phụ thuộc

+ Cài đặt Ruby:

Cài đặt Ruby sử dụng rbenv

cd

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc exec $SHELL

git clone https://github.com/rbenv/rbenv-gem-rehash.git rehash

Trang 28

25

Cũng giống như ruby, rails thường xuyên được cập nhật và phát triển nên đã có rất nhiều phiên bản đã được phát hành, trong bài viết này tôi sẽ cài đặt bản rails 4.2.4

là bản mới nhất cho đến thời điểm thực hiện bài viết này

Cài đặt javascript runtime cho Rails

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

sudo apt-get install -y nodejs

Tiến hành cài đặt rails bằng lệnh:

gem install rails -v 4.2.4

Kiểm tra cài đặt bằng lệnh: rails -v

2.1.2.2 Ví dụ về một dự án Ruby on Rails

Để tạo một dự án mới chúng ta chạy lệnh sau:

rails new project_name

project_name: là tên của dự án

Chúng ta sẽ tạo một dự án với tên hello_rails với câu lệnh:

rails new hello_rails

Sau khi chạy lệnh thành công ta sẽ nhận được thông báo về các tệp tin và thư mục được tạo ra trong dự án

Cấu trúc thư mục dự án sau khi tạo:

Hình 2.2: Cấu trúc dự án Ruby On Rails

Trang 29

26

+ Thư mục app [5]: Thư mục này chứ controller, models, views, helpers, mailers và

asessts cho ứng dụng Trong đó:

 controllers: Chứa các tập tin controller dùng để điều hướng luồng chạy của ứng dụng

 models: các tập tin models được dùng để tương tác với database trong ứng dụng hoặc dùng để mô phỏng một đối tượng mà không cần kết nối tới database

 helpers: các tập tin helpers chứa các hàm và các lớp hỗ trợ được sử dụng bởi controllers, models hay views

 views: các tập tin views được sử dụng bởi controller dùng để hiển thị nội dung của trang

 mailers: bao gồm các template mẫu dùng để gửi email

 assets: bao gồm các tập tin như ảnh, css, javascripts

+ Thư Mục bin: Thư mục này bao gồm các đoạn mã script để khởi động ứng dụng

Rails hoặc dùng để thiết lập hay deploy ứng dụng

+ Thư Mục config: Thư mục này dùng để cấu hình ứng dụng như cấu hình các thông

số của database, định nghĩa các routes

+ Thư Mục db: Thư mục này chứa các tập tin dùng để tạo cấu trúc schema cho

database và các tập tin migrations giúp xây dựng nên database của một dự án

+ Tập Tin Gemfile và Gemfile.lock: Tập tin Gemfile dùng để liệt kê những gem nào

dùng trong ứng dụng và Gemfile.lock dùng để ghi lại thông tin về quá trình cài đặt các gem

+ Thư Mục lib: Bao gồm các thư viện được dùng trong ứng dụng Thông thường các thư viện này được viết bởi chính những lập trình viên tham gia vào viết ứng dụng Các thư viện của bên thứ 3 thường không được đặt ở trong thư mục này mà sẽ để trong thư mục vendor mà tôi sẽ đề cập ở phần dưới đây

+ Thư Mục log: Chứa các bản ghi log là các thông tin trong quá trình cài đặt, khởi động, chạy hay ngừng ứng dụng

+ Thư Mục public: Nội dung của các tập tin đặt trong thư mục này sẽ có thể được tải trực tiếp về trình duyệt

+ Tập Tin Rakefile: Tập tin Rakefile được Rails sử dụng để tìm kiếm các tác vụ mà chúng có thể được thực thi trên cửa sổ dòng lệnh thông qua rake Bạn không nên định nghĩa trực tiếp các tác vụ này trong Rakefile mà việc định nghĩa các tác vụ này được

thực hiện thông qua các tập tin trong thư mục “lib/tasks"

Trang 30

27

+ Tập Tin README.rdoc: Tập tin này chứa các thông tin tổng quan về ứng dụng như

mô tả ngắn gọn mục đích của ứng dụng, phiên bản ứng dụng, thông tin tác giả viết ứng dụng hay loại giấy phép phát hành ứng dụng

+ Thư Mục test: Thư mục này dùng để chứa các test case sử dụng trong ứng dụng bao

gồm unit tests, fixture tests và các loại test khác có trong Ruby on Rails

+ Thư Mục tmp: Lưu các tập tin tạm thời thường là các tập tin cache, pid hay session + Thư Mục vendor: Thư mục này chứa các thư viện của bên thứ ba được sử dụng trong ứng dụng

Chạy thử ứng dụng trên server:

rails server

Kết quả sẽ nhận được thông báo "starting in development on http://0.0.0.0:3000," có nghĩa app đang chạy ở cổng 3000 của máy, bạn có thể mở trình duyệt với địa chỉ http://localhost:3000 Tại đó sẽ có trang "Welcome aboard" của Rails

Hình 2.3: kết quả khi chạy ứng dụng hello_rails Bên trên là trang welcome abroad của rails do routes hiện tại đang điều hướng tới trang này, bây giờ chúng ta sẽ tạo một trang web chứa dòng chữ “ Hello Ruby On Rails” theo các bước sau:

+ Tạo controller có tên là : HomesController

rails generate controller Homes

Trang 31

28

Sau khi chạy câu lệnh trên Rails sẽ tự động tạo ra những tập tin sau :

 app/controllers/homes_controller.rb: file này chứa class HomesController

 app/view/homes: Chứa những file giao diện cho controller homes hay (view) trong mô hình MVC

 app/assets/javascripts/homes.coffee: Chứa mã javascript viết dưới dạng coffee script

 app/assets/stylesheets/homes.scss: Chứa thuộc tính css cho các thẻ html trong view

+ Tạo một action có tên là index, chính là trang index của dự án sẽ hiển thị dòng chữ

“Hello Ruby On Rails” Ruby On Rails tuân theo chuẩn RESTfull nên thông thường

nó sẽ có các action chính là : index, show, create, update, destroy

Trang index này chỉ in ra thông báo nên trong controller sẽ không xử lý việc lấy dữ liệu và dịnh dạng dữ liệu cho view như thông thường

Hình 2.4: homes_controller.rb + Tạo view cho action index có tên “index.html.erb” đặt trong thư mục “view/homes” chứa nội dung là dòng chữ “Hello Ruby On Rails”

+ Sửa lại file routes.rb để trang chủ là trang index vừa được tạo

Hình 2.5: Kết quả khi chạy ứng dụng

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

🧩 Sản phẩm bạn có thể quan tâm

w