Tải bản đầy đủ (.pdf) (160 trang)

ĐỒ ÁN HỆ THỐNG THÔNG TIN XÂY DỰNG WEBSITE CHÀO MÙA HÈ XANH VỚI FRAMEWORK WEB2PY

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.14 MB, 160 trang )



ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA HỆ THỐNG THÔNG TIN



BÁO CÁO ĐỒ ÁN HỆ THỐNG THÔNG TIN

XÂY DỰNG WEBSITE CHÀO
MÙA HÈ XANH VỚI
FRAMEWORK WEB2PY



Giảng viên hướng dẫn : ThS. NGUYỄN ĐÌNH LOAN PHƯƠNG
ThS. VŨ MINH SANG
Sinh viên thực hiện: NGUYỄN VŨ PHONG 08520282
NGUYỄN DƯƠNG ÁI DIỆU 09520481
NGUYỄN HỒ DUY TRI 09520690
NGUYỄN HỒ DUY TRÍ 09520692
Lớp : HTTT04
Khóa : 2009 - 2014



TP. Hồ Chí Minh, 26 tháng 6 năm 2013
ii
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong


ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

MỞ ĐẦU

Khi những trang sách khép lại phía giảng đường, mùa hè vẫy chào, bao
lượt sinh viên vác ba lô trên vai hành quân về những miền xa của tổ quốc. Nơi
đó gọi họ bằng cái tên trìu mến yêu thương: Những chiến sĩ tình nguyện mùa
hè xanh. Những chuyến đi cứ trải dài ra mãi, vì những mảnh đất họ đi qua sẽ
trở thành mái nhà, thành những quê hương. Dù không sinh ra, không nuôi họ
lớn, nhưng ở đó họ đã trưởng thành, biết yêu thương và biết mở rộng lòng
mình đón nhận những yêu thương.
Từ những ý nghĩa lớn lao và thiết thực mà mình mang lại, năm 2013,
Chiến dịch tình nguyện Mùa hè xanh đã thực sự trưởng thành, vững bước vào
tuổi 20 với một bản lĩnh, sự tự tin, một sức sống, một dáng vóc mới.
Do đó, nhóm đã chọn đề tài “Xây dựng website Chào Mùa Hè Xanh với
Framework Web2Py” để trau dồi lại những kiến thức, kỹ năng mình đã học,
tìm hiểu những công nghệ, kỹ thuật mới như Python, Web2py, HTML5, CSS3,
Jquery, PageSpeed… qua đó, một phần đưa tin học vào giải quyết vấn đề quản
lý đang còn nhiều phức tạp và với mong muốn góp phần nhỏ công sức mình
quảng bá hình ảnh đẹp của những “chiến sĩ Mùa hè xanh” đến với mọi người.
Bên cạnh đó, còn là nhịp cầu dành cho các chiến sĩ gắn kết nhau hơn, cùng
chia sẻ những câu chuyện, những tình cảm, cảm xúc trong suốt mùa chiến
dịch. Là nơi để gửi những tin nhắn yêu thương, những lời động viên từ “tiền
tuyến” đến “hậu phương” xa cách, để cùng nhau tiếp lửa, chung tay cho những
công việc ý nghĩa, góp sức xây dựng cộng đồng từ thành phố cho đến thôn
quê.

iii
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí



LỜI CẢM ƠN



Để hoàn thành được đề tài này nhóm chúng tôi chân
thành cảm ơn Quý Thầy/Cô trong khoa Hệ Thống Thông Tin
trường Đại Học Công Nghệ Thông Tin đã nhiệt tình chỉ dẫn
và giúp đỡ, trong đó nhóm xin gởi lời cảm ơn sâu sắc đến cô
Nguyễn Đình Loan Phương và thầy Vũ Minh Sang giáo viên
hướng dẫn nhóm thực hiện đề tài này, thầy cô đã nhiệt tình
hướng dẫn cho chúng tôi các bước để thực hiện đề tài, giúp
nhóm giải quyết nhiều khó khăn và nảy ra nhiều ý tưởng
mới. Bên cạnh đó, chúng tôi cũng nhận được sự giúp đỡ
nhiệt tình của các anh chị khóa trên và các bạn trong
trường. Một lần nữa nhóm gởi lời cảm ơn đến tất cả mọi
người!
iv
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

NHẬN XÉT





























v
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

MỤC LỤC
MỞ ĐẦU ii
LỜI CẢM ƠN iii
NHẬN XÉT iv
MỤC LỤC v

DANH MỤC HÌNH ẢNH x
DANH MỤC BẢNG xiii
Chương 1: TỔNG QUAN ĐỀ TÀI 1
1.1. TÊN ĐỀ TÀI 1
1.2. THỰC TRẠNG VẤN ĐỀ 1
1.3. GIẢI PHÁP GIẢI QUYẾT VẤN ĐỀ 1
1.4. PHẠM VI NGHIÊN CỨU 2
1.5. YÊU CẦU CHỨC NĂNG – PHI CHỨC NĂNG 2
1.5.1. Yêu cầu chức năng 2
1.5.2. Yêu cầu phi chức năng 2
Chương 2: CƠ SỞ LÝ THUYẾT 3
2.1. PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG UML 3
2.1.1. Giới thiệu về UML 3
2.1.2. Các bước phân tích thiết kế hướng đối tượng 3
2.1.3. Giới thiệu công cụ RATIONAL ROSE 4
2.2. NGÔN NGỮ LẬP TRÌNH PYTHON 4
2.2.1. Giới thiệu về Python 4
2.2.2. Sơ lược về đặc điểm 5
2.2.3. web2py Framework 8
2.3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL 8
2.4. KỸ THUẬT TĂNG TỐC WEBSITE 9
Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2
3.1. PHÂN TÍCH NGHIỆP VỤ 2
3.2. THIẾT KẾ USECASE DIAGRAM 2
3.2.1. Usecase diagram tổng quan của hệ thống 2
3.2.2. Usecase Quản lí tài khoản 3
3.2.3. Usecase Quản lí thông tin đơn vị trực thuộc 4
3.2.4. Usecase Quản lí mặt trận 4
3.2.5. Usecase Quản lí chương trình 5
3.2.6. Usecase Quản lí dự án 5

3.2.7. Usecase Quản lí sidebar và Banner 6
3.3. ĐẶC TẢ USECASE 7
vi
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

3.3.1. Đăng nhập và Đăng xuất 7
3.3.2. Quản lí thông tin cá nhân 8
3.3.3. Xem tin tức – sự kiện 8
3.3.4. Gửi đề xuất – kiến nghị 8
3.3.5. Quản lí thông tin đơn vị trực thuộc 9
3.3.6. Đăng tin tức – sự kiện 10
3.3.7. Báo cáo tình hình hoạt động hàng tuần 11
3.3.8. Quản lý báo cáo hoạt động 11
3.3.9. Quản lí dự án 12
3.3.10. Quản lí chương trình 14
3.3.11. Quản lí mặt trận 15
3.3.12. Quản lí tin tức sự kiện 17
3.3.13. Quản lí tài khoản 17
3.3.14. Quản lí danh sách các đơn vị 19
3.3.15. Quản lí Sidebar và Banner 19
3.3.15. Xem thống kê chiến sĩ 21
3.4. QUY TẮC NGHIỆP VỤ 21
3.5. PHÂN QUYỀN NGƯỜI DÙNG 21
3.5.1. Sơ đồ mô tả chung 21
3.5.2. Mô tả từng thành phần 22
3.6. PHÂN TÍCH YÊU CẦU LƯU TRỮ 23
3.6.1. Lưu trữ thông tin mhx_chiensy: Thông tin chiến sĩ 23
3.6.2. Lưu trữ thông tin mhx_banchihuy: Thông tin ban chỉ huy 24
3.6.3. Lưu trữ thông tin mhx_bch_ct: Thông tin ban chỉ huy

chương trình 24
3.6.4. Lưu trữ thông tin mhx_bch_da: Thông tin ban chỉ huy dự
án 24
3.6.5. Lưu trữ thông tin mhx_bch_donvi: Thông tin ban chỉ huy
đơn vị 24
3.6.6. Lưu trữ thông tin mhx_bch_mattran: Thông tin ban chỉ huy
mặt trận 24
3.6.7. Lưu trữ thông tin mhx_chucvu: Thông tin chức vụ 25
3.6.8. Lưu trữ thông tin mhx_chuongtrinh: Thông tin chương
trình 25
3.6.9. Lưu trữ thông tin mhx_ct_mt: Thông tin chương trình của
mặt trận 25
3.6.10. Lưu trữ thông tin mhx_ctmt_nc: Thông tin nhu cầu chương
trình của mặt trận 25
vii
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

3.6.11. Lưu trữ thông tin mhx_dh_ctmtnc: Thông tin đội hình đáp
ứng nhu cầu chương trình của mặt trận 25
3.6.12. Lưu trữ thông tin mhx_dh_hmnc: Thông tin đội hình đáp
ứng nhu cầu của hạng mục 26
3.6.13. Lưu trữ thông tin mhx_doihinh: Thông tin đội hình 26
3.6.14. Lưu trữ thông tin mhx_donvi: Thông tin đơn vị 26
3.6.15. Lưu trữ thông tin mhx_duan: Thông tin dự án 26
3.6.16. Lưu trữ thông tin mhx_hangmuc: Thông tin hạng mục 26
3.6.17. Lưu trữ thông tin mhx_hm_nc: Thông tin nhu cầu của hạng
mục 27
3.6.18. Lưu trữ thông tin mhx_loaidonvi: Thông tin loại đơn vị 27
3.6.19. Lưu trữ thông tin mhx_mattran: Thông tin mặt trận 27

3.6.20. Lưu trữ thông tin mhx_nguonluc: Thông tin nguồn lực 27
3.6.21. Lưu trữ thông tin mhx_nhucau 27
3.6.22. Lưu trữ thông tin mhx_nl_dv: Thông tin nguồn lực của đơn
vị 28
3.6.23. Lưu trữ thông tin mhx_nldv_ctmtnc: Thông tin nguồn lực
đáp ứng nhu cầu chương trình của mặt trận 28
3.6.24. Lưu trữ thông tin mhx_nldv_hmnc: Thông tin nguồn lực
đáp ứng nhu cầu của hạng mục 28
3.6.25. Lưu trữ thông tin mhx_photogallery: Thông tin hình ảnh . 28
3.6.26. Lưu trữ thông tin mhx_post: Thông tin tin tức - sự kiện 28
3.6.27. Lưu trữ thông tin mhx_quyen: Thông tin quyền 29
3.6.28. Lưu trữ thông tin mhx_role: Thông tin phân quyền 29
3.6.29. Lưu trữ thông tin mhx_slideshow: Thông tin banner 29
3.6.30. Lưu trữ thông tin mhx_sponsor: Thông tin tài trợ - hỗ trợ 30
3.6.31. Lưu trữ thông tin mhx_user: Thông tin tài khoản 30
3.6.32. Lưu trữ thông tin mhx_video: Thông tin video 30
3.6.33. Lưu trữ thông tin mhx_baocaonhanh: Thông tin báo cáo
nhanh 30
3.6.34. Lưu trữ thông tin mhx_loaivanban: Thông tin loại văn bản
31
3.6.35. Lưu trữ thông tin mhx_bcn_lvb: Thông tin các loại văn bản
gửi kèm báo cáo 31
3.7. BIỂU ĐỒ LỚP TỔNG QUÁT CỦA HỆ THỐNG(CLASS
DIAGRAM) 31
3.8. BIỂU ĐỒ TRẠNG THÁI(STATECHART DAGRAM) 32
3.8.1. Trạng thái đang Online và Offline của người dùng khi vào
website 32
viii
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí


3.8.2. Trạng thái đang được đăng và không được đăng của tin tức
- sự kiện/ tài trợ - hỗ trợ/ hình ảnh/ banner 32
3.9. BIỂU ĐỒ TUẦN TỰ(SEQUENCE DIAGRAM) VÀ BIỂU ĐỒ
CỘNG TÁC(COLLABORATION DIAGRAM) 33
3.9.1. Đăng nhập và Đăng xuất 33
3.9.2. Quản lý thông tin cá nhân 36
3.9.3. Xem tin tức – sự kiện 37
3.9.4. Gửi liên hệ 38
3.9.5. Quản lý thông tin đơn vị trực thuộc 39
3.9.6. Đăng tin tức – sự kiện 47
3.9.7. Báo cáo tình hình hoạt động hàng tuần 48
3.9.8. Quản lý báo cáo tình hình hoạt động hàng tuần 49
3.9.9. Quản lý dự án 51
3.9.10. Quản lý chương trình 55
3.9.11. Quản lý mặt trận 59
3.9.12. Quản lý tin tức sự kiện 63
3.9.13. Quản lý tài khoản 65
3.9.14. Quản lý danh sách các đơn vị 67
3.9.15. Quản lý sidebar và banner 69
3.9.16. Xem thống kê chiến sĩ 76
3.10. BIỂU ĐỒ HOẠT ĐỘNG(ACTIVITY DIAGRAM) 77
3.10.1. Đăng nhập và Đăng xuất 77
3.10.2. Quản lý thông tin cá nhân 78
3.10.3. Xem tin tức – sự kiện 78
3.10.4. Gửi liên hệ 79
3.10.5. Quản lý thông tin đơn vị trực thuộc 79
3.10.6. Đăng tin tức – sự kiện 83
3.10.7. Báo cáo tình hình hoạt động hàng tuần 83
3.10.8. Quản lý báo cáo tình hình hoạt động hàng tuần 84

3.10.9. Quản lý dự án 85
3.10.10. Quản lý chương trình 87
3.10.11. Quản lý mặt trận 89
3.10.12. Quản lý tin tức sự kiện 91
3.10.13. Quản lý tài khoản 92
3.10.14. Quản lý danh sách các đơn vị 93
3.10.15. Quản lý sidebar và banner 94
3.10.16. Xem thống kê chiến sĩ 95
ix
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

3.11. THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 95
3.11.1. Sơ đồ website tổng quan 95
3.11.2. Module Default 96
3.11.3. Module Manager 102
Chương 4: XÂY DỰNG ỨNG DỤNG 135
4.1. CÀI ĐẶT 135
4.2. XỬ LÝ 135
4.2.1. Yêu cầu cài đặt 135
4.2.2. Framework 135
4.2.3. Kết nối database 135
4.2.4. Khởi động website 135
4.2.5. Đăng nhập vào website 135
Chương 5: KẾT LUẬN 136
5.1. KẾT LUẬN 136
5.2. Ý NGHĨA CỦA ĐỀ TÀI 136
DANH MỤC TÀI LIỆU THAM KHẢO 137




x
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

DANH MỤC HÌNH ẢNH

Hình II. 1. Các bước phát triển hệ thống hướng đối tượng 3
Hình III. 1. Usecase tổng quan của hệ thống 3
Hình III. 2. Usecase Quản lí tài khoản 4
Hình III. 3. Usecase Quản lí thông tin đơn vị 4
Hình III. 4. Usecase Quản lí mặt trận 5
Hình III. 5. Usecase Quản lí chương trình 5
Hình III. 6. Usecase Quản lí dự án 6
Hình III. 7. Usecase Quản lí Sidebar và Banner 7
Hình III. 8. Sơ đồ phân cấp quản lý của chiến dịch 21
Hình III. 9. Biểu đồ lớp tổng quát của hệ thống 32
Hình III. 10. Biểu đồ trạng thái đăng nhập 32
Hình III. 11. Biểu đồ trạng thái đăng đăng của tin tức - sự kiện/ tài trợ - hỗ trợ/
hình ảnh/ banner 33
Hình III. 12. Biểu đồ tuần tự (Sequence Diagram): Đăng nhập 34
Hình III. 13. Biểu đồ cộng tác(Collaboration Diagram): Đăng nhập 35
Hình III. 14. Biểu đồ tuần tự (Sequence Diagram): Đăng xuất 35
Hình III. 15. Biểu đồ cộng tác(Collaboration Diagram): Đăng xuất 36
Hình III. 16. Biểu đồ tuần tự (Sequence Diagram): Quản lý thông tin cá nhân
36
Hình III. 17. Biểu đồ cộng tác(Collaboration Diagram): Quản lý thông tin cá
nhân 37
Hình III. 18. Biểu đồ tuần tự (Sequence Diagram): Xem tin tức – sự kiện 37
Hình III. 19. Biểu đồ cộng tác(Collaboration Diagram): Xem tin tức – sự kiện

38
Hình III. 20. Biểu đồ tuần tự (Sequence Diagram): Gửi liên hệ 38
Hình III. 21. Biểu đồ cộng tác(Collaboration Diagram): Gửi liên hệ 39
Hình III. 22. Biểu đồ tuần tự (Sequence Diagram): Quản lý nguồn lực 40
Hình III. 23. Biểu đồ cộng tác(Collaboration Diagram): Quản lý nguồn lực 41
Hình III. 24. Biểu đồ tuần tự (Sequence Diagram): Quản lý đội hình 42
Hình III. 25. Biểu đồ cộng tác(Collaboration Diagram): Quản lý đội hình 43
Hình III. 26. Biểu đồ tuần tự (Sequence Diagram): Quản lý chiến sĩ 44
Hình III. 27. Biểu đồ cộng tác(Collaboration Diagram): Quản lý chiến sĩ 45
Hình III. 28. Biểu đồ tuần tự (Sequence Diagram): Quản lý Ban chỉ huy đơn
vị 46
Hình III. 29. Biểu đồ cộng tác(Collaboration Diagram): Quản lý Ban chỉ huy
đơn vị 47
Hình III. 30. Biểu đồ tuần tự (Sequence Diagram): Đăng tin tức – sự kiện 47
Hình III. 31. Biểu đồ cộng tác(Collaboration Diagram): Đăng tin tức – sự kiện
48
Hình III. 32. Biểu đồ tuần tự (Sequence Diagram): Báo cáo tình hình hoạt
động hàng tuần 48
Hình III. 33. Biểu đồ cộng tác(Collaboration Diagram): Báo cáo tình hình
hoạt động hàng tuần 49
xi
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Hình III. 34. Biểu đồ tuần tự (Sequence Diagram): Quản lý báo cáo tình hình
hoạt động hàng tuần 50
Hình III. 35. Biểu đồ cộng tác(Collaboration Diagram): Quản lý báo cáo tình
hình hoạt động hàng tuần 51
Hình III. 36. Biểu đồ tuần tự (Sequence Diagram): Quản lý nội dung dự án 52
Hình III. 37. Biểu đồ cộng tác(Collaboration Diagram): Quản lý nội dung dự

án 53
Hình III. 38. Biểu đồ tuần tự (Sequence Diagram): Quản lý ban chỉ huy dự án
54
Hình III. 39. Biểu đồ cộng tác(Collaboration Diagram): Quản lý ban chỉ huy
dự án 55
Hình III. 40. Biểu đồ tuần tự (Sequence Diagram): Quản lý nội dung chương
trình 56
Hình III. 41. Biểu đồ cộng tác(Collaboration Diagram): Quản lý nội dung
chương trình 57
Hình III. 42. Biểu đồ tuần tự (Sequence Diagram): Quản lý ban chỉ huy
chương trình 58
Hình III. 43. Biểu đồ cộng tác(Collaboration Diagram): Quản lý ban chỉ huy
58
Hình III. 44. Biểu đồ tuần tự (Sequence Diagram): Quản lý nội dung mặt trận
60
Hình III. 45. Biểu đồ cộng tác(Collaboration Diagram): Quản lý nội dung mặt
trận 61
Hình III. 46. Biểu đồ tuần tự (Sequence Diagram): Quản lý ban chỉ huy mặt
trận 62
Hình III. 47. Biểu đồ cộng tác(Collaboration Diagram): Quản lý ban chỉ huy
mặt trận 63
Hình III. 48. Biểu đồ tuần tự (Sequence Diagram): Quản lý tin tức sự kiện 64
Hình III. 49. Biểu đồ cộng tác(Collaboration Diagram): Quản lý tin tức sự
kiện 65
Hình III. 50. Biểu đồ tuần tự (Sequence Diagram): Quản lý tài khoản 66
Hình III. 51. Biểu đồ cộng tác(Collaboration Diagram): Quản lý tài khoản 67
Hình III. 52. Biểu đồ tuần tự (Sequence Diagram): Quản lý danh sách các đơn
vị 68
Hình III. 53. Biểu đồ cộng tác(Collaboration Diagram): Quản lý danh sách các
đơn vị 69

Hình III. 54. Biểu đồ tuần tự (Sequence Diagram): Quản lý video 69
Hình III. 55. Biểu đồ cộng tác(Collaboration Diagram): Quản lý video 70
Hình III. 56. Biểu đồ tuần tự (Sequence Diagram): Quản lý hình ảnh 71
Hình III. 57. Biểu đồ cộng tác(Collaboration Diagram): Quản lý hình ảnh 72
Hình III. 58. Biểu đồ tuần tự (Sequence Diagram): Quản lý tài trợ - hỗ trợ 73
Hình III. 59. Biểu đồ cộng tác(Collaboration Diagram): Quản lý tài trợ - hỗ
trợ 74
Hình III. 60. Biểu đồ tuần tự (Sequence Diagram): Quản lý banner 75
Hình III. 61. Biểu đồ cộng tác(Collaboration Diagram): Quản lý banner 76
Hình III. 62. Biểu đồ cộng tác(Collaboration Diagram): Xem thống kê chiến sĩ
77
xii
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Hình III. 63. Biểu đồ hoạt động(Activity Diagram): Đăng nhập 78
Hình III. 64. Biểu đồ hoạt động(Activity Diagram): Đăng xuất 78
Hình III. 65. Biểu đồ hoạt động(Activity Diagram): Quản lý thông tin cá nhân
78
Hình III. 66. Biểu đồ hoạt động(Activity Diagram): Xem tin tức – sự kiện 79
Hình III. 67. Biểu đồ hoạt động(Activity Diagram): Gửi liên hệ 79
Hình III. 68. Biểu đồ hoạt động(Activity Diagram): Quản lý nguồn lực 80
Hình III. 69. Biểu đồ hoạt động(Activity Diagram): Quản lý đội hình 81
Hình III. 70. Biểu đồ hoạt động(Activity Diagram): Quản lý chiến sĩ 82
Hình III. 71. Biểu đồ hoạt động(Activity Diagram): Quản lý Ban chỉ huy Đơn
vị 83
Hình III. 72. Biểu đồ hoạt động(Activity Diagram): Đăng tin tức – sự kiện 83
Hình III. 73. Biểu đồ hoạt động(Activity Diagram): báo cáo tình hình hoạt
động hàng tuần 84
Hình III. 74. Biểu đồ hoạt động(Activity Diagram): quản lý báo cáo tình hình

hoạt động hàng tuần 85
Hình III. 75. Biểu đồ hoạt động(Activity Diagram): Quản lý nội dung dự án 86
Hình III. 76. Biểu đồ hoạt động(Activity Diagram): Quản lý ban chỉ huy dự án
87
Hình III. 77. Biểu đồ hoạt động(Activity Diagram): Quản lý nội dung chương
trình 88
Hình III. 78. Biểu đồ hoạt động(Activity Diagram): Quản lý ban chỉ huy
chương trình 89
Hình III. 79. Biểu đồ hoạt động(Activity Diagram): Quản lý nội dung mặt trận
90
Hình III. 80. Biểu đồ hoạt động(Activity Diagram): Quản lý ban chỉ huy mặt
trận 91
Hình III. 81. Biểu đồ hoạt động(Activity Diagram): Quản lý tin tức sự kiện . 92
Hình III. 82. Biểu đồ hoạt động(Activity Diagram): Quản lý tài khoản 93
Hình III. 83. Biểu đồ hoạt động(Activity Diagram): Quản lý danh sách các
đơn vị 94
Hình III. 84. Biểu đồ hoạt động(Activity Diagram): Quản lý sidebar và banner
95
Hình III. 85. Biểu đồ hoạt động(Activity Diagram): Xem thống kê chiến sĩ 95
Hình III. 86. Cấu trúc giao diện module Default 96
Hình III. 87. Cấu trúc giao diện module Manager 102





xiii
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí


DANH MỤC BẢNG

Bảng III. 1. Usecase Đăng nhập và Đăng xuất 7
Bảng III. 2. Usecase Quản lí thông tin cá nhân 8
Bảng III. 3. Usecase Xem tin tức – sự kiện 8
Bảng III. 4. Usecase Gửi đề xuất – kiến nghị 8
Bảng III. 5. Usecase Xem, thêm, xóa, sửa nguồn lực 9
Bảng III. 6. Usecase Xem, thêm, xóa sửa đội hình 9
Bảng III. 7. Usecase Xem, thêm, xóa sửa danh sách chiến sĩ 10
Bảng III. 8. Usecase Xem, thêm, xóa sửa ban chỉ huy đơn vị 10
Bảng III. 9. Usecase Đăng tin tức – sự kiện 10
Bảng III. 10. Usecase Báo cáo tình hình hoạt động hàng tuần 11
Bảng III. 11. Usecase Quản lý Báo cáo tình hình hoạt động hàng tuần 11
Bảng III. 12. Usecase Xem, thêm, xóa, sửa thông tin dự án 12
Bảng III. 13. Usecase Xem, thêm, xóa, sửa hạng mục của dự án 12
Bảng III. 14. Usecase Xem, thêm, xóa, sửa đăng ký hạng mục 12
Bảng III. 15. Usecase Xem, thêm, xóa, sửa nhu cầu dự án 13
Bảng III. 16. Usecase Xem, them, xóa, sửa Ban chỉ huy của dự án 13
Bảng III. 17. Usecase Xem, thêm, xóa, sửa nội dung thông tin chương trình . 14
Bảng III. 18. Usecase Xem, thêm, xóa, sửa nhu cầu của chương trình 14
Bảng III. 19. Usecase Xem danh sách mặt trận theo chương trình 14
Bảng III. 20. Usecase Xem, thêm, xóa, sửa Ban chỉ huy Chương trình 15
Bảng III. 21. Usecase Xem, thêm, xóa, sửa mặt trận 15
Bảng III. 22. Usecase Xem, thêm, xóa, sửa chương trình của mặt trận 16
Bảng III. 23. Usecase Xem, thêm, xóa, sửa nhu cầu chương trình mặt trận 16
Bảng III. 24. Usecase Xem, thêm, xóa, sửa mặt trận tham gia 17
Bảng III. 25. Usecase Thêm, xóa, sửa tin tức sự kiện 17
Bảng III. 26. Usecase Thêm, xóa, sửa danh sách tài khoản 17
Bảng III. 27. Usecase Phân quyền 18
Bảng III. 28. Usecase Thành lập ban chỉ huy 18

Bảng III. 29. Usecase Quản lí danh sách các đơn vị 19
Bảng III. 30. Usecase Thêm, xóa video clip 19
Bảng III. 31. Usecase Thêm, xóa, sửa hình ảnh 20
Bảng III. 32. Usecase Thêm, xóa, sửa slide nhà tài trợ 20
Bảng III. 33. Usecase Thêm, xóa, sửa banner 20
Bảng III. 34. Usecase Xem thống kê chiến sĩ 21
Bảng III. 35. Lưu trữ thông tin chiến sĩ 23
Bảng III. 36. Lưu trữ thông tin ban chỉ huy 24
Bảng III. 37. Lưu trữ thông tin ban chỉ huy chương trình 24
Bảng III. 38. Lưu trữ thông tin ban chỉ huy dự án 24
Bảng III. 39. Lưu trữ thông tin ban chỉ huy đơn vị 24
Bảng III. 40. Lưu trữ thông tin ban chỉ huy mặt trận 24
Bảng III. 41. Lưu trữ thông tin chức vụ 25
Bảng III. 42. Lưu trữ thông tin chương trình 25
Bảng III. 43. Lưu trữ thông tin chương trình của mặt trận 25
Bảng III. 44. Lưu trữ thông tin nhu cầu chương trình của mặt trận 25
xiv
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Bảng III. 45. Lưu trữ thông tin đội hình đáp ứng nhu cầu chương trình của mặt
trận 25
Bảng III. 46. Lưu trữ thông tin đội hình đáp ứng nhu cầu của hạng mục 26
Bảng III. 47. Lưu trữ thông tin đội hình 26
Bảng III. 48. Lưu trữ thông tin đơn vị 26
Bảng III. 49. Lưu trữ thông tin dự án 26
Bảng III. 50. Lưu trữ thông tin hạng mục 27
Bảng III. 51. Lưu trữ thông tin nhu cầu hạng mục 27
Bảng III. 52. Lưu trữ thông tin loại đơn vị 27
Bảng III. 53. Lưu trữ thông tin mặt trận 27

Bảng III. 54. Lưu trữ thông tin nguồn lực 27
Bảng III. 55. Lưu trữ thông tin nhu cầu 27
Bảng III. 56. Lưu trữ thông tin nguồn lực của đơn vị 28
Bảng III. 57. Lưu trữ thông tin nguồn lực đáp ứng nhu cầu chương trình của
mặt trận 28
Bảng III. 58. Lưu trữ thông tin nguồn lực đáp ứng nhu cầu của hạng mục 28
Bảng III. 59. Lưu trữ thông tin hình ảnh 28
Bảng III. 60. Lưu trữ thông tin tin tức – sự kiện 28
Bảng III. 61. Lưu trữ thông tin quyền 29
Bảng III. 62. Lưu trữ thông tin phân quyền 29
Bảng III. 63. Lưu trữ thông tin banner 29
Bảng III. 64. Lưu trữ thông tin tài trợ - hỗ trợ 30
Bảng III. 65. Lưu trữ thông tin tài khoản 30
Bảng III. 66. Lưu trữ thông tin video 30
Bảng III. 67. Lưu trữ thông tin báo cáo nhanh 30
Bảng III. 68. Lưu trữ thông tin loại văn bản 31
Bảng III. 69. Lưu trữ thông tin các loại văn bản gửi kèm báo cáo 31


1
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Chương 1: TỔNG QUAN ĐỀ TÀI
1.1. TÊN ĐỀ TÀI
Xây dựng website “Chào Mùa Hè Xanh” với Framework Web2Py
1.2. THỰC TRẠNG VẤN ĐỀ
Khởi nguồn từ Chiến dịch Ánh sáng văn hóa hè 1994, Hội sinh viên đưa 700
sinh viên 10 trường đại học, cao đẳng và trung học chuyên nghiệp về 10 xã thuộc
huyện Bình Chánh (Thành phố Hồ Chí Minh) làm công tác xóa mù chữ. Đến nay

phong trào thanh niên tình nguyện với tên gọi chiến dịch Ánh sáng văn hóa hè đó
được đổi thành Chiến dịch tình nguyện Mùa hè xanh ngày càng có sức ảnh hưởng
lớn và lan tỏa khắp cả nước và vượt ra ngoài lãnh thổ Việt Nam đến với nước bạn
Lào, Campuchia, thu hút hàng triệu lượt thanh niên tham gia. Không chỉ trong
thanh niên, ngọn lửa tình nguyện còn lan tỏa trong mọi giới, trở thành một phần
không thể thiếu trong cuộc sống hôm nay.
Việc đăng ký chiến dịch tình nguyện vẫn do các đơn vị cơ sở như: trường,
quận huyện tổ chức. Các chiến sĩ phải qua quá trình tuyển chọn để đảm bảo chất
lượng trên nguyên tắc tình nguyện, kỷ luật, bố trí vào đúng đội hình, nội dung
công việc phù hợp với nguyện vọng, sở trường của chiến sĩ. Sau đó danh sách
chiến sĩ được tuyển chọn sẽ được gửi đến ban chỉ huy chiến dịch cấp Thành để
tiện trong việc quản lý và phân bố lực lượng.
Về vấn đề đăng ký nội dung công việc thì các đơn vị cơ sở tự chủ động trao
đổi và thống nhất nội dung phối hợp trong chiến dịch Mùa hè xanh.
Bên cạnh đó, thông tin tuyên truyền phổ biến của Ban chỉ huy cấp Thành
đến chiến sĩ thường phải qua Ban chỉ huy cấp cơ sở do vậy vấn đề thông tin
thường rất chậm.
1.3. GIẢI PHÁP GIẢI QUYẾT VẤN ĐỀ
Cũng chính vì những vấn đề trên và hưởng ứng chào mừng 20 năm Chiến
dịch mùa hè xanh Ban chấp hành Hội Sinh Viên Việt Nam thành phố Hồ Chí
Minh lên ý tưởng xây dựng website “Chào mùa hè xanh” nhằm tạo cầu nối giữa
ban chỉ huy chiến dịch với chiến sĩ, giữa các ban, các bộ phận chỉ huy trong chiến
dịch. Đây sẽ là kênh thông tin chính và xuyên suốt các chiến dịch Mùa hè xanh
sau này.
Dựa trên ý tưởng của Hội sinh viên, chúng tôi xây dựng lên website “Chào
mùa hè xanh”. Nó sẽ là cổng thông tin liên lạc chính, bên cạnh đó nó cũng là nơi
để ban chỉ huy dễ dàng quản lý chiến dịch. Website sẽ đảm bảo một số tính năng
sau:
Các chiến sĩ có thể nắm bắt các thông tin về chiến dịch cũng như gửi ý kiến
đóng góp về cho ban chỉ huy.

2
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Ban chỉ huy có thể dễ dàng phổ biến thông tin đến chiến sĩ, theo dõi các hoạt
động trong chiến dịch.
Bên cạnh đó các ban và bộ phận chỉ huy có thể dễ dàng trong công tác quản
lý chiến sĩ và quản lý và phân bố các mặt trận khu vực.
1.4. PHẠM VI NGHIÊN CỨU
Đề tài được thực hiện dựa nhu cầu của Hội Sinh Viên Việt Nam thành phố
Hồ Chí Minh với mong muốn xây dựng một hệ thống quản lý cho chiến dịch Mùa
hè xanh. Nội dung nghiên cứu gồm những chủ đề sau:
- Tìm hiểu và và thu thập thông tin về cách thức tổ chức và thông tin
quản lý của Chiến dịch Mùa hè xanh.
- Sử dụng hệ quản trị cơ sở dữ liệu MySQL để quản lý dữ liệu của
website.
- Xây dựng và phát triển website trên nền tảng ngôn ngữ Python với
Web2py Framework.
1.5. YÊU CẦU CHỨC NĂNG – PHI CHỨC NĂNG
1.5.1. Yêu cầu chức năng
Với những vấn đề trên cũng như những ý tưởng đặt ra của đề tài thì chúng tôi
có một số mô tả chức năng như sau:
- Phân quyền quản lý website, tùy theo từng cấp bậc và bộ phận sẽ có những
phạm vi sử dụng website khác nhau.
- Cho phép các tình nguyện viên có nguyện vọng tham gia chiến dịch được
đăng ký tham gia các mặt trận chiến dịch.
- Những ban có trách nhiệm thuộc các trường, quận huyện và các nhóm tình
nguyện có thể thao tác trên các dữ liệu về đăng ký chiến sĩ, các dữ liệu về
bài viết tin tức của trường, quận huyện hoặc tổ chức đó.
- Ban chỉ huy cấp cơ sở có quyền đăng ký nhiệm vụ và mặt trận thực hiện

trên website. Ban chỉ huy cấp Thành sẽ dựa vào danh sách đăng ký và số
lượng chiến sĩ để phân bố cho phù hợp.
Các bài viết về chiến dịch cũng như những thông tin về chiến dịch luôn
được cập nhật trên website.
1.5.2. Yêu cầu phi chức năng
- Giao diện thân thiện với người dùng, dễ sử dụng.
- Tương thích với nhiều trình duyệt như: Chrome, Firefox, IE…
- Tốc độ xử lý ổn định
3
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Chương 2: CƠ SỞ LÝ THUYẾT
2.1. PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG UML
2.1.1. Giới thiệu về UML
UML (Unified Modelling Language) là ngôn ngữ mô hình hoá tổng quát
được xây dựng để đặc tả, phát triển và viết tài liệu cho các khía cạnh trong phát
triển phần mềm hướng đối tượng. UML giúp ngƣời phát triển hiểu rõ và ra quyết
định liên quan đến phần mềm cần xây dựng. UML bao gồm một tập các khái
niệm, các ký hiệu, các biểu đồ và hướng dẫn.
2.1.2. Các bước phân tích thiết kế hướng đối tượng
Các bước phân tích thiết kế hướng đối tượng được xây dựng dựa trên các
biểu đồ trong ngôn ngữ mô hình hóa thống nhất UML như hình vẽ:

Hình II. 1. Các bước phát triển hệ thống hướng đối tượng
2.1.2.1. Pha phân tích
Xây dựng biểu đồ usecase: Dựa trên tập yêu cầu ban đầu, người phân tích
tiến hành xác định các tác nhân, usecase và các quan hệ giữa các usecase để mô tả
lại các chức năng của hệ thống. Một thành phần quan trọng của biểu đồ usecase
là các kịch bản mô tả hoạt động của hệ thống trong mỗi usecase cụ thể.

Xây dựng biểu đồ lớp: Xác định tên các lớp, các thuộc tính của lớp, một số
phương thức và mối quan hệ cơ bản trong sơ đồ lớp.
Xây dựng biểu đồ trạng thái: Mô tả các trạng thái và chuyển tiếp trạng thái
trong hoạt động của một đối tượng thuộc một lớp nào đó.
2.1.2.2. Pha thiết kế
4
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Xây dựng biểu đồ tương tác(gồm biểu đồ cộng tác và biểu đồ tuần tự): mô tả
chi tiết hoạt động của các usecase dựa trên các scenario đã có và các lớp đã xác
định trong pha phân tích.
Xây dựng biểu đồ lớp chi tiết: tiếp tục hoàn thành biểu đồ lớp bao gồm bổ
sung các lớp còn thiếu, dựa trên biểu đồ trạng thái để bổ sung các thuộc tính, dựa
trên bểu đồ tương tác để xác định các phương thức và mối quan hệ giữa các lớp.
Xây dựng biểu đồ hoạt động: mô tả hoạt động của các phương thức phức tạp
trong mỗi lớp hoặc các hoạt động của hệ thống có sự liên quan của nhiều lớp.
Biểu đồ hoạt động là cơ sở để cài đặt phương thức trong các lớp.
Xây dựng biểu đồ thành phần: xác định các gói, các thành phần và tổ chức
phần mềm theo các thành phần đó.
Xây dựng biểu đồ triển khai hệ thống: xác định các thành phần và các thiết
bị cần thiết để triển khai hệ thống, các giao thức và dịch vụ hỗ trợ.
2.1.3. Giới thiệu công cụ RATIONAL ROSE
Rational Rose là một bộ công cụ được sử dụng cho phát triển các hệ phần
mềm hướng đối tượng theo ngôn ngữ mô hình hóa UML. Với chức năng của một
bộ công cụ trực quan, Rational Rose cho phép chúng ta tạo, quan sát, sửa đổi và
quản lý các biểu đồ. Tập ký hiệu mà Rational Rose cung cấp thống nhất với các
ký hiệu trong UML. Ngoài ra, Rational Rose còn cung cấp chức năng hỗ trợ quản
lý dự án phát triển phần mềm, cung cấp các thư viện để hỗ trợ sinh khung mã cho
hệ thống theo một ngôn ngữ lập trình nào đó.

2.2. NGÔN NGỮ LẬP TRÌNH PYTHON
2.2.1. Giới thiệu về Python
Python là một ngôn ngữ lập trình hướng đối tượng rất thông dụng dùng để
viết các tiện ích hệ thống và các đoạn mã trên Internet. Nó cũng được sử dụng
như ngôn ngữ kết dính đóng vai trò tích hợp C và C++. Được tạo ra bởi Guido
van Rossum tại Amsterdamnăm 1990. Python hoàn toàn tạo kiểu động và dùng cơ
chế cấp phát bộ nhớ tự động; do vậy nó gần giống như Perl, Ruby, Scheme,
Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi
lợi nhuận Python Software Foundation quản lý. Python bản 2.4.3 được phát hành
vào 29 tháng 3, 2006. Bản tiếp theo là Python 2.5 release candidate 2.
Gần đây nhất, đầu tháng 8/2006 Microsoft đã cho ra mắt bản phân phối thử
nghiệm IronPython 1.0, vừa tích hợp tốt với .Net Framework, vừa hoàn toàn kế
thừa ngôn ngữ Python. IronPython còn tận dụng CLI ( nền tảng ngôn ngữ chung )
để đạt hiệu năng cao, chạy nhanh hơn 1.5 lần so với Python nền C thông thường
dựa trên thang đo benchmark.
Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện
cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng
viết mã lệnh với số lần gõ phím tối thiểu.
5
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời
gian, nó đã “bành trướng” sang mọi hệ điều hành từ DOS đến Mac OS, OS/2,
Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển
của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện
nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết
định hướng phát triển của Python.
2.2.2. Sơ lược về đặc điểm
Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc,

bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:
a. Từ khoá:
Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và cấu
trúc cú pháp so với các ngôn ngữ khác. Python là một ngôn ngữ phân biệt kiểu
chữ. Như C/C++, các từ khóa của Python đều ở dạng chữ thường. Dưới đây là
hệ thống từ khóa chuẩn:
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try

b. Khối lệnh:
Python, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh
trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa
nó.Ví dụ giả sử có đoạn mã sau trong C/C++:
#include <math.h>
//
delta = b * b – 4 * a * c;
if (delta > 0)
{
// Khối lệnh mới bắt đầu từ kí tự { đến }
x1 = (- b + sqrt(delta)) / (2 * a);
x2 = (- b - sqrt(delta)) / (2 * a);
printf("Phuong trinh co hai nghiem phan biet:\n");
printf("x1 = %f; x2 = %f", x1, x2);
}
Đoạn mã trên có thể được viết lại bằng Python như sau:

import math
#
delta = b * b – 4 * a * c
if delta > 0:
6
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

# Khối lệnh mới, thụt vào đầu dòng
x1 = (- b + math.sqrt(delta)) / (2 * a)
x2 = (- b – math.sqrt(delta)) / (2 * a)
print "Phuong trinh co hai nghiem phan biet:"
print "x1 = ", x1, "; ", "x2 = ", x2
Ta có thể sử dụng tab hoặc khoảng trống để thụt các câu lệnh vào.
c. Khả năng mở rộng:
Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàng viết và
tích hợp vào Python nhiều hàm tùy theo nhu cầu. Các hàm này sẽ trở thành hàm
xây dựng sẵn (built-in) của Python. Ta cũng có thể mở rộng chức năng của trình
thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng
nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp). Hơn thế
nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ
C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho
ứng dụng đó.
d. Trình thông dịch
Python là một ngôn ngữ lập trình dạng thông dịch. Ưu điểm của thông dịch
là giúp ta tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện
biên dịch và liên kết. Trình thông dịch có thể được sử dụng để chạy file script,
hoặc cũng có thể được sử dụng một cách tương tác. Ở chế độ tương tác, trình
thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể
nhập vào một biểu thức tại một thời điểm rồi enter, và kết quả thực thi sẽ được

hiển thị ngay lập tức. Đặc điểm này rất hữu ích cho người mới học, giúp họ
nghiên cứu tính năng của ngôn ngữ; hoặc để các lập trình viên chạy thử mã
trong suốt quá trình phát triển phần mềm. Ngoài ra, nó cũng có thể được sử
dụng như là một máy tính.
e. Lệnh và cấu trúc điều khiển:
Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải
kết thúc câu lệnh bằng bất kì kí tự gì. Cũng như các ngôn ngữ khác, Python
cũng có các cấu trúc điều khiển. Chúng bao gồm:
Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else), dùng để
thực thi có điều kiện một khối mã cụ thể.
Cấu trúc lặp, bao gồm:
Lệnh while: chạy một khối mã cụ thể cho đến khi điều kiện lặp có giá trị
false.
Vòng lặp for: lặp qua từng phần tử của một dãy, mỗi phần tử sẽ được đưa
vào biến cục bộ để sử dụng với khối mã trong vòng lặp.
Python cũng có từ khóa class dùng để khai báo lớp (sử dụng trong lập trình
hướng đối tượng) và lệnh def dùng để định nghĩa hàm.
f. Hệ thống kiểu dữ liệu:
7
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (hàm
nghĩa: ngầm). Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu
tại thời điểm dịch, mà là tại thời điểm thực thi. Khi thực thi, nếu một thao tác
trên một đối tượng bị thất bại, thì có nghĩa là, đối tượng đó không sử dụng một
kiểu thích hợp. Python cũng là một ngôn ngữ định kiểu mạnh. Nó cấm mọi thao
tác không hợp lệ, ví dụ cộng một con số vào chuỗi. Sử dụng Python, ta không
cần phải khai báo biến. Biến được xem là đã khai báo nếu nó được gán một giá
trị lần đầu tiên. Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu

của biến. Python có một số kiểu dữ liệu thông dụng sau:
int, long: số nguyên
float: số thực
complex: số phức
list: chuỗi có thể thay đổi
tuple: chuỗi không thể thay đổi
str: chuỗi kí tự không thể thay đổi
dict: từ điển
set: một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần.
Ngoài ra, Python còn có nhiều kiểu dữ liệu khác.
g. Module ( khối chương trình )
Python cho phép chia chương trình thành modules để có thể sử dụng lại
trong các chương trình khác. Nó cũng có sẵn một tập hợp các modules chuẩn
mà ta có thể sử dụng lại trong chương trình của ta. Các thư viện này cung cấp
nhiều thứ, như file I/O, các lời gọi hệ thống, sockets,…
h. Đa năng:
Python là một ngôn ngữ lập trình đơn giản nhưng rất hiệu quả. So với Unix
shell, Python hỗ trợ các chương trình lớn hơn và cung cấp nhiều cấu trúc hơn.
So với C, Python cung cấp nhiều cơ chế kiểm tra lỗi hơn. Vì các lí do đó,
Python là một ngôn ngữ lập trình cấp rất cao. Nó cũng có sẵn nhiều kiểu dữ liệu
cấp cao, ví dụ như các mảng linh hoạt (flexible arrays) ( ) và từ điển
(dictionaries) mà ta phải mất nhiều thời gian để hiện thực trên C. Python cũng
thích hợp với các chương trình lớn hơn cả Awk và Perl. Python cũng được sử
dụng để lập trình Web. Nó có thể được sử dụng như là một ngôn ngữ kịch bản.
Python được thiết kế để có thể nhúng và phục vụ như là một ngôn ngữ kịch bản
8
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

để tuỳ biến và mở rộng các ứng dụng lớn hơn. Được tích hợp sẵn nhiều công cụ

và có một thư viện chuẩn phong phú, Python cho phép người dùng dễ dàng tạo
ra các dịch vụ Web, sử dụng các thành phần COM hay CORBA ( ). Nó hỗ trợ
các định dạng email, dữ liệu Internet, HTML, XML và các ngôn ngữ đánh dấu
khác. Python cũng ứng dụng tất cả các giao thức Internet thông dụng như
HTTP, FTP,… Python cung cấp giao tiếp đến hầu hết cơ sở dữ liệu, có khả năng
xử lí văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công nghệ Web
khác. Python cũng đặc biệt hiệu quả cho lập trình tính toán khoa học qua các
công cụ Python Imaging Library, VTK, MayaVi 3D Visualization Toolkits,
Numeric Python, ScientificPython,… Python cũng có thể được sử dụng để phát
triển các ứng dụng Desktop. Người dùng có thể dùng wxPython, PyQt, PyGtk
để phát triển các ứng dụng giao diện đồ họa (GUI) chất lượng cao. Python có
thể hỗ trợ các GUI frameworks khác như MFC, Carbon, Delphi, X11, Motif, và
Tk. Python cũng có sẵn một unit testing framework để tạo ra các các bộ test
(test suites).
i. Multiple paradigms (đa biến hóa)
Python là một ngôn ngữ đa biến hóa (multiple paradigms). Có nghĩa là, thay
vì ép buộc mọi người phải sử dụng duy nhất một phương pháp lập trình, Python
lại cho phép sử dụng nhiều phương pháp lập trình khác nhau: hướng đối tượng,
có cấu trúc, chức năng, hoặc chỉ hướng đến một khía cạnh. Python kiểu kiểu
động và sử dụng bộ thu gom rác để quản lí bộ nhớ. Một đặc điểm quan trọng
nữa của Python là giải pháp tên động, kết nối tên biến và tên phương thức lại
với nhau trong suốt thực thi của chương trình.
2.2.3. web2py Framework
Web2py là một web framework mã nguồn mở miễn phí hỗ trợ mạnh bảo mật
kết nối cơ sở dữ liệu cho ứng dụng web, nó được viết trên nền tảng ngôn ngữ lập
trình Python. Web2py là một framework hoàn chỉnh chứa tất cả các thành phần
cần để xây dựng đầy đủ các phương thức của ứng dựng web.
Web2py được thiết kế dưới mô hình MVC giúp cho người lập trình dễ dàng
trong các việc thiết kế, hiện thực và kiểm tra. Web2py được xây dựng để bảo mật
vì nó sẽ tự động giải quyết nhiều vấn đề có thể dẫn tới lỗ hỏng bảo mật như: nó sẽ

kiểm soát tất cả đầu vào để tránh khỏi các vấn đề lỗi đầu ra, đổi tên các tập tin tải
lên(để chặn tấn công thư mục). web2py kiểm soát các vấn đề an ninh giúp người
lập trình không mặc phải các vấn đề về lỗ hổng.
2.3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương
9
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

đương với SQL Server của Microsoft). MySQL quản lý dữ liệu thông qua các
CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu.
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể
được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy
cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL.
Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu
của tài khoản có quyền sử dụng CSDL đó. Nếu không, chúng ta sẽ không làm
được gì cả giống như quyền chứng thực người dùng trong SQL Server vậy.

2.4. KỸ THUẬT TĂNG TỐC WEBSITE
Năm 2010 Google đã xác nhận tốc độ load của website sẽ là một tiêu chí
đánh giá thứ hạng trên bộ máy tìm kiếm Google. Theo đó, một website có tốc độ
load nhanh sẽ được ưu tiên hơn so với những trang có tốc độ load chậm. Chúng
nên nhớ rằng 80%-90% thời gian trình duyệt hiển thị ra một trang web mà bạn
đang xem là để tải các thành phần trong trang như: hình ảnh (images,) các dữ liệu
để định dạng tài liệu HTML (stylesheet - CSS), các đoạn script, flash, Đây
chính là những điểm chính quan trọng mà chúng cần quan tâm để tăng tốc website
của mình bên cạnh việc chúng ta dành thời gian cho công việc khó khăn hơn rất
nhiều là thiết kế lại hệ thống. Sau đây là các lưu ý mà chúng ta cần làm để tăng
tốc một trang web.
 Minimize HTTP Requests

 Use a Content Delivery Network
 Avoid empty src or href
 Add an Expires or a Cache-Control
Header
 Gzip Components
 Put StyleSheets at the Top
 Put Scripts at the Bottom
 Avoid CSS Expressions
 Make JavaScript and CSS External
 Reduce DNS Lookups
 Minify JavaScript and CSS
 Avoid Redirects
 Remove Duplicate Scripts
 Configure ETags
 Make AJAX Cacheable
 Flush the Buffer Early
 Use GET for AJAX Requests
2
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

 Post-load Components
 Preload Components
 Reduce the Number of DOM
Elements
 Split Components Across Domains
 Minimize the Number of iframes
 No 404s
 Reduce Cookie Size
 Use Cookie-Free Domains for

Components
 Minimize DOM Access
 Develop Smart Event Handlers
 Choose <link> over @import
 Avoid Filters
 Optimize Images
 Optimize CSS Sprites
 Do Not Scale Images in HTML
 Make favicon.ico Small and
Cacheable
 Keep Components under 25K
 Pack Components into a Multipart
Document
 Avoid Empty Image src

2
GVHD: ThS. Nguyễn Đình Loan Phương SVTH: Nguyễn Dương Ái Diệu - Nguyễn Vũ Phong
ThS. Vũ Minh Sang Nguyễn Hồ Duy Tri - Nguyễn Hồ Duy Trí

Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1. PHÂN TÍCH NGHIỆP VỤ
Chiến dịch tình nguyện mùa hè xanh được tổ chức thường niên hằng năm
vào tháng 7. Khởi đầu chuẩn bị chiến dịch Ban chấp hành Hội sinh viên
trường sẽ thành lập ban chỉ huy cấp Thành và lên phương hướng, kế hoạch
hoạt động.
Kế hoạch hoạt động của Ban chỉ huy cấp Thành sẽ xác định rõ thời gian,
thành phần tham dự chiến dịch, mục đích nội dung của chiến dịch; vạch rõ các
chương trình trọng điểm, các dự án sẽ thực hiện trong chiến dịch.
Các đơn vị của là các trường đại học, cao đẳng, các công ty tổ chức tình
nguyện, các quận huyện. Các đơn vị này sẽ nhận được thông báo chỉ đạo từ

ban chỉ huy sớm nhất. Các đơn vị sẽ thành lập ban chỉ huy cấp cơ sở, khảo sát
mặt trận và lập kế hoạch hoạt động. Kế hoạch hoạt động, danh sách các mặt
trận, nội dung của từng mặt trận… tất cả các danh sách và báo cáo trên các
đơn vị phải gửi về Ban chỉ huy cấp Thành để ban chỉ huy kiểm soát và duyệt
qua.
Khi kế hoạch của cơ sở được duyệt, các cơ sở bắt đầu giai đoạn tuyển
chiến sĩ. Các tình nguyện viên sẽ đăng kí tham gia các đội hình mà họ mong
muốn. Đến khi hết hạn đăng ký, các đơn vị tổ chức các hoạt động tuyển chọn
chiến sĩ để đảm bảo chất lượng trên nguyên tắc tình nguyện, kỷ luật, bố trí vào
đúng đội hình, nội dung công việc phù hợp với nguyện vọng, sở trường của
chiến sĩ. Danh sách chiến sĩ được các đơn vị gửi lên ban chỉ huy cấp Thành.
Bắt đầu chiến dịch ban chỉ huy cấp cơ sở nhận chỉ đạo và nhiệm vụ từ cấp
trên rồi phổ biến phân công cho chiến sĩ. Các chiến sĩ đã được tuyển chọn phải
trải qua một đợt tập huấn để có chuẩn bị hành trang tham gia vào chiến dịch.
Hằng tuần các đơn vị sẽ báo cáo tình hình hoạt động trong tuần cho ban chỉ
huy cấp trên.
3.2. THIẾT KẾ USECASE DIAGRAM
3.2.1. Usecase diagram tổng quan của hệ thống

×