Đồ án tốt nghiệp xây dựng trang web
TỔNG QUAN VỀ CỞ SỞ LÝ THUYẾT
Tổng quan về ngôn ngữ PHP
PHP (Personal Home Page hay PHP Hypertext Preprocessor) được giới thiệu vào năm 1994 bởi R Lerdoft, là một ngôn ngữ lập trình script chạy trên máy chủ và trả về mã HTML cho trình duyệt Với khả năng xử lý trên máy chủ, các trang web viết bằng PHP có thể hoạt động hiệu quả trên bất kỳ hệ điều hành nào Sự phát triển của PHP trong thiết kế web ngày càng gia tăng, cho phép các lập trình viên dễ dàng xây dựng và quản lý nội dung trực tuyến Khi một trang web sử dụng PHP, toàn bộ quá trình xử lý thông tin diễn ra trên máy chủ, giúp tạo ra kết quả cuối cùng là mã HTML dễ nhìn và thân thiện với người dùng.
PHP, giống như nhiều ngôn ngữ lập trình khác, có khả năng kết hợp trực tiếp với HTML Mã PHP được phân tách rõ ràng khỏi HTML thông qua các thẻ mở và đóng Khi tài liệu được phân tích, quá trình xử lý PHP chỉ diễn ra tại những điểm quan trọng, sau đó kết quả sẽ được xuất ra.
Mã PHP được bao bọc trong các thẻ đặc biệt, cho phép chuyển đổi giữa chế độ PHP và HTML Cú pháp của PHP tương tự như nhiều ngôn ngữ lập trình khác, đặc biệt là C và Perl.
Ta có thể nhúng các lệnh của php vào trang HTML. Đoạn mã php luôn được bắt đầu và kết thúc bởi cặp thẻ theo cú pháp:
Đoạn mã php có thể đặt bất kỳ đâu trong tài liệu.
Thông thường một trang php bao gồm các thẻ HTML như một trang HTML nhưng có thêm các đoạn mã php.
Mỗi câu lệnh trong php được kết thúc bằng dấu (;) Dấu này là một toán tử dùng để phân biệt các cấu trúc với nhau.
Có hai câu lệnh cơ bản dùng để hiển thị các câu text ra browser là : echo và print
+ Các file php phải có phần mở rộng là php Nếu phần mở rộng là html thì đoạn mã php sẽ không được thực thi
+ Có thể viết các câu chú thích cho đoạn mã php Có hai cách viết là: /* chú thích */ hoặc // chú thích
+ Đoạn mã php cũng có thể đặt trong cặp thẻ:
Php hỗ trợ 5 kiểu dữ liệu như sau :
+ Integer: sử dụng cho giá trị có kiểu dữ liệu là số nguyên.
+ Double: sử dụng cho giá trị có kiểu dữ liệu là số thực.
+ String: sử dụng cho các giá trị có kiểu dữ liệu là chuỗi và ký tự.
+ Array: sử dụng cho các giá trị có kiểu dữ liệu là mảng.
+ Object: sử dụng cho các giá trị có kiểu dữ liệu là đối tượng của lớp.
+ Biến dùng để lưu giá trị như: xâu, số, ký tự, mảng,…
+ Tất cả các biến trong php đều bắt đầu bằng ký hiệu $
+ Biến được khai báo tự động khi sử dụng (gán giá trị) cho nó theo cú pháp:
PHP là ngôn ngữ lập trình không định kiểu, cho phép người dùng không cần khai báo kiểu dữ liệu cho biến Ngôn ngữ này tự động chuyển đổi kiểu của biến dựa trên giá trị mà nó chứa.
+ Lưu ý: Quy tắc đặt tên biến trong php giống như trong C, C++, …
+ Nếu biến được khai báo trong Script thì có phạm vi trong toàn Script.
+ Nếu biến được khai báo trong một hàm nào đó thì chỉ có tác dụng trong hàm đó.
Kiểm tra/ loại bỏ biến:
+ Sử dụng hàm isset(Tên_biến) để kiểm tra biến đó có tồn tại hay không? Kết quả trae về kiểu boolean.
+ Sử dụng hàm unset(Tên_biến) để loại bỏ biến đang tồn tại ra khỏi trạng thái thực thi.
+ Sử dụng hàm empty(Tên_biến) để kiểm tra biến tồn tại và không rỗng.
+ Hằng trong php được khai báo giống như các ngôn ngữ C, C++.
+ Tên hằng thường được viết bằng chữ hoa.
+ Cú pháp khai báo hằng như sau: define (“Tên_hằng”, giá_trị); hoặc define (Tên_hằng, giá trị);
Ví dụ: Ta có khái báo hằng MAX = 100 như sau: define (“MAX”, 100); define (MAX, 100);
Cú pháp: if (điều kiện) câu lệnh php;
Cú pháp: for (init; condition; increment)
Mô hình MVC là gì ?
MVC, viết tắt của 'Model View Controller', là một kiến trúc quan trọng mà các nhà phát triển sử dụng để xây dựng ứng dụng Kiến trúc này giúp chúng ta hiểu rõ cách thức hoạt động của luồng dữ liệu trong ứng dụng, từ đó cải thiện cấu trúc và hiệu suất của nó.
Mô hình phân bố source code được chia thành ba phần, mỗi phần đảm nhiệm một nhiệm vụ riêng biệt và độc lập với các phần khác.
Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller :
Model là thành phần chịu trách nhiệm tương tác với dữ liệu và hệ quản trị cơ sở dữ liệu như MySQL hay MSSQL Nó bao gồm các lớp và hàm xử lý các nghiệp vụ như kết nối cơ sở dữ liệu, thực hiện truy vấn, cũng như thêm, xóa và sửa dữ liệu.
View là khu vực chứa các giao diện như nút bấm, khung nhập, menu và hình ảnh, có vai trò quan trọng trong việc hiển thị dữ liệu và hỗ trợ người dùng tương tác với hệ thống.
Controller là phần tiếp nhận yêu cầu xử lý từ người dùng, bao gồm các class và function thực hiện nhiều nghiệp vụ logic Nó giúp truy xuất thông tin cần thiết từ lớp Model và hiển thị dữ liệu đó cho người dùng thông qua lớp View.
Sự tương tác giữa các thành phần :
+ Controller tương tác với qua lại với View
+ Controller tương tác qua lại với Model
+ Model và View không có sự tương tác với nhau mà nó tương tác với nhau thông qua Controller.
Luồng đi trong mô hình MVC như thế nào ?.
Khi một yêu cầu từ máy client được gửi tới server, Controller sẽ tiếp nhận và xử lý yêu cầu đó Nếu cần thiết, Controller có thể liên hệ với Model, bộ phận đảm nhiệm việc làm việc với cơ sở dữ liệu, để hỗ trợ xử lý yêu cầu.
Khi hoàn tất yêu cầu, kết quả sẽ được gửi về View, nơi mà mã HTML được tạo ra để hiển thị giao diện trên trình duyệt Ưu điểm của mô hình MVC là giúp tách biệt rõ ràng giữa dữ liệu, logic và giao diện người dùng.
+ Trình tự xử lý rất rõ ràng.
Mô hình MVC phân chia các lớp và hàm thành ba thành phần riêng biệt: Controller, Model và View Sự phân chia này giúp quá trình phát triển, quản lý, vận hành và bảo trì website trở nên thuận lợi hơn Đồng thời, nó cũng tạo ra các chức năng chuyên biệt và kiểm soát luồng xử lý hiệu quả.
+ Tạo mô hình chuẩn cho dự án, khi người có chuyên môn ngoài dự án tiếp cận với dự án dễ dàng hơn.
+ Mô hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, và dễ dàng triển khai với các dự án nhỏ.
Nhược điểm mô hình MVC :
+ Đối với các dự án có tính phức tạp cao thì mô hình MVC trở nên không khả dụng. Ứng dụng mô hình MVC vào lập trình :
Mô hình MVC được ứng dụng trong nhiều ngôn ngữ lập trình khác nhau, nhưng phổ biến nhất là ứng dụng ASP.NET MVC hay PHP MVC.
Hệ thống MVC hiệu quả cho phép phát triển đồng thời cả front-end và back-end mà không cần can thiệp hay chỉnh sửa các tập tin, giúp mỗi bên làm việc một cách độc lập.
Việc triển khai mô hình tương đối đơn giản, chỉ cần nắm rõ quy trình vận hành và hiểu chức năng của từng bộ phận.
MVC tương đối dễ dàng.
Hệ quản trị CSDL MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất toàn cầu, được các nhà phát triển ưa chuộng trong phát triển ứng dụng Với tốc độ cao, tính ổn định và dễ sử dụng, MySQL hoạt động trên nhiều hệ điều hành và cung cấp nhiều hàm tiện ích mạnh mẽ Nhờ vào tốc độ và tính bảo mật cao, MySQL là lựa chọn lý tưởng cho các ứng dụng truy cập cơ sở dữ liệu trên internet.
MySQL là một cơ sở dữ liệu nhanh chóng, ổn định và dễ sử dụng, tương thích với nhiều hệ điều hành, đồng thời cung cấp một bộ hàm tiện ích mạnh mẽ.
MySQL cung cấp độ bảo mật cao, đặc biệt phù hợp cho các ứng dụng truy cập cơ sở dữ liệu trên Internet Nó sở hữu nhiều tính năng bảo mật, kể cả ở cấp độ cao, giúp bảo vệ dữ liệu hiệu quả.
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ đa tính năng, hỗ trợ nhiều chức năng SQL phong phú, đáp ứng nhu cầu sử dụng cả trực tiếp lẫn gián tiếp.
+ Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết.
MySQL được tối ưu hóa với các tiêu chuẩn cho phép hoạt động hiệu quả và tiết kiệm chi phí, từ đó tăng tốc độ thực thi một cách nhanh chóng.
-MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đươ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 cung cấp cơ chế phân quyền người sử dụng độc lập, cho phép quản lý nhiều cơ sở dữ liệu (CSDL) khác nhau cho mỗi người dùng Mỗi người dùng được cấp một tên truy cập (user name) và mật khẩu tương ứng để thực hiện truy xuất đến CSDL.
1.2.4 Cú pháp cơ bản của MySQL Để tạo một bảng trong MySQL, chúng ta sử dụng cú pháp dưới đây:
+ CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), );
Cú pháp thêm dữ liệu vào bảng :
+ INSERT INTO table_name (column1,column2,column3)
Cú pháp xóa Để xóa database ta sử dụng cú pháp:
Câu Lệnh truy xuất dữ liệu
Tổng quan về Framework Laravel
Laravel là một framework PHP miễn phí và mã nguồn mở, được phát triển bởi Taylor Otwell, nhằm hỗ trợ xây dựng ứng dụng web theo mô hình MVC Framework này dựa trên Symfony PHP và nổi bật với các tính năng như hệ thống đóng gói module, quản lý package thông qua Composer, cùng với khả năng hỗ trợ nhiều hệ quản trị cơ sở dữ liệu quan hệ như MySQL, MariaDB, SQLite và PostgreSQL.
Laravel là một framework PHP mạnh mẽ, cung cấp nhiều tiện ích hỗ trợ cho việc triển khai và bảo trì ứng dụng Mã nguồn của Laravel được lưu trữ trên GitHub và được cấp phép theo Giấy phép MIT Lịch sử phát triển của Laravel phản ánh sự tiến bộ không ngừng của nó trong cộng đồng lập trình.
Laravel beta đầu tiên ra mắt vào ngày 9/6/2011, sau đó là phiên bản Laravel 1 trong cùng tháng Laravel 1 cung cấp nhiều tính năng như xác thực, bản địa hóa, model, view, session, và định tuyến, tuy nhiên, nó vẫn thiếu controller, do đó chưa hoàn toàn đáp ứng tiêu chí của một framework MVC đúng nghĩa.
Laravel 2 được phát hành vào tháng 9 năm 2011, mang đến nhiều cài tiến từ tác giả và cộng đồng Tính năng đáng kể bao gồm hỗ trợ controller, điều này thực sự biến Laravel 2 thành một MVC framework hoàn chỉnh, hỗ trợ Inversion of Control (IoC), hệ thống template Blade Bên cạnh đó, có một nhược điểm là hỗ trợ cho các gói của nhà phát triển bên thứ 3 bị gỡ bỏ.
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn tính năng mới bao gồm giao diện dòng lệnh (CLI) tên “Artisan”, hỗ trợ nhiều hơn cho hệ thống quản trị cơ sở dữ liệu, chức năng ánh xạ cơ sở dữ liệu Migration, hỗ trợ “bắt sự kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles” Lượng người dùng và sự phổ biến tăng trưởng mạnh kể từ phiên bản Laravel 3.
Laravel 4, được phát hành vào tháng 5 năm 2013 với tên mã "Illuminate", đánh dấu sự chuyển mình mạnh mẽ của framework Laravel Phiên bản này đã tái cấu trúc các gói hỗ trợ, chuyển sang sử dụng Composer, giúp cải thiện khả năng mở rộng so với các phiên bản trước Laravel 4 cũng thiết lập lịch phát hành chính thức với mỗi sáu tháng có một phiên bản nâng cấp nhỏ.
Laravel 4 bao gồm tạo và thêm dữ liệu mẫu (database seeding), hỗ trợ hàng đợi, các kiểu gởi mail, và hỗ trợ “xóa mềm” (soft-delete: record bị lọc khỏi các truy vấn từ Eloquent mà không thực sự xóa hẳn khỏi DB).
Laravel 5 được phát hành trong tháng 2 năm 2015, như một kết quả thay đổi đáng kể cho việc kết thúc vòng đời nâng cấp Laravel lên 4.3 Bên cạnh một loạt tính năng mới và các cải tiến như hiện tại, Laravel 5 cũng giới thiệu cấu trúc cây thư mục nội bộ cho phát triển ứng dụng mới Những tính năng mới của Laravel 5 bao gồm hộ trợ lập lịch định kỳ thực hiện nhiệm vụ thông qua một gói tên là
“Scheduler” là một lớp trừu tượng mang tên “Flysystem” giúp điều khiển việc lưu trữ từ xa một cách đơn giản, tương tự như lưu trữ trên máy local Nó hỗ trợ dịch vụ Amazon S3 mặc định, cải tiến quản lý tài sản thông qua “Elixir” và đơn giản hóa quản lý xác thực với các dịch vụ bên ngoài nhờ vào gói “Socialite”.
Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên nhận được hỗ trợ dài hạng (LTS) với một kết hoạch fix bug lên tới 2 năm vào hỗ trợ vá lỗi bảo mật lên tới 3 năm Các bản phát hành LTS của Laravel được lên kế hoạch theo mỗi 2 năm.
1.3.3 Ưu điểm của Laravel PHP Framework
Dưới đây là 10 ưu điểm của Laravel so với các framework khác:
Sử dụng các tính năng (feature) mới nhất của PHP
Sử dụng mô hình MVC (Model – View – Controller)
Hệ thống xác thực (Authentication) và ủy quyền (Authorization) tuyệt vời
Có hệ thống tài liệu chi tiết, dễ hiểu
Cộng đồng hỗ trợ đông đảo
Tích hợp công cụ Artisan – Công cụ quản lý dòng lệnh
Sử dụng composer để quản lý PHP package
Sử dụng npm để quản lý các gói Javascript, giao diện
Hỗ trợ Eloquent ORM, Query Builder, Template Engine (Blade)
Hỗ trợ routing mềm dẻo
1.3.4 Mô hình MVC (Model – View – Controller) của Laravel
Laravel, được phát triển dựa trên Symfony Framework, kế thừa mô hình MVC của Symfony, tương tự như nhiều PHP Framework khác Dưới đây là mô hình đầy đủ của Laravel.
Hình 1.2 Mô hình MVC (Model – View – Controller) của Laravel
Model Gồm những Class, tạo ra các table của Database, nơi mà Eloquent
ORM thao tác với CSDL
The View contains templates that are designed and processed to generate HTML/CSS code for the website, while the Controller includes classes and functions that handle user requests.
1.3.5 Cấu trúc thư mục của Laravel
Dưới đây là cấu trúc thư mục của Laravel
Hình 1.3 Cấu trúc thư mục của Laravel
Thành phần mô tả ứng dụng bao gồm toàn bộ mã nguồn của dự án, trong đó có các sự kiện (Event), ngoại lệ (Exception) và khai báo Middleware.
Trong App lại chứa các thành phần con sau:
Console: Nơi bạn định nghĩa ra các lệnh của Laravel.
Thư mục Exceptions bao gồm tất cả các phương thức cần thiết để xử lý ngoại lệ, cùng với tệp handle.php để quản lý mọi trường hợp ngoại lệ.
Thư mục Http trong Laravel bao gồm các thư mục con như controllers và middleware, được thiết kế theo mô hình MVC Nơi đây chứa các xử lý cần thiết để quản lý và xử lý các yêu cầu từ người dùng.
Models: Chứa các Class định nghĩa các thành phần để thao tác với CSDL
Môi trường và công cụ phát triển
Cài đặt gói phầm mềm Xampp
XAMPP là phần mềm tích hợp tất cả các thành phần cần thiết cho phát triển web, bao gồm Apache, MySQL và PHP, giúp người dùng tiết kiệm thời gian cài đặt từng phần riêng lẻ.
Cài đặt Composer và Laravel
Composer là một công cụ quản lý thư viện PHP, giúp quản lý sự phụ thuộc của các tài nguyên trong dự án một cách hiệu quả.
Quản lý phụ thuộc là một quá trình quan trọng trong phát triển phần mềm, cho phép bạn khai báo các thư viện mà dự án của mình sử dụng Nó tự động cài đặt và cập nhật các thư viện khi có phiên bản mới, giúp tiết kiệm thời gian và đảm bảo dự án luôn sử dụng các phiên bản mới nhất của thư viện.
Dùng lệnh “composer create-project laravel/laravel laravel-test” để cài đặt Laravel và tạo project laravel-test
Cài đặt Visual Studio Code
Visual Studio Code là trình biên tập mã do Microsoft phát triển, tương thích với Windows, Linux và macOS Nó cung cấp nhiều tính năng hữu ích như debug, tích hợp Git, đánh dấu cú pháp, tự động hoàn thành mã thông minh, snippets và cải tiến mã nguồn.
Cài đặt trình duyệt là bước quan trọng cho web developer, vì trình duyệt không chỉ là công cụ lướt web mà còn hỗ trợ phát triển web Google Chrome được lựa chọn nhờ tính ổn định và khả năng gỡ lỗi dễ dàng.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Đặt vấn đề
Công nghệ thông tin đã trở thành một phần không thể thiếu trong mọi lĩnh vực, mang lại tiện ích, hiệu quả và tính thực tiễn cao Ngành công nghệ thông tin đã phát triển mạnh mẽ, giúp xử lý thông tin một cách nhanh chóng và chính xác, đặc biệt tại Việt Nam Những phương pháp lưu trữ truyền thống đã lỗi thời, gây tốn thời gian và dễ bị hư hại do môi trường, trong khi công nghệ hiện đại cung cấp những giải pháp lưu trữ hiệu quả hơn.
Ứng dụng công nghệ thông tin trong quản lý công văn đã tạo ra bước đột phá mới, giúp các sở và ban ngành nắm bắt thông tin kịp thời Điều này cho phép thông báo công văn nhanh chóng và dễ dàng, giúp cơ quan, tổ chức và người dân truy cập để xem nội dung chi tiết một cách chính xác và kịp thời.
Mục tiêu của đồ án
Dự án "Xây dựng trang web quản lý công văn" ra đời để khắc phục những hạn chế trong quản lý công văn truyền thống, đồng thời bổ sung các chức năng như thêm, sửa, thống kê và tìm kiếm Mục tiêu là nâng cao hiệu quả và tiện lợi trong quá trình quản lý và sử dụng công văn.
Tìm hiểu quy trình nghiệp vụ quản lý công văn của Sở Y Tế, chương trình được xây dựng nhầm mục đích sau:
Đáp ứng nhu cầu quản lý, tối ưu hoá việc quản lý những công văn đã được ký có liên quan đến Sở Y Tế Thái Nguyên.
Đưa công văn lên trang web để hỗ trợ cơ quan, tổ chức, người dân có liên quan có thể tìm và đọc nội dung chi tiết công văn.
Giải quyết chi phí và thời gian cho việc triển khai công văn đến các cơ quan, tổ chức liên quan, giúp mọi quy trình diễn ra nhanh chóng, dễ dàng và chính xác hơn so với các phương pháp quản lý truyền thống.
Xây dựng các chức năng về quản lý công văn mà trang web hiện nay còn đang thiếu hoặc chưa hoàn thiện.
Giao diện đơn giản, dễ dàng sử dụng.
Giao diện thiết kế tương thích với hầu hết thiết bị có kích thước màn mình phổ biến, có thể tự co giãn( Responsive).
Áp dụng mô hình MVC( Model – View – Controller) nên việc bảo trì và nâng cấp mở rộng sẽ dễ dàng hơn.
Phương pháp nghiên cứu
Xây dựng đề tài để khắc phục những hạn chế mà trang web hiện tại còn thiếu sót.
Tạo giao diện phần mềm dễ sử dụng cho người dùng.
Cần có những kiến thức cần thiết khi thiết kế một đề tài trên nền web:
Nắm vững kiến thức phân tích hệ thống thông tin, cơ sở dữ liệu: Phân tích dữ liệu, sơ đồ, thiết kế cơ sở dữ liệu.
Hiễu biết và có khả năng sử dụng thành thạo về lập trình web: PHP, HTML, Javascript, Jquery, Ajax,…
Mô tả tổng quan
2.4.1 Mô tả các chức năng của hệ thống
NĂNG TÊN CHỨC NĂNG CHI TIẾT
3 M03 Tạo danh mục cơ quan ban hành
4 M04 Tạo danh mục hình thức văn bản
5 M05 Tạo danh mục lĩnh vực
6 M06 Tạo danh mục loại văn bản
11 M11 Quản lý công văn theo loại hình công văn
2.4.2 Đặc điểm người sử dụng
Dựa vào phân quyền ta có thể chia nhóm người sử dụng thành 4 nhóm
Nhóm người dùng có quyền quản trị (SuperAdmin) có khả năng quản lý toàn bộ hệ thống, bao gồm việc thêm người dùng mới, gán quyền cho người dùng, thêm công văn, và quản lý việc thêm, sửa, xóa các danh mục Họ cũng có thể thêm slide hiển thị trên trang chủ.
Nhóm người dùng có quyền quản trị (Admin): có khả năng đăng nhập để thêm, sửa, xoá công văn.
Nhóm người dùng có quyền nhân viên: có khả đăng nhập tại trang chủ để xem và tìm kiếm những công văn nội bộ.
Nhóm người dùng khách không cần đăng nhập vào hệ thống để truy cập thông tin Họ có thể xem các thông tin liên hệ, công văn đến và công văn đi, cũng như thực hiện tìm kiếm công văn và lựa chọn xem công văn theo danh mục.
Hệ thống được triển khai trên máy tính cá nhân với cơ sở dữ liệu theo kiến trúc Client/Server, sử dụng hệ quản trị MySQL Tất cả các tập tin dữ liệu chứa thông tin về các đối tượng được lưu trữ trên server local.
Hình 2.1: Sơ đồ môi trường vận hành của hệ thống
2.4.4 Ràng buộc về thực thi và thiết kế
Ràng buộc về thực thi:
Giao diện đơn giản, thân thiện với người dùng.
Phần mềm chạy trên tất cả các trình duyệt web phổ biến.
Sử dụng các đặt điểm tốt của Laravel Framework 5.6.
Công cụ lập trình chính: Sublime Text 3.0, Notepad++.
Công cụ tạo máy chủ local: Xampp 3.3.2.
Ràng buộc thực thi: Đáp ứng nhanh nhu cầu của người dùng, thời gian tải trang nhanh, hỗ trợ bắt lỗi về ràng buộc toàn vẹn.
Yêu cầu ngôn ngữ: Tiếng Việt, ngắn gọn, dễ hiểu.
Các yêu cầu giao tiếp ngoài
2.5.1 Giao diện người sử dụng
Các điều khiển trên trang web cần quen thuộc, dễ thao tác với người dùng.
Giao diện gồm ít nhất một thứ tiếng: tiếng Việt Ngôn ngữ dễ sử dụng.
Tên các trường thông tin, chức năng phải thống nhất toàn bộ giao diện Font chữ đơn giản và không vướng mắt người dùng.
Màu sắc sử dụng hài hòa.
Các tập tin CSDL được lưu trên Server
Các máy client sẽ truy xuất dữ liệu trang web thông qua đường truyền Internet vì vậy cần kết nối internet
Phải đảm bảo hoạt động tốt trên mọi hệ điều hành khác nhau: Window, Ubuntu, IOS, MAC OS, Android,…
Đảm bảo hệ thống hoạt động tốt trên tất cả các trình duyệt web phổ biến hiện nay.
Ngôn ngữ lập trình chính PHP (Được tùy biến trên Laravel Framework) kết hợp với ngôn ngữ khác: HTML, Javascript, CSS,…
2.5.4 Giao tiếp truyền thông tin
Sử dụng giao tiếp truyền thông tin HTTP, HTTPS.
Hổ trợ tất cả các trình duyệt phổ biến hiện nay: IE, Chorme, FireFox,Cốc Cốc,…
Các tính năng của hệ thống
Tên chức năng Đăng nhập Đối tượng sử dụng Nhân viên, Admin, SuperAdmin
Nội dung Cho phép người dùng truy cập vào hệ thống.
Bước 1: Sau khi truy cập vào phần mềm “quản lý công văn” hệ thống hiện lên khung đăng nhập bao gồm 2 Textbox và một Button.
Bước 2: Người dùng nhập Email và Mật khẩu vào
Người dùng nhập thông tin vào textbox và nhấn nút "Đăng nhập" Hệ thống sẽ kiểm tra sự tồn tại và tính chính xác của email và mật khẩu trong cơ sở dữ liệu Nếu thông tin khớp, người dùng sẽ được chuyển đến trang quản trị nếu là admin hoặc superadmin Ngược lại, nếu là nhân viên, hệ thống sẽ từ chối truy cập vào trang quản trị và hiển thị thông báo lỗi, cho phép nhân viên chỉ đăng nhập vào trang chủ để xem công văn nội bộ.
Kết quả Đăng nhập thành công hay thất bại.
Email đăng nhập và mật khẩu là email và mật khẩu được cung cấp từ quản lý hệ thống(superadmin) và không thể thay đổi.
Tên chức năng Đăng xuất Đối tượng sử dụng Nhân viên, admin, superadmin
Tiền điều kiện Người dùng đã đăng nhập thành công trước đó.
Nội dung Cho phép tất cả các nhóm người dùng thực hiện đăng xuất ra khỏi hệ thống, kết thúc phiên làm việc.
Bước 1: Người dùng nhấp vào chữ “Đăng xuất” trong “Hệ thống”.
Bước 2: Hệ thống đăng xuất, xóa lịch sử của phiên làm việc và chuyển người dùng trở lại trang Đăng nhập.
Kết quả Đăng xuất thành công.
Ghi chú Nếu nhân viên đăng xuất, tại trang chủ sẽ không còn quyền xem và tìm kiếm công văn nội bộ.
2.6.3 Tạo danh mục cơ quan ban hành
Tên chức năng Tạo danh mục cơ quan ban hành Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Tạo những danh mục cơ quan ban hành mới, sửa, xoá danh mục cơ quan ban hành cũ.
CRUD (Tạo - Đọc - Cập nhật - Xóa) yêu cầu kiểm tra ràng buộc toàn vẹn trước khi thực hiện thao tác xóa Nếu có công văn đang sử dụng khóa, hệ thống sẽ hiển thị thông báo lỗi và không cho phép xóa danh mục.
Kết quả Hiển thị thông báo cho người dùng
2.6.4 Tạo danh mục hình thức văn bản
Tên chức năng Tạo danh mục hình thức văn bản Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Tạo những danh mục hình thức văn bản mới, sửa, xoá danh mục hình thức văn bản cũ.
Trước khi thực hiện thao tác xoá danh mục trong hệ thống CRUD, cần kiểm tra ràng buộc toàn vẹn Nếu có công văn nào đang sử dụng khoá, hệ thống sẽ hiển thị thông báo lỗi và không cho phép xoá danh mục đó.
Kết quả Hiển thị thông báo cho người dùng
2.6.5 Tạo danh mục lĩnh vực
Tên chức năng Tạo danh mục lĩnh vực Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Tạo những danh mục lĩnh vực, sửa, xoá danh mục lĩnh vực cũ.
Trước khi thực hiện thao tác xoá trong CRUD, hệ thống sẽ kiểm tra ràng buộc toàn vẹn Nếu phát hiện có công văn đang sử dụng khoá, một thông báo lỗi sẽ được hiển thị và việc xoá danh mục sẽ không được phép thực hiện.
Kết quả Hiển thị thông báo cho người dùng
2.6.6 Tạo danh mục loại văn bản
Tên chức năng Tạo danh mục loại văn bản Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Tạo những danh mục loại văn bản, sửa, xoá danh mục loại văn bản cũ.
Trong quá trình thực hiện CRUD, cần kiểm tra ràng buộc toàn vẹn trước khi thực hiện thao tác xoá Nếu phát hiện có công văn đang sử dụng khoá, hệ thống sẽ hiển thị thông báo lỗi và không cho phép xoá danh mục.
Kết quả Hiển thị thông báo cho người dùng
2.6.7 Tạo danh mục công văn
Tên chức năng Tạo công văn Đối tượng sử dụng Superadmin, admin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin hoặc admin.
Nội dung Giúp người dùng quản lý công văn một cách đơn giản.
CRUD, cho người dùng chọn cơ quan ban hành, lĩnh vực,… chọn tải lên tập tin đính kèm giúp đơn giản hoá trong việc thêm công văn.
Kết quả Hiển thị tải lên thành công hoặc hiển thị lỗi nếu có.
Tên chức năng Tạo Slide Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Tạo slide động cho trang chủ qua giao diện quản trị.
Cách xử lý CRUD, cho người dùng chọn hình ảnh muốn hiển thị tại trang chủ.
Kết quả Hiển thị tải lên thành công hoặc hiển thị lỗi nếu có.
Tên chức năng Tạo người dùng Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Hiển thị danh sách người dùng, cho phép thêm, sửa, xoá người dùng.
Cách xử lý CRUD, cho người dùng thêm
Kết quả Hiển thị tải lên thành công hoặc hiển thị lỗi nếu có.
Tên chức năng Phân quyền Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Cho phép người dùng phân quyền cho các tài khoản
Để phân quyền cho tài khoản, bạn vào danh mục "Người dùng", chọn tài khoản cần điều chỉnh, sau đó nhấn sửa Một menu lựa chọn sẽ hiện ra, cho phép bạn chọn quyền hạn phù hợp như nhân viên, admin hoặc superadmin.
Kết quả Hiển thị tải lên thành công hoặc hiển thị lỗi nếu có.
Ghi chú Chỉ có superadmin mới có quyền phân quyền.
2.6.11 Quản lý công văn theo loại hình công văn
Tên chức năng Quản lý công văn theo loại hình công văn Đối tượng sử dụng Superadmin
Tiền điều kiện Đã đăng nhập vào phần mềm “hệ thống quản lý công văn” thành công với tài khoản SuperAdmin.
Nội dung Hiển thị danh sách loại hình công văn: Công văn nội bộ, công văn đến, công văn đi
Ghi chú Không cho phép người dùng thay đổi danh mục này.
Tên chức năng Giới thiệu Đối tượng sử dụng Mọi người dùng.
Nội dung Hiển thị trang giới thiệu thông tin về Sở Y Tế Kiên
Tên chức năng Liên hệ Đối tượng sử dụng Mọi người dùng.
Nội dung Hiển thị thông tin liên hệ, địa chỉ, bản đồ chỉ đường đến
Cách xử lý Hiển thị thông tin, nhúng Google Map vào trang web
Tên chức năng Tìm kiến Đối tượng sử dụng Mọi người dùng.
Nội dung Hiển thị danh sách dựa trên từ khoá tìm kiếm từ người dùng nhập vào.
Kiểm tra trạng thái đăng nhập của người dùng: nếu chưa đăng nhập, chỉ hiển thị danh sách tìm kiếm bao gồm công văn đến và công văn đi, không hiển thị công văn nội bộ Ngược lại, nếu người dùng đã đăng nhập, hiển thị đầy đủ danh sách tìm kiếm.
Kết quả Danh sách tìm kiếm với từ khoá người dùng nhập vào.
Ghi chú Tìm kiếm theo cột “số hiệu” và “trích yếu nội dung”.
Tên chức năng Tải công văn Đối tượng sử dụng Mọi người dùng.
Nội dung Hiển thị nút tải trên mỗi công văn cho phép người dùng xem trực tuyến và tải về.
Khi người dùng bấm vào biểu tượng tải về công văn sẽ được hiển thị trên 1 tab mới để người dùng xem, ấn vào download nếu muốn tải về.
Chức năng xem trực tuyến có thể bị lỗi với 1 số ứng dụng như Internet Download Manager.
Tên chức năng Chi tiết công văn Đối tượng sử dụng Mọi người dùng.
Nội dung Hiển thị chi tiết đầy đủ các thông tin của công văn.
Khi người dùng xem danh sách công văn, khi bấm vào
“trích yếu nội dung” sẽ dẫn link tới trang chi tiết công văn.
Các yêu cầu phi chức năng
Phản hồi nhanh chóng các yêu cầu của người dùng (không bao gồm các yếu tố khách quan như kết nối internet chậm, giám đoạn).
Số lượng người truy cập tối đa: 200 người.
Phần mềm chạy tốt trên các trình duyệt: IE, Google Chorme, FireFox, Cốc Cốc, Opera,…
Hệ thống phải hoạt động mượt mà, hạn chế tối đa việc xung đột với các phần mềm khác.
Khuyến khích người dùng sử dụng phần mềm diệt virus để an toàn cho dữ liệu trong CSDL và hệ thống phần mềm.
Mỗi người dùng được cung cấp một tài khoản truy cập vào hệ thống.
Cần có thông báo với các thao tác mang tính chất “phá hủy” của người dùng như: Xóa dữ liệu, hủy bỏ,…
Người dùng chỉ được thao tác một số chức năng nằm trong phạm vi cho phép được định sẵn.
Thông tin người dùng khi đăng nhập (gồm email và mật khẩu) được mã hóa và bảo mật trong CSDL.
2.7.4 Các đặt điểm chất lượng phần mềm
Tính đúng đắn: Các chức năng của hệ thống phải hoạt động đúng theo yêu cầu.
Tính khoa học: Cách xây dựng, tổ chức các chức năng phải khoa học.
Xây dựng CSDL hợp lý, khoa học nhằm nâng cao tốc độ truy CSDL, giảm tài nguyên lưu trữ dữ liệu.
Dữ liệu phần mềm có thể được lưu trữ ở chế độ offline, online hoặc offline – đồng bộ online, với việc sao lưu thường xuyên để đảm bảo an toàn và bảo mật.
Tính thích nghi: Tương thích, sử dụng được nhiều trình duyệt web, dễ dàng bảo trì và nâng cấp các chức năng.
Kiến trúc hệ thống
Hình 2.2 Mô hình MVC kiến trúc hệ thống
MVC, viết tắt của Model – View – Controller, là một design pattern giúp tách mã lệnh thành ba phần riêng biệt, mỗi phần đảm nhận những chức năng đặc thù để xử lý các tác vụ từ request Nhờ vào cấu trúc này, mã lệnh trở nên thông suốt, dễ phát triển và dễ nâng cấp theo thời gian.
Model: Là thành phần chịu trách nhiệm xử lý các thao tác trên database Và gởi trả kết quả thông qua view.
View là phần hiển thị thông tin trên website, đóng vai trò quan trọng trong việc chuyển giao dữ liệu đến người dùng Sau khi thông tin được xử lý qua controller và nhận kết quả từ model, view thực hiện bước cuối cùng để trình bày thông tin một cách rõ ràng và dễ hiểu.
Controller là thành phần quan trọng trong mọi framework, có nhiệm vụ điều hướng các yêu cầu (request) tới các tác vụ tương ứng Nó đảm nhận trách nhiệm gửi và nhận các yêu cầu giữa hệ thống và người sử dụng, đảm bảo quá trình tương tác diễn ra suôn sẻ.
2.8.2 Mô tả sự phân rã
Thiết kế dữ liệu
Hình 2.4 Mô hình quan hệ
Hình 2.5 Mô hình quan hệ trong cơ sở dữ liệu
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name Varchar(30) Tên người dùng
3 email Varchar(254) Email người dùng
4 password Varchar(70) Mật khẩu người dùng
Varchar(100) NULL Ghi nhớ mật khẩu
6 created_at timestamp Ngày giờ tạo
7 updated_at timestamp NULL Ngày giờ cập nhật Bảng dữ liệu Slide
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
3 hinhanh Varchar(34) Tên hình ảnh
4 link Varchar(253) Địa chỉ trang web liên kết Bảng dữ liệu loaivanban
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name Varchar(30) Tên loại văn bản
3 TenKhongDau Varchar(40) Tên loại văn bản không dấu Bảng dữ liệu loaihinhcongvan
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name Varchar(20) Tên loại hình công văn
3 TenKhongDau Varchar(30) Tên loại hình công văn không dấu Bảng dữ liệu linhvuc
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name Varchar(20) Tên lĩnh vực
3 TenKhongDau Varchar(30) Tên lĩnh vực không dấu Bảng dữ liệu hinhthucvanban
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name Varchar(20) Tên hình thức văn bản
3 TenKhongDau Varchar(30) Tên hình thức văn dấu Bảng dữ liệu coquanbanhanh
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name Varchar(30) Tên cơ quan ban hành
3 TenKhongDau Varchar(40) Tên cơ quan ban hành không dấu Bảng dữ liệu congvan
STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa
2 sohieu Varchar(15) Số hiệu công văn
3 ngaylap datetime NULL Ngày lập công văn
4 ngayky datetime NULL Ngày ký công văn
5 ngayhieuluc datetime NULL Ngày công văn có hiệu lực
6 ngaychuyen datetime NULL Ngày công văn chuyển đi hoặc chuyển đến
7 trichyeunoidung Varchar(100) Trích yếu nội dung công văn
8 nguoiky Varchar(30) NULL Họ tên người ký
9 tentaptindinhkem Varchar(34) Tên tập tin công văn
10 conhieuluc Int(1) NULL Hiệu lực của công văn
Mã cơ quan ban hành
Mã hình thức văn bản
15 TenKhongDau Varchar(130) Tên công văn không dấu
Mã loại hình công văn
XÂY DỰNG WEBSITE
Trang giao diện tìm kiếm
Hình 3.2 Giao diện trang tìm kiếm
Trang đăng nhập trang chủ
Hình 3.3 Giao diện đăng nhập trang chủ
Giao diện khi đăng nhập trang chủ thành công
Hình 3.4 Giao diện trang chủ khi đăng nhập thành công
Giao diện đăng nhập trang quản trị
Hình 3.5 Giao diện đăng nhập trang quản trị
Giao diện trang quản trị khi đăng nhập thành công
Hình 3.6 Giao diện trang quản trị
Giao diện trang danh sách slide
Hình 3.7 Giao diện danh sách slide
Giao diện danh sách thành viên
Hình 13.8 Giao diện danh sách thành viên
Giao diện thêm công văn
Hình 3.9 Giao diện thêm công văn
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Nâng cao khả năng tự tìm tòi, học hỏi, khả năng đọc hiểu tài liệu bằng tiếng Anh.
Hiểu sâu hơn về Laravel Framework - PHP Framework phổ bíến hiện nay. quá trình xây dựng hệ thống: CSS, HTML, MySQL, Javascript, Ajax,…
Khả năng lập trình và xây dựng hệ thống đáp ứng nhu cầu thực tế được cải thiện đáng kể Bên cạnh đó, người học còn tích lũy kinh nghiệm trong việc lập kế hoạch phát triển phần mềm hoàn chỉnh, cũng như quản lý thời gian một cách hợp lý.
Nâng cao khả năng thuyết trình, trình bày vấn đề Rèn luyện được thêm kỹ năng viết tài liệu phần mềm đúng chuẩn.
Xây dựng thành công phần mềm“ Xây dựng trang web quản lý công văn” đáp ứng được yêu cầu cơ bản của Sở Y Tế Thái Nguyên.
Hệ thống đã hoàn thành giai đoạn thử nghiệm thành công trên môi trường hosting, với tốc độ xử lý đạt yêu cầu và chưa phát sinh lỗi nghiêm trọng nào.
Hệ thống được viết theo mô hình MVC nên rất dễ nâng cấp và bảo trì, có thể nâng cấp để triển khai sử dụng thực tế.
Khả năng thực hành của bản thân còn hạn chế, dẫn đến những khó khăn trong việc thiết kế hệ thống sao cho thân thiện và dễ sử dụng cho người dùng.
Thời gian thực hiện còn khá ít nên một số vấn đề vẫn chưa được giải quyết hoặc giải quyết chưa được tối ưu triệt để.
Hệ thống chỉ đáp ứng được nghiệp vụ và yêu cầu cơ bản của Sở Y Tế, còn một số hạn chế chưa đáp ứng được vào thực tế.
Hệ thống hiện tại chỉ đáp ứng một phần nhu cầu của người dùng, thiếu tính sáng tạo và đột phá trong việc giải quyết vấn đề.
Hoàn thiện một số chức năng còn hạn chế của hệ thống.
Để nâng cao hiệu quả dự án, cần nghiên cứu các quy trình nghiệp vụ quản lý công văn của các cơ quan khác có quy mô phức tạp hơn, từ đó áp dụng những bài học kinh nghiệm phù hợp nhằm hoàn thiện quy trình hiện tại.
Hoàn thiện thêm những tính năng nâng cao hỗ trợ trải nghiệm người dùng.