Công việc quản lý lịch giảng dạy và sắp xếp lịch thi là một công việc thường xuyên trong mỗi kì học của giảng viên và trưởng bộ môn.. Với mục tiêu số hóa dữ liệu lịch giảng dạy và lịch c
Trang 1LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong trường Đại học Công Nghệ Thông Tin Và Truyền Thông nói chung và các thầy cô giáo trong khoa Công Nghệ Thông Tin, bộ môn Công Nghệ Phần Mềm nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua
Đặc biệt em xin gửi lời cảm ơn đến cô giáo ThS Nguyễn Thu Phương
đã tận tình hướng dẫn, trực tiếp chỉ bảo em trong suốt thời gian làm thực tập tốt nghiệp Trong thời gian làm việc với cô, em không những tiếp thu thêm nhiều kiến thức bổ ích từ cô mà còn học được tinh thần làm việc, thái độ tìm tìm hiểu học tập nghiêm túc, hiệu quả Đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này
Công việc quản lý lịch giảng dạy và sắp xếp lịch thi là một công việc thường xuyên trong mỗi kì học của giảng viên và trưởng bộ môn Hiện nay việc quản lý bằng file excel tải từ website của nhà trường là khó khăn, giao diện không trực quan Bên cạnh đó việc tìm kiếm giảng viên không trùng lịch dạy để sắp xếp coi thi nếu làm bằng tay là một công việc khó khăn đòi hỏi thời gian lớn Chính vì vậy nhu cầu cần thiết một công cụ để hỗ trợ việc quản
lý lịch giảng dạy và sắp xếp lịch coi thi là vô cùng cần thiết
Bên cạnh đó việc sử dụng dữ liệu từ file excel là khó khăn để phát triển các ứng dụng hỗ trợ Với mục tiêu số hóa dữ liệu lịch giảng dạy và lịch coi thi của giảng viên bằng cơ sở dữ liệu nhằm mục đích cung cấp dữ liệu cho phát triển các ứng dụng sử dụng dữ liệu lịch giảng dạy của giảng viên
Với mục tiêu và lý do như trên nên em chọn đề tài “Xây dựng hệ thống
hỗ trợ phân công, quản lý lịch cho giáo viên trường Đại Học Công Nghệ Thông Tin và Truyền Thông” Em hi vọng trong quá trình tìm hiểu xây
dựng đề tài có thể giúp bản thân có thêm nhiều kiến thức bổ ích phục vụ cho
Trang 2quá trình học tập và làm việc sau này Trong quá trình làm đề tài còn nhiều thiếu xót và hạn chế em mong nhận được sự đóng góp ý kiến của quý thầy cô
để em có thể hoàn thành tốt nhất mọi công việc
Do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng đề tài đồ án tốt nghiệp của em khó tránh khỏi những thiếu sót Em rất mong nhận được những ý kiến đóng góp của quý Thầy Cô và các bạn để đồ án tốt nghiệp của
em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Thái nguyên, ngày tháng năm 2016
Sinh viên
Bùi Văn Hiếu
Trang 3LỜI CAM ĐOAN
Em xin cam đoan rằng đây là bài đồ án tốt nghiệp của em, được sự hướng dẫn từ Giáo viên Th.S Nguyễn Thu Phương – giảng viên trường đại học Công nghệ thông tin và truyền thông Thái Nguyên, Đại học Thái Nguyên, các nội dung nghiên cứu và kết quả trong đề tài này là trung thực và không sao chép từ các báo cáo thực tập và đồ án khác trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính bản thân thu thập từ các nguồn khác nhau đã được chỉ dẫn trong tài liệu tham khảo Nếu có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước hội đồng
Thái nguyên, ngày tháng năm 2016
Sinh viên
Bùi Văn Hiếu
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 3
MỤC LỤC 4
LỜI NÓI ĐẦU 7
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 8
1.1 Đặt vấn đề 8
1.1.1 Mục đích xây dựng đề tài 8
1.1.2 Phạm vi đề tài 8
1.2 Cở sở lý thuyết 8
1.2.1 Cakephp Framwork 8
1.2.2 Ngôn ngữ HTML 13
1.2.3 Ngôn ngữ Javascript 15
1.2.4 Ngôn ngữ PHP 16
1.2.5 Hệ quản trị CSDL MySQL 20
1.2.6 Công nghệ Responsive Boostrap 21
1.2.7 Json 27
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 28
2.1 Khảo sát hệ thống 28
2.1.1 Thực trạng việc phân công của bộ môn CNPM 28
2.1.2 Phần mềm quản lý lịch hiện nay 29
2.1.3 Mô tả hệ thống 29
2.1.4 Một số bảng biểu kèm theo 30
2.2 Mục tiêu của đề tài 31
Trang 52.3 Các yêu cầu chức năng của hệ thống 31
2.4 Phân tích thiết kế 32
2.4.1 Biểu đồ Use case 32
2.4.2 Biểu đồ cộng tác 37
2.4.3 Biểu đồ trình tự 40
2.4.4 Biểu đồ lớp 44
2.4.5 Thiết kế cơ sở dữ liệu 45
2.4.6 Thiết kế API 46
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 48
3.1 Giao diện trang đăng nhập 48
3.2.Giao diện trang import lịch giảng dạy 49
3.3.Giao diện trang xem lịch giảng dạy 49
3.4 Giao diên trang import kế hoạch thi 50
3.5.Giao diện trang sắp xếp lịch thi 50
3.6.Giao diện đăng nhập trang quản trị 51
3.7 Giao diện menu quản trị 51
3.8 Ứng dụng sử dụng api – ICTU SOCIAL 53
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 60
Trang 6DANH MỤC HÌNH
Hình 2.1 cấu trúc thư mục của cakephp 10
Hình 2 2 Sơ đồ hoạt động của cakephp 11
Hình 2.3: Cấu trúc thư mục của bootstrap 23
Hình 2.4: Ví dụ về Bootstrap 24
Hình 2.5: Ví dụ về Bootstrap 26
Hình 3.1: Lịch giảng dạy được sử dụng mẫu 30
Hình 3.2: Lịch thi được sử dụng mẫu 31
Hình 3.3: Biểu đồ use case user 33
Hình 3.4: Biểu đồ user tài khoản trưởng bộ môn 34
Hình 3.5: Biểu đồ use case Admin 35
Hình 3.6: Biểu đồ UC đăng nhập 37
Hình 3.7: Biểu đồ Use case import lịch giảng dạy 38
Hình 3.8: Biểu đồ Use case xem lịch giảng dạy 38
Hình 3.9: Biểu đồ Use case Import kế hoạch thi 38
Hình 3.10: Biểu đồ Use case sắp xếp lịch thi 39
Hình 3.12: Biểu đồ trình tự đăng nhập 40
Hình 3.13: Biểu đồ trình tự import lịch giảng dạy 41
Hình3.14: Biểu đồ trình tự xem lịch giảng dạy 41
Hình 3.15: Biểu đồ trình tự import kế hoạch thi 42
Hình 3.17: Biểu đồ trình tự xem lịch thi 43
Hình 3.18: Biểu đồ lớp 44
Hinh 3.19 Thiết kế cơ sở dữ liệu 45
Hình 4.1: Giao diện trang đăng nhập 48
Hình 4.4: Giao diện import kế hoạch thi 50
Hình 4.5: Giao diện sắp xếp lịch thi 51
Hình 4.6: Giao diện đăng nhập trang quản lý 51
Trang 7LỜI NÓI ĐẦU Tổng quan về vấn đề nghiên cứu
Lý do chọn đề tài
Dựa trên tình hình thực tế về việc quản lý giảng viên và phân công coi thi
ở bộ môn công nghệ phần mềm Hiện tại việc giảng viên tự quản lịch cá nhân thông qua giấy tờ hoặc quản lý file excel trên máy tính Việc thay đổi lịch trong quá trình giảng dạy là rất khó và khi phân công thi vẫn còn tính trạng trùng lịch thi và khó khăn cho người phân công Hiện tại có một số hệ thống quản lý nhưng chưa đáp ứng được nhu cầu thực tế
Mục tiêu nghiên cứu
Mục tiêu của đề tài là xây dựng ra hệ thống quản lý lịch giảng viên, hỗ trợ tích cực trong quá trình phân công lịch thi
Giúp giảng viên xem và cập nhật lịch cá nhân nhanh chóng tiện lợi Cán bộ phân công coi thi được hỗ trợ tiện lợi, dễ dàng, đảm bảo không trùng lịch của giảng viên
Trang 8CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề
Từ thực tế quá trình quản lý lịch cá nhân của giảng viên Sự trùng chéo khi phân công coi thi và khó khăn khi xem lịch giảng dạy của giảng viên
Để cho quá trình quản lý lịch cá nhân trở nên đơn giản và số hóa hỗ trợ giảng viên trong quá trình cập nhật và quản lý lịch của bản thân em đưa ra
quyết định chọn đề tài: “Xây dựng hệ thống hỗ trợ phân công, quản lý lịch cho giáo viên trường Đại Học Công Nghệ Thông Tin và Truyền Thông” 1.1.1 Mục đích xây dựng đề tài
Xây dựng hệ thống website cho phép import và quản lý lịch giảng dạy của giảng viên Từ dữ liệu về lịch giảng dạy của giảng viên hỗ trợ quá trình phân công lịch thi đảm bảo không bị trùng lặp
1.1.2 Phạm vi đề tài
Hệ thống áp dụng cho trường Đại Học Công Nghệ Thông Tin và Truyền Thông và các trường đại học sử dụng chung mấu biểu trong khối đại học Thái Nguyên
1.2 Cở sở lý thuyết
1.2.1 Cakephp Framwork
CakePHP là một Framework cho php Mục đích của nó là cung cấp một framework cho người sử dụng php phát triển những ứng dụng web nhanh, mạnh mẽ, linh họat và điều quan trọng là CakePHP là một OpenSource Để sử dụng nó, yêu cầu người làm phải biết những kiến thức như: Cơ bản về PHP và HTML, Kiến trúc MVC, Lập trình hướng đối tượng
Một số tính năng của CakePHP :
• Nguồn mở, miễn phí, có cộng đồng sử dụng và hỗ trợ rộng lớn
• Tương thích PHP4 và PHP5
Trang 9• Mô hình MVC
• Đa ngôn ngữ
• Sinh code tự động
• Caching
• Phân quyền (ACL)
• Kiểm tra ràng buộc dữ liệu
• Xây dựng nhiều thư viện hỗ trợ cho View như: Ajax, HTML Form, Javascript…
• Xây dựng nhiều thư viện hỗ trợ cho Controller: Email, Security,
Session, Cookies, Request Handling
• Dễ dàng viết thêm thư viện hỗ trợ, liên kết với ứng dụng khác (thông qua vendors)
• Đa giao diện
• Hỗ trợ nhiều hệ quản trị CSDL
Cấu trúc thư mục CakePHP
Sau khi tải và giải nén CakePHP, bạn có thể thấy các files và thư mục
app: là nơi chứa mã nguồn ứng dụng của bạn (phần này quang
trọng)
cake: là nơi chứa mã nguồn của CakePHP Bạn không nên chỉnh
sửa các files trong thư mục này nếu bạn không hiểu rõ về chúng
vendors: chứa ứng dụng của bên thứ 3, phục vụ cho ứng dụng của
bạn
plugins: chứa các thành phần mở rộng dùng cho ứng dụng
Trang 10Hình 2.1 cấu trúc thư mục của cakephp Ghi chú :
Config Chứa file cấu hình hệ thống
Controllers Chứa các controller và component
Locale Chứa file ngôn ngữ , phục vụ cho ứng dụng đa ngôn ngữ
Molels Chứa file Model và behavor, datasource
Plugins Chứa các gói mở rộng
TmpThư mục tạm của ứng dụng
Vendors Chứa ứng dụng của bên thứ 3
Views Chứa các file giao diện
Webroot Chứa tài liệu (hình ảnh,file ), file CSS , file javascript…
Kiến trúc CakePHP
CakePHP hoạt động theo mô hình MVC
Trang 11Mô hình này chia ứng dụng ra làm 3 phần chính:
• Model
• View
• Controller
Cách hoạt động chung của CakePHP trên mô hình MCV
Hình 2 2 Sơ đồ hoạt động của cakephp
Ví dụ về mô hình MVC căn bản :
Ta có liên kếthttp://abc.com/product/view/10
- User A click vào 1 liên kết có dạnghttp://abc.com/products/view/10thì :
Trình duyệt sẽ gởi yêu cầu tới server
Bộ phận điều vận Dispatcher(một thành phần của CakePHP) kiểm tra phần tử products/view/10và gởi yêu cầu tới controller tương
- Tham số thứ 1 : ta có Controllerproduct
- Tham số thứ 2 : ta có view là tên của 1 action của Controllerproductsẽ được
gọi để thực thi 1 hành động nào đó
- Tham số thứ 3 : ta có 1 giá trị 10, thông thường tham số thứ 3 có thểm có hoặc không, tùy vào mục đích sử dụng, ở đây tôi có tham số = 10 để xem sản
phẩm có id = 10
Trang 12- Giải nén, cho vào thư mục của web server
- Trong ví dụ này thư mục websever gốc là :C://xampp/htdocs
- Vậy ta có cấu trúc như sau :C://xampp/htdocs/cakephp
Sau khi cài đặt thành công truy cập vào đường dẫn như hình
Trang 131.2.2 Ngôn ngữ HTML
HTML (viết tắt từ HyperText Markup Language) là một ngôn ngữ đánh dấu siêu văn bản, được thiết kế ra để xây dựng các trang web.Vậy thế nào là ngôn ngữ đánh dấu siêu văn bản? Ta hãy cùng xem xét từng khía cạnh một:
Siêu văn bản (HyperText): Như ta đã biết, liên kết siêu văn bản là một từ hay một câu trong trang Web dùng để chỉ đến trang Web khác Khi nhấn chuột lên một trong các liên kết này, trình duyệt web (như Netscape Navigator hoặc Internet Explorer) sẽ đưa ta tức khắc đến trang Web kia mà không cần hỏi han
gì Vì những liên kết siêu văn bản này thật sự là tính năng đặc trưng của World Wide Web, các trang Web thường được biết như là những tài liệu siêu văn bản
Vì thế, HTML có từ siêu văn bản trong tên của nó
Đánh dấu (Markup): Có từ điển định nghĩa markup là các chỉ dẫn chi tiết về kiểu dáng được ghi trên bản viết tay để xếp chữ in Như vậy, chúng ta
có thể hiểu đó là các lệnh chi tiết về kiểu dáng được đánh vào tài liệu văn bản
để đưa lên WWW
Nói chung, HTML tồn tại như là các tập tin văn bản chứa trên các máy tính nối vào mạng Internet Các file này có chứa thẻ đánh dấu và thường được
Trang 14truyền đi trên mạng internet thông qua giao thức mạng HTTP Sau đó thì phần HTML của chúng sẽ được hiển thị thông qua một trình duyệt web, một loại phần mềm trực quan đảm nhiệm công việc đọc văn bản của trang cho người
sử dụng
Cấu trúc của một tài liệu HTML
Các tập tin HTML luôn bắt đầu bằng thẻ <HTML>.Thẻ này không làm
gì khác ngoài nhiệm vụ báo cho trình duyệt Web biết rằng nó đang đọc một tài liệu có chứa các mã HTML.Tương tự, dòng cuối trong tài liệu định dạng HTML luôn luôn là thẻ </HTML>, có tác dụng thông báo sự kết thúc của văn bản HTML với trình duyệt
Chi tiết kế tiếp trong catalog thẻ HTML dùng để chia tài liệu thành hai phần: đầu và thân
Phần đầu giống như lời giới thiệu cho trang Các trình duyệt Web dùng phần đầu này để thu nhặt các loại thông tin khác nhau về trang Để xác định phần đầu, ta sử dụng thẻ <HEAD> và thẻ </HEAD> ngay sau thẻ <HTML> Mặc dù ta có thể đặt một số chi tiết bên trong phạm vi phần đầu này, nhưng phổ biến nhất là tên trang Nếu có ai đó xem trang này trong browser, thì tên trang sẽ xuất hiện trong dải tên của cửa sổ browser Để xác định tên trang, ta đặt đoạn văn bản tên đó giữa các thẻ <TITLE> và </TITLE>
Phần thân là nơi nhập vào các văn bản sẽ xuất hiện trên trang Web lẫn các thẻ khác quy định dáng vẻ của trang Để xác định phần thân, ta đặt các thẻ
<BODY> và </BODY> sau phần đầu (dưới </HEAD>)
Dưới đây là cấu trúc cơ bản của một trang web định dạng HTML:
<HTML>
<HEAD>
<TITLE> tên trang <TITLE>
Các thẻ tiêu đề khác
Trang 15Javascript là ngôn ngữ dưới dạng script có thể gắn với các file HTML
Nó không được biên dịch mà được chương trình duyệt diễn dịch.Không giống Java phải chuyển thành mã để trình duyệt biên dịch, trình duyệt đọc Javascript dưới dạng mã nguồn Chính vì vậy, ta có thể dễ dàng học Javascript qua các
ví dụ bởi ta có thể thấy cách sử dụng Javascript trên các trang web
Javascript có khả năng đáp ứng các sự kiện như tải hay loại bỏ các form.Khả năng này cho phép Javascript trở thành ngôn ngữ script động
Giống với HTML và Java, Javascript được thiết kế độc lập với hệ điều hành.Nó có thể chạy trên bất kì hệ điều hành nào có hỗ trọ Javascript Ngoài
ra, Javascript còn giống Java ở khía cạnh an ninh là không thể đọc và viết vào file của người dùng
Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng.Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập
Trang 16Hiện nay, JavaScript được sử dụng rất nhiều trong việc thiết kế trang web động và một số hiệu ứng Hình ảnh thông qua DOM Ngoài ra, JavaScript còn được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi Hình ảnh, Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt
1.2.4 Ngôn ngữ PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối
ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Ngày nay, PHP đã được sử dụng rộng rãi và phổ biến nhất để xây dựng các các trang web động Chúng ta có thể thấy trên nhiều diễn đàn, các cổng thông tin Portal, các website cá nhân được thiết kế bằng mã nguồn mở của PHP Vì thế mà PHP đang có một chỗ đứng vững chắc trong thế giới các ngôn ngữ lập trình web
Xuất phát từ thực tế trên, đặc biệt là những ưu thế mà PHP đem lại, em
đã quyết định lựa chọn ngôn ngữ này để thực hiện đề tài xây dựng website du lịch mà em đã nghiên cứu trong quá trình thực tập
Trang 17a) Cú pháp căn bản của PHP
Như đã trình bày, PHP dựa trên cú pháp của ngôn ngữ lập trình C nên về
cơ bản cú pháp của nó tương tự như C Ngoài ra, để lập trình bằng PHP ta cần lưu ý mấy điểm sau:
Cuối mỗi câu lệnh phải có dấu ;
Biến trong PHP có tiền tố là $
Khai báo biến không có kiểu dữ liệu
Khai báo biến có phân biệt chữ hoa và chữ thường
Nên có giá trị khởi tạo cho biến khai báo
Mỗi phương thức đều được bắt đầu bằng dấu { và kết thúc bằng }
Phải có ghi chú cho mỗi feature mới
Để giải thích cho mỗi ghi chú ta dùng dấu // hoặc #
Sử dụng /* để mở đầu và */ kết thúc cho mỗi đoạn ghi chú
b) Kiểu dữ liệu
PHP hỗ trợ 8 kiểu dữ liệu chính:
4 kiểu dữ liệu vô hướng: boolean, integer, float (double), string
2 kiểu dữ liệu tổ hợp: array, object
2 kiểu dữ liệu đặt biệc: resource, NULL
c) Biến
Một biến trong PHP được bắt đầu bằng ký tự $ và đi theo ngay sau đó là
tên của biến Ví dụ: $a: biến có tên là a
d) Câu lệnh
Do cú pháp của PHP dựa trên ngôn ngữ C nên các câu lệnh điều khiển của
nó cũng hoạt động tương tự như trong C Các câu lệnh điều khiển trong PHP:
Trang 18 If (điều kiện) {câu lệnh;}
If (điều kiện) {câu lệnh;} else {câu lệnh;}
If (điều kiện) {câu lệnh;} elseif {câu lệnh;}
For (biểu thức 1; biểu thức 2; biểu thức 3) câu lệnh;
While (điều kiện)
Do … while (điều kiện)
e) Hàm
Hàm do người dùng định nghĩa
Trong lập trình, có một số đoạn mã được dùng nhiều lần ở nhiều nơi khác nhau trong chương trình Sẽ rất phiền và khó sửa lỗi nếu như ta phải viết lặp đi lặp lại 1 đoạn mã đó ở nhiều nơi PHP cung cấp một giải pháp đó là hàm do người dùng định nghĩa Ta có thể đưa đoạn mã đó vào trong 1 hàm, và ở chỗ nào cần dùng đoạn mã đó ta chỉ cần gọi hàm, khi cần sửa đổi, ta chỉ cần sửa đổi
1 chỗ duy nhất là nội dung của hàm chứ không cần phải sửa ở nhiều nơi trong chương trình
Cú pháp để tạo 1 hàm do người dùng định nghĩa như sau:
function tênHàm($tham_số1, $tham_số2, , $tham _sốn) {
Trang 19Khi tham số của hàm không được truyền, nó sẽ nhận giá trị mặc định Ta
có thể gán giá trị mặc định cho tham số của hàm:
Trang 201.2.5 Hệ quản trị CSDL MySQL
MySQL là hệ quản trị CSDL mã nguồn mở phổ biến nhất thế giới.Đây
là hệ CSDL dùng cho các ứng dụng web vừa và nhỏ Tuy không phải là hệ quản trị CSDL lớn nhưng MySQL cũng có trình giao diện trên Wingdows hay Linux, cho phép người dùng thao tác các hành động liên quan đến CSDL
Cũng giống như các CSDL khác, khi làm việc với CSDL MySQL, ta đăng kí kết nối, tạo CSDL, quản lý người dùng, phân quyền sử dụng, thiết kế đối tượng table của CSDL và xử lý dữ liệu
Để thao tác trên CSDL, ta có thể dùng trình quản lý dạng đồ hoạ hay dùng dòng lệnh (Command line) Tất nhiên, dùng hệ quản trị có hỗ trợ trình giao diện đồ hoạ thì tiện lợi hơn.Tuy vậy, dù dùng dưới Hình thức nào thì mục đích cũng là quản lý và thao tác trên CSDL
lệnh cơ bản của MySQL
Hiển thị tất cả database trong mysql server:
SHOW DATABASES;
Tạo một database: CREATE DATABASE {tên database};
Ví dụ tạo một database có tên là "champiblog" như sau:
create database champiblog;
Xóa một database: DROP DATABASE {tên database};
Ví dụ khi muốn xóa database có tên là "champiblog"
DROP DATABASE champiblog;
Tạo một bảng: CREATE TABLE [tên table] (cột 1, cột 2 );
Ví dụ muốn tạo một table có tên là "member" có hai cột dữ liệu là "userid"
và "username": CREATE TABLE member (userid int(7), username text);
Trang 21 Nhập dữ liệu vào bảng: INSERT INTO [tên table] ([cột 1],[cột 2], ) VALUES (giá trị 1, giá trị 2, );
Vị dụ nhập dữ liệu cho table "member" đã được tạo ở trên: INSERT INTO member (userid,username) VALUES (1,'champi');
Lấy dữ liệu từ table: SELECT {tên cột muốn hiển thị} FROM [tên table];
Ví dụ lấy tất cả các cột: SELECT * FROM member;
Hoặc là chỉ lấy 1 số cột nhất định: select username from member;
Sửa đổi dữ liệu trong table: UPDATE [tên table] SET [cột muốn sửa]='giá trị mới' WHERE [điều kiện] = 'giá trị';
Ví dụ muốn sửa tên thành viên "champi" thành "anh champi" (userid của
champi = 1): UPDATE member SET username='anh champi' WHERE userid = 1;
Đếm số data có trong table: SELECT COUNT FROM [tablename];
Ví dụ: SELECT COUNT FROM member;
Xóa dữ liệu: DELETE FROM [tablename] WHERE ;
Ví dụ: DELETE FROM member WHERE userid=1;
Xóa table: DROP TABLE [tên table];
Ví dụ :DROP TABLE member;
1.2.6 Công nghệ Responsive Boostrap
Giới thiệu về Twitter Bootstrap
Twitter Bootstrap bao gồm các mã CSS + HTML cơ bản cho typography, forms, buttons, tables, grids, navigation, và nhiều thành phần khác của website
Twitter Bootstrap cung cấp lưới cố định (fixed) rộng 940px và 12 cột Tất nhiên là cũng có giải pháp cho việc dùng layout dạng động (fluid)
Trang 22 Style của các phần tử HTML trong Twitter Bootstrap khá đơn giản và thanh lịch Ví dụ như phần đổ bóng trong input, highlight của bảng biểu, các
mã CSS hiển thị cảnh báo, tabs, phân trang…
Trang 23 Tại sao lại sử dụng Twitter Bootstrap
Twitter Bootstrap giúp chúng ta giảm thiểu thời gian thiết kết html và css.Twitter Bootstrap định nghĩa sẳn các class css công việc của chúng ta chỉ
là sử dụng các class đó vào mục đích của mình.Twitter Bootstrap còn hổ trợ Responsive design một cách làm giao diện đa thiết bị rất được ưu chuộng trong thời gian gần đây
Cách sử dụng Twitter Bootstrap
Tải Bootstrap tại đây: http://twitter.github.io/bootstrap/
Sau khi tải về, bạn sẽ có một file Zip Tiến hành giải nén ta có một thư mục có tên bootstrap, bên trong có 3 thư mục : css, img, js
Hình 2.3: Cấu trúc thư mục của bootstrap
Bước 1: Chúng ta tạo 1 file html có tên là index.html ở trong thư mục bootstrap vừa giải nén phía trên
Trang 24Vậy là xong phần head Giờ chúng ta viết tiếp phần body với 2 textbox và
2 button như sau:
Hình 2.4: Ví dụ về Bootstrap
Trang 25Vậy là xong Ví dụ chỉ đơn giản vậy thôi
Bạn sẽ thắc mắc là sao chạy nút submit và reset lại không nằm xuống phía dưới?
Hãy thu nhỏ trình duyệt và bạn sẽ thấy điều kỳ diệu:
Trang 26Hình 2.5: Ví dụ về Bootstrap
Trang 271.2.7 Json
JSon là từ viết tắt của JavaScript Object Notation, nó thực chất là một chuỗi
có cấu trúc nhất định, ví dụ như cấu trúc tại:
"bomon": "C\u00f4ng ngh\u1ec7 ph\u1ea7n m\u1ec1m",
"khoa": "Khoa c\u00f4ng ngh\u1ec7 th\u00f4ng tin"
}
}
Cấu trúc của JSon có thể bắt đầu bằng một cặp dấu ngoặc vuông [] như trên, khi đó nó biểu diễn một mảng các phần tử bên trong (bên trên là mảng gồm 3 phần từ) Hoặc cũng có thể bắt đầu bằng cặp dấu ngoặc nhọn {}, khi đó nó biễu diễn một phần tử và trong mỗi phần tử đều có các cặp key-value (khóa và giá trị), như trên bạn có thể thấy “id”:”2″ là một cặp key- value Hoặc JSon cũng có thể chỉ là một cặp key-value hay một chuỗi rất
Trang 28bình thường Nhưng ở đây mình muốn các bạn chú ý và phân biệt JSon trong
cặp ngoặ vuông và ngoặc nhọn vì cách xử lý của chúng rất khác nhau
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 2.1 Khảo sát hệ thống
2.1.1 Thực trạng việc phân công của bộ môn CNPM
Quy trình quản lý lịch dạy và lịch coi thi
Từ chương trình đào tạo nhà trường sẽ tổ chức các lớp học, sau đó từ danh sách lớp học sẽ phân công ra các giảng viên giảng dạy Lịch giảng dạy của giảng viên sẽ được xuất thành file excel cụ thể Khi kết thúc kì học nhà trường sẽ tạo ra kế hoạch thi cho cả trường được gửi về các bộ môn Các bộ môn lọc ra các môn thi của bộ môn và sau đó lọc và tìm ra giảng viên không trùng lịch để đi coi thi
Với số lượng giảng viên ở các bộ môn là lớn việc quản lý lịch dạy
Từ những hạn chế trên vấn đề đặt ra là phải xây dựng một công cụ khắc phục được những hạn chế và giảm công việc cũng như thời gian cho người phân công giảng dạy và coi, chấm thi Giúp giảng viên nắm bắt lịch giảng dạy được dễ dàng và nhanh chóng
Trang 292.1.2 Phần mềm quản lý lịch hiện nay
Hiện nay google cũng có phần mềm google calendar giúp người dùng quản lý được thời gian biểu nhưng nó cũng có hạn chế trong việc quản lí lịch giảng dạy và hỗ trợ phân công coi, chấm thi như:
o File excel để nhập lịch của trường là không theo mẫu như google yêu cầu
o Hệ thống không hỗ trợ phân công coi thi
o Không thể quản lý lịch của nhóm thành viên
o Để thêm lịch phải thêm bằng tay mất thời gian và không thực sự tiện lợi
Trang 30 Chức năng xem lịch giảng dạy của giảng viên khác: giúp giảng viên
có thể xem được lịch giảng dạy của các giảng viên trong bộ môn
Chức năng phân công: giúp cán bộ phân công coi, chấm thi phân công coi, chấm thi