Sử dụng các tiện ích như Google Drive để lưu tài liệu
+ Không phải thu thập hồ sơ trực tiếp.
+ Không bị thất lạc trong quá trình lưu trữ tài liệu.
+ Có thể chỉnh sửa lại minh chứng sau khi nộp.
+ Không thể truyền tải nội dung Bộ hồ sơ một cách trực quan giúp người nộp hiểu rõ với mỗi tiêu chí nào cần nộp và tự đánh giá những tiêu chuẩn khác.
+ Khi duyệt hồ sơ vẫn phải tìm kiếm tài liệu (Thao tác truy cập vào từng thư mục tìm kiếm hoặc tra cứu trên thanh tìm kiếm).
+ Dung lượng lưu trữ hạn chế, phụ thuộc vào Google.
Sử dụng các phần mềm văn phòng như Google Sheet, Microsoft
+ Có công cụ theo dõi, thống kê quá trình thu thập cũng như kết quả của Hồ sơ đó.
+ Truy xuất được kết quả để báo cáo.
+ Khi duyệt hồ sơ vẫn phải duyệt một cách thủ công.
Thuận lợi
Qua quá trình nghiên cứu, nhóm nhận thấy một số thuận lợi như sau:
− Đề tài này có thể được đánh giá là mang tính cấp thiết, tính mới, có tính ứng dụng cao vào thực tiễn khi đáp ứng nhu cầu số hóa trong chương trình Chính phủ số, số hóa trong dịch vụ công.
− Các tài liệu liên quan đến các vụ án quá nhiều, nhiều tài liệu, chứng cứ, bút lục Các tài liệu này khá nhiều và phổ biến Điều này vô tình giúp nhóm có nhiều tài liệu tham khảo.
− Có cán bộ giúp đỡ về nghiệp vụ, quy trình.
Khó khăn
Bên cạnh thuận lợi, nhóm cũng nhận thấy một số khó khăn như sau:
− Các thành viên nhóm không có ai tham gia trực tiếp vào quá trình tố tụng Nên chỉ được tham gia học hỏi về phần nghiệp vụ chính.
− Khối lượng công việc phải thực hiện khá lớn vì hệ thống phải xử lí nhiều luồng và lưu trữ lượng lớn thông tin.
− Phạm vi đề tài hướng tới nhiều đối tượng.
Cơ sở lí thuyết và công nghệ 6
TypeScript
Ngôn ngữ lập trình Javascript là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay Ngôn ngữ lập trình Javascript được áp dụng chủ yếu trong HTML khá phổ biến hiện nay Ngôn ngữ tồn tại nhiều mặt lợi ích và cũng có một số hạn chế nhất định Để giải quyết một vài hạn chế trong đó, Typescript đã được ra đời TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó có thể được coi là một phiên bản nâng cao của Javascript bởi việc bổ sung tùy chọn kiểu tĩnh và lớp hướng đối tượng mà điều này không có ở Javascript TypeScript có thể sử dụng để phát triển các ứng dụng chạy ở client side (Angular2) và server side (NodeJS) [10, 12].
Hình 3: Mô tả và so sánh giữa TypeScript và JavaScript [2]
TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules Không dừng lại ở đó nếu như ECMAScript 2017 ra đời thì chắc chắn rằng TypeScript cũng sẽ nâng cấp phiên bản của mình lên để sử dụng mọi kĩ thuật mới nhất từ ECMAScript Thực ra TypeScript không phải ra đời đầu tiên mà trước đây cũng có một số thư viện như CoffeScript và Dart được phát triển bởi Google, tuy nhiên điểm yếu là hai thư viện này sư dụng cú pháp mới hoàn toàn, điều này khác hoàn toàn với TypeScript, vì vậy tuy ra đời sau nhưng TypeScript vẫn đang nhận được sự đón nhận từ các lập trình viên.
Dễ phát triển dự án lớn: Với việc sử dụng các kĩ thuật mới nhất và lập trình hướng đối tượng nên TypeScript giúp chúng ta phát triển các dự án lớn một cách dễ dàng.
Nhiều Framework lựa chọn: Hiện nay các Javascript Framework đã dần khuyến khích nên sử dụng TypeScript để phát triển, ví dụ như AngularJS 2.0 và Ionic 2.0.
Hô trợ các tính năng của Javascript phiên bản mới nhất: TypeScript luôn đảm bảo việc sử dụng đầy đủ các kĩ thuật mới nhất của Javascript, ví dụ như version hiện tại là ECMAScript 2015 (ES6).
Là mã nguồn mở: TypeScript là một mã nguồn mở nên bạn hoàn toàn có thể sử dụng mà không mất phí, bên cạnh đó còn được cộng đồng hỗ trợ.
TypeScript là Javscript: Bản chất của TypeScript là biên dịch tạo ra các đoạn mãJavascript nên bạn có thể chạy bất kì ở đâu miễn ở đó có hỗ trợ biên dịch Javascript.Ngoài ra bạn có thể sử dụng trộn lẫn cú pháp của Javascript vào bên trong TypeScript,điều này giúp các lập trình viên tiếp cận TypeScript dễ dàng hơn.
ReactJS
Lĩnh vực công nghệ thông tin là một trong những lĩnh vực đang được chú trọng và đầu tư nhất trong những năm gần đây Đi cùng vơi sự phát triển bùng nổ của lĩnh vực này, một loạt các framework, thư viện hỗ trợ người lập trình xây dựng giao diện các website được liên tiếp đưa ra Đáng kể nhất chính là ba framework: ReactJS, Angular và VueJS.
Cả ba framework này đều có được độ trưởng thành trong công nghệ và được áp dụng rộng rãi trong những hệ thống thực tế Framework ReactJS được nhóm sử dụng trong luận văn vì cộng đồng sử dụng đông đảo cũng như sự phong phú của nó.
Hình 4: Sơ đồ mô tả các ưu và nhược điểm của ReactJS [3]
ReactJS là một thư viện JavaScript mã nguồn mở rất phổ biến hiện nay cho việc xây dựng giao diện người dùng Một trang web sử dùng ReactJS thường được xây dựng từ nhiều components Việc sử dụng component giúp lập trình viên có thể tái sử dụng mã nguồn, giúp tiết kiệm thời gian khi lập trình Ngoài ra, ReactJS còn sử dụng công nghệVirtual DOM (DOM ảo), cơ chế này sẽ quản lí những thay đổi trên Virtual DOM, từ đó cập nhật những thay đổi lên DOM thật của trang [4].
Hình 5: Công nghệ Virtual DOM
Công nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng Việc chỉ node gốc mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến tốc độ xử lí React JS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn đề này Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông tin cần thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính toán sự thay đổi giữa object và tree thật, điều này sẽ giúp tối ưu hoá việc re render DOM tree thật [5].
ReactJS cực kì hiệu quả: ReactJS tạo ra cho chính nó DOM ảo nơi mà các component thực sự tồn tại trên đó Điều này sẽ giúp cải thiện hiệu suất rất nhiều ReactJS cũng tính toán những thay đổi nào cần cập nhật len DOM và chỉ thực hiện chúng Điều này giúp ReactJS tránh những thao tác cần trên DOM mà nhiều chi phí.
ReactJS giúp việc viết các đoạn code JS dễ dàng hơn: Nó dùng cú pháp đặc biệt làJSX (Javascript mở rộng) cho phép ta trộn giữa code HTML và Javascript Ta có thể thêm vào các đoạn HTML vào trong hàm render mà không cần phải nối chuỗi.Đây là đặc tính thú vị của ReactJS Nó sẽ chuyển đổi các đoạn HTML thành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX.
Nó có nhiều công cụ phát triển: Khi bạn bắt đầu ReactJS, đừng quên cài đặt ứng dụng mở rộng của Chrome dành cho ReactJS Nó giúp bạn debug code dễ dàng hơn. Sau khi bạn cài đặt ứng dụng này, bạn sẽ có cái nhìn trực tiếp vào virtual DOM như thể bạn đang xem cây DOM thông thường.
Render tầng server: Một trong những vấn đề với các ứng dụng đơn trang là tối ưu SEO và thời gian tải trang Nếu tất cả việc xây dựng và hiển thị trang đều thực hiện ở client, thì người dùng sẽ phải chờ cho trang được khởi tạo và hiển thị lên Điều này thực tế là chậm Hoặc nếu giả sử người dùng vô hiệu hóa Javascript thì sao? ReactJS là một thư viện component, nó có thể vừa render ở ngoài trình duyệt sử dụng DOM và cũng có thể render bằng các chuỗi HTML mà server trả về.
Làm việc với vấn đề test giao diện: Nó cực kì dễ để viết các test case giao diện vì virtual DOM được cài đặt hoàn toàn bằng JS.
Hiệu năng cao đối với các ứng dụng có dữ liệu thay đổi liên tục, dễ dàng cho bảo trì và sửa lỗi.
ReactJS chỉ phục vụ cho tầng View React chỉ là View Library nó không phải là một MVC framework như những framework khác Đây chỉ là thư viện của Facebook giúp render ra phần view Vì thế React sẽ không có phần Model và Controller, mà phải kết hợp với các thư viện khác React cũng sẽ không có 2 way binding hay là Ajax.
Tích hợp ReactJS vào các framework MVC truyền thống yêu cầu cần phải cấu hình lại.
ReactJS khá nặng nếu so với các framework khác ReactJS có kích thước tương đương với Angular (Khoảng 35 kB so với 39 kB của Angular) Trong khi đó Angular là một framework hoàn chỉnh.
Redux
Như đã đề cập ở trên, React không phải là một framework MVC hoàn chỉnh và chỉ phục vụ tốt cho tầng view Để có thể khắc phục thiếu sót này, một loạt các thư viện hỗ trợ đã được tạo ra để bổ sung các tính năng còn thiếu này Một trong số những thư viện đó là Redux Redux được định nghĩa là một predictable state management tool dành riêng cho các ứng dụng của Javascript Redux sẽ hỗ trợ viết ứng dụng hoạt động một cách nhất quán, chạy trong môi trường khác nhau và dễ hơn khi kiểm tra Redux được ra đời từ việc lấy cảm hứng bởi các tư tưởng ngôn ngữ Elm và kiến trúc Flux từ Facebook Chính vì vậy, Redux luôn được sử dụng với mục đích kết hợp cùng với React.
Phương hướng hoạt động: Hiểu một cách đơn giản, Redux sẽ hoạt động dựa vào 3 thành phần cơ bản là: Actions, Reducers và Store Các thành phần sẽ được định nghĩa như sau:
Actions: Bạn có thể hiểu Actions là các events và chúng là cách cần thiết mà bạn cần làm để send data từ app đến Redux store Các data xuất hiện thông qua các tương tác của user hoặc qua app, API call hoặc từ form submission.
Reducers: Reducers là những function dạng nguyên thủy và chúng thường lấy state hiện tại của app Từ đó, thực hiện một action rồi trả về dưới dạng một state mới. Các states này sẽ được lưu trữ như objects và chúng sẽ định rõ các state của ứng dụng thay đổi khi phản hồi một action gửi đến store.
Store: Store là loại lưu trạng thái ứng dụng và là duy nhất trong bất kì ứng dụngRedux nào Người dùng có thể access các state đã được lưu, update hoặc đăng kí cũng như hủy đăng kí các listeners thông qua helper methods.
CoreUI Template
React căn bản là một thư viện giúp xây dựng giao diện người dùng trong ứng dụng web Nhờ vào khả năng chia nhỏ tính năng thành từng component, React giúp cho việc xây dựng các thành phần giao diện trở nên độc lập, dễ chia sẻ và sử dụng hơn Bên cạnh đó, cộng đồng React cũng phát triển một số thư viện UI độc lập, giúp bạn có thể nhanh chóng cài đặt vào dự án mà không cần phải dựa vào một đội thiết kế riêng Điều này đặc biệt phù hợp với những dự án nhỏ có ngân sách giới hạn Và CoreUI là một trong số đó[7].
Hình 6: Một giao diện người dùng mẫu của CoreUI
CoreUI có hơn 40 components được xây dựng dựa trên Boostrap, thân thiện và dễ sử dụng Trong số đó có những component giúp vẽ biểu đồ, tạo bảng, tạo thống kê rõ ràng và trực quan [8].
NestJS
Nest (NestJS) là một framework hỗ trợ người dùng xây dựng các ứng dụng node server side một cách hiệu quả và dễ dàng mở rộng Nest được hỗ trợ sử dụng với TypeScript và cả JavaScript thuần và có đầy đủ các tính chất của: OOP (Lập trình hướng đối tượng),
FP (Lập trình chức năng), và FRP (Lập trình phản ứng chức năng).
Có nhiều lí do để nhóm chọn sử dụng công nghệ này trong luận văn, trong đó tính phổ biến cũng như sự đơn giản, hiệu quả của công nghệ này là lí do chín để nhóm chọn và sử dụng NestJS Theo số liệu trên GitHub, tính đến tháng 7 năm 2020, Nest được khá cao số lượt yêu thích Nhờ sự phát triển của JavaScript như một ngôn ngữ lập trình phát triển web, rất nhiều Javascript/ NodeJS framework đã ra đời Và Nest không phải là một ngoại lệ [9] Với rất nhiều tính năng tối ưu, NestJS có thể giúp các nhà phát triển tạo ra các ứng dụng phía backend, API RESTful một cách dễ dàng và hiệu quả.
Hình 7: Số liệu trên stateofjs.com năm 2019
Số liệu trên stateofjs.com năm 2019 về các Javascript framework được nhiều người sử dụng Ngoài các framework được ưa chuộng nhất hiện nay như: Express, Next.js,Koa, Meteor, Sails, Feathers, Nuxt, Gatsby, Nest cũng là một trong những framework được sử dụng ngày càng nhiều, xếp trên nhiều framework khác.
TypeORM
TypeORM [10] là một ORM có thể chạy trên các nền tảng NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo và Electron và còn dùng được với TypeScript và JavaScript (ES5, ES6, ES7, ES8) Công cụ ra đời nhằm hỗ trợ các tính năng JavaScript mới nhất, và cung cấp các tính năng bổ sung giúp bạn phát triển ứng dụng tích hợp cơ sở dữ liệu–từ các ứng dụng nhỏ với chỉ vài table đến các ứng dụng doanh nghiệp quy mô lớn có nhiều cơ sở dữ liệu.
TypeORM [11] hỗ trợ cả pattern Active Record và Data Mapper, khác với tất cả các ORM JavaScript hiện có, với TypeORM bạn có thể viết các ứng dụng high quality, loosely coupled, scalable và maintainable thật hiệu quả nhất TypeORM kế thừa mạnh mẽ từ các ORMs khác, bao gồm Hibernate, Doctrine và Entity Framework.
Swagger
Swagger là một open source dùng để phát triển, thiết kế, xây dựng và làm tài liệu cho các hệ thống RESTful Web Service Ta có Swagger mẫu như sau:
Swagger cung cấp những công cụ hỗ trợ việc tạo document: Swagger UI, Swagger Editor, Swagger Codegen, Swagger Hub, Swagger Inspector Trong đó 3 công cụ đầu tiên là open source, Swagger Hub và swagger Inspector là những công cụ cao cấp hơn nhưng sẽ phải trả phí.
Swagger UI là 1 công cụ giúp gen 1 trang HTML CSS mô tả về các APIs được cấu hình bởi 1 file yaml Ngoài ra, công cụ này còn cho phép ta mockup đến api đó để xem kết quả.
Tổng quan về cơ sở dữ liệu, hệ cơ sở dữ liệu
Xuất hiện từ những năm 60 của thế kỉ XX, hệ quản lí cơ sở dữ liệu là một trong những công nghệ nòng cốt trong các hệ thống thông tin hiện nay Trong lĩnh việc cơ sở dữ liệu, ba khái niệm cơ sở dữ liệu, hệ quản lí cơ sở dữ liệu và hệ thống cơ sở dữ liệu được sử dụng một cách rộng rãi, phổ biến vì tầm quan trọng của chúng Khái niệm cơ sở dữ liệu dùng để chỉ tập hợp dữ liệu được tổ chức, lưu trữ và được truy cập từ hệ thống máy tính. Chúng thường được thiết kế, tổ chức bằng các mô hình, kĩ thuật mang tính học thuật. Khái niệm hệ quản lí cơ sở dữ liệu là thuật ngữ được dùng để chỉ phần mềm giao tiếp với người dùng, cơ sử dữ liệu và phần mềm để thu thập, phân tích dữ liệu Khái niệm hệ thống cơ sở dữ liệu bao gồm cơ sở dữ liệu, hệ quản lí cơ sở dữ liệu và các phần mềm có liên quan Tuy nhiên, trong thực tế cơ sở dữ liệu thường dùng để chỉ cả ba khái niệm cơ sở dữ liệu hệ quản lí cơ sở dữ liệu và hệ thống cơ sở dữ liệu.
Trong quá trình phát triển của cơ sở dữ liệu, có nhiều mô hình cơ sở dữ liệu được đề ra dựa trên những nền tảng lí thuyết khác nhau, đáp ứng những mục tiêu khác nhau: cơ sở dữ liệu quan hệ (tiêu biểu như Oracle, MySQL, ), cơ sở dữ liệu NoSQL (tiêu biểu như MongoDB, Redis, ), cơ sở dữ liệu đối tượng,
Hình 10: Sơ đồ hệ thống cơ sở dữ liệu
Nhìn tổng quát, hệ thống CSDL gồm những thành phần sau:
Người dùng: Người dùng là người tiếp xúc với dữ liệu thông qua các ứng dụng, tức là thực hiện các phép như thêm, xoá, thay đổi dữ liệu hay yêu cầu nhận các dữ liệu từ cơ sở dữ liệu. Ứng dụng: Các chương trình, phần mềm cho phép người dùng truy cập dữ liệu đều được coi như ứng dụng của hệ thống cơ sở dữ liệu.
Hệ quản trị cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu là phần mềm ứng dụng dùng để tạo mới, bảo trì và đảm bảo truy cập có điều khiển đến các cơ sở dữ liệu của người dùng.
Dữ liệu: Là thông tin liên quan đến ứng dụng, được lưu trữ trong các tập tin cơ sở dữ liệu.
Hệ thống chủ: Là hệ thống máy tính quản lí các tập tin Nó thực hiện việc truy cập tập tin dữ liệu Vai trò của hệ quản trị cơ sở dữ liệu là yêu cầu các phương tiện lưu trữ tập tin phục vụ các ứng dụng Do vậy, hệ quản trị cơ sở dữ liệu là phần mềm nằm trong phần mềm của hệ thống chủ.
Cơ sở dữ liệu: Cơ sở dữ liệu là tập các dữ liệu liên quan logic với nhau, được thiết kế để phục vụ các nhu cầu về thông tin của nhiều người dùng trong tổ chức.
Giao diện người dùng: Hay giao diện người sử dụng là các phương tiện cho phép người dùng thao tác với các thành phần của hệ thống cơ sở dữ liệu.
Người quản trị cơ sở dữ liệu: Là người có quyền điều khiển tập trung trên toàn bộ hệ thống, về cả dữ liệu lẫn các chương trình truy xuất các dữ liệu đó Họ chuyên về công nghệ thông tin, có nhiệm vụ tạo mới cơ sở dữ liệu và cài đặt các điều khiển kĩ thuật.
Người phát triển hệ thống: Những người như phân tích viên hệ thống, lập trình viên được gọi là người phát triển hệ thống.
Cơ sở dữ liệu quan hệ
Thuật ngữ “cơ sở dữ liệu quan hệ” được phát minh bởi EF Codd tại IBM vào năm
1970 [17] Trong bài báo này và các bài báo sau này, ông đã định nghĩa những gì có nghĩa là “quan hệ” Một định nghĩa nổi tiếng về những gì cấu thành một hệ thống cơ sở dữ liệu quan hệ bao gồm 12 quy tắc của Codd [18] Tuy nhiên, không có hiện thực thương mại nào của mô hình quan hệ tuân thủ tất cả các quy tắc của Codd, vì vậy thuật ngữ này đã dần dần mô tả một lớp hệ thống cơ sở dữ liệu rộng hơn, ở mức tối thiểu.
Cơ sở dữ liệu quan hệ (RDBMS –Relational Database Management System) là một dạng hệ quản trị cơ sở dữ lệu (DBMS–Database Management System) được sử dụng phổ biến nhất, trong đó tất cả dữ liệu được tổ chức chặt chẽ dưới dạng các bảng dữ liệu. Tất cả các thao tác trên cơ sở dữ liệu đều diễn ra trên các bảng.
RDBMS được xây dựng dựa trên lí thuyết đại số quan hệ [16] Đại số quan hệ được đề ra năm 1970 bởi E.F Codd Theo đó, đại số quan hệ được hiểu là một ngôn ngữ truy vấn, trong đó, đầu vào là một tập hợp các quan hệ và đầu ra cũng là một tập hợp các quan hệ thông qua các phép toán Các phép toán cơ bản đó bao gồm:
Phép chọn (SELECT): Chọn ra các quan hệ thỏa mãn một hay một số điều kiện nào đó.
Phép chiếu (PROJECT): Chọn ra các cột (thuộc tính) thỏa mãn điều kiện.
Phép hợp (UNION): Thực hiện phép hợp hai quan hệ tương thích với nhau, tương thích ở đây có nghĩa là hai quan hệ trên phải có cùng số cột (thuộc tính).
Phép trừ (SET DIFFERENT): Chọn ra các quan hệ tồn tại trong tập quan hệ thứ nhất nhưng lại không tồn tại trong tập quan hệ thứ hai.
Phép tích Decartes (CARTESIAN PRODUCT): Kết hợp dữ liệu hai tập quan hệ đầu vào thành một tập dữ liệu đầu ra.
Phép đổi tên (RENAME): Thay đổi tên gọi của cột (thuộc tính). Đại số quan hệ là một bộ phận không quan trọng, không thể thiếu của mô hình cơ sở dữ liệu quan hệ Các nhà khoa học, kĩ sư đã hiện thực các phép toán trong đại số quan hệ thành một ngôn ngữ truy vấn–SQL (Structured Query Language) Ngôn ngữ SQL là ngôn ngữ dùng chung cho mọi cơ sở dữ liệu quan hệ Ngôn ngữ này sẽ được trình bày thêm ở phần sau Ngoài đại số quan hệ, các dạng cơ sở dữ liệu còn dùng một vài cơ chế khác như:
Cơ chế đánh index bằng các loại cây như cây B, B*,
Cơ chế khóa chính (để định danh dữ liệu), khóa ngoại (để tham chiếu dữ liệu).
Các cơ chế hàm, thủ tục lưu trữ (Dùng để hiện thực các chức năng của chương trình).
Cơ chế chuẩn hóa–Normalization (Dùng để “rút gọn” dữ liệu, loại bỏ các dữ liệu dư thừa trong tập dữ liệu).
Các cơ chế trên cung cấp các tính năng hữu ích cho các hệ quản trị cơ sở dữ liệu quan hệ, làm cho các hệ cơ sở dữ liệu dạng này có độ phù hợp cao với các dữ liệu dạng transaction. RDBMS sẽ lưu trữ dữ liệu dưới dạng bảng Mỗi hệ thống sẽ có số lượng bảng khác nhau với mỗi bảng sở hữu khóa chính duy nhất của riêng nó Khóa chính sau đó được sử dụng để xác định từng bảng Trong bảng là các hàng và cột Các hàng được gọi là bản ghi hoặc thực thể ngang; chúng chứa thông tin cho dữ liệu nhập mỗi thực thể Các cột được gọi là các thực thể dọc và sở hữu thông tin về trường cụ thể. Để quản lí dữ liệu của hệ thống, nhóm cần phải sử dụng một cơ sở dữ liệu để lưu trữ các thông tin.
Nhóm đã thực hiện so sánh hai loại cơ sở dữ liệu chính NoSQL và SQL để chọn cho mình loại cơ sở dữ liệu phù hợp với hệ thống của nhóm nhất.
Tiêu chí so sánh NoSQL SQL Định nghĩa Cơ sở dữ liệu phi quan hệ Cơ sở dữ liệu quan hệ Đối tượng phù hợp
Bao gồm nhiều loại công nghệ cơ sở dữ liệu khác nhau với khả năng đáp ứng nhu cầu cho sự phát triển của ứng dụng hiện đại
Sử dụng cú pháp và truy vấn SQL để phân tích và lấy dữ liệu để có thêm thông tin chi tiết, được sử dụng cho các hệ thống xử lí phân tích trực tuyến
Ngôn ngữ truy vấn Không có SQL
Loại hình lưu trữ Dựa trên tài liệu, cặp khóa giá trị, biểu đồ Dựa trên bảng Đặc điểm Schema Lược đồ động cho dữ liệu phi cấu trúc Lược đồ xác định trước Khả năng mở rộng Theo chiều ngang Theo chiều dọc
Môi trường truy vấn phức tạp Không phù hợp Phù hợp
Tính năng tốt nhất Dễ sử dụng, hiệu suất cao và công cụ linh hoạt
Hỗ trợ đa nền tảng, bảo mật và miễn phí
BASE (Cơ bản có sẵn, Trạng thái ôn hòa, Nhất quán sau cùng)
ACID (Tính nguyên tử, nhất quán, cô lập và bền bỉ)
Hiệu suất Nhanh Phụ thuộc vào việc thiết kế
Ví dụ MongoDB, Redis, Neo4j, Oracle, Postgres, MS SQL,
Bảng 2: Bảng so sánh NoSQL và SQL
Với những yêu cầu cũng như các nền tảng được sử dụng của hệ thống thì nhóm quyết định chọn cơ sở dữ liệu quan hệ vì các lí do sau:
− Hệ thống được sử dụng cho người cách ly nên số lượng người dùng và các thông tin liên quan có thể sẽ rất lớn.
− Các đối tượng và dữ liệu của đối tượng mà nhóm sẽ xây dựng cần tính nhất quán và chính xác cao.
− Có thể kết hợp các thông tin từ các bảng khác nhau để hỗ trợ truy vấn thông tin theo nhiều cách.
PostgreSQL
PostgreSQL [14] là một hệ quản trị cơ sở dữ liệu quan hệ–đối tượng, được phát triển bởi Khoa Điện toán, Đại học California –Hoa Kì dựa trên Postgres bản 4.2 Chương trình này đã mở đường cho nhiều khái niệm về hệ quản trị dữ liệu thương mại sau này [13].
Ban đầu, hệ quản trị được thiết kế để chạy trên các nền tảng tương tự như Unix Sau này, PostgreSQL được điều chỉnh trở nên linh động và chạy trên nhiều nền tảng khácnhau như Windows, Mac OS X, Solaris với nhiều tính năng và đặc điểm nổi bật PostgreSQL là mã nguồn mở miễn phí, được xây dựng theo chuẩn SQL99 Người dùng có thể tự do sử dụng, chỉnh sửa và phân bổ PostgreSQL theo nhiều hình thức khác nhau.
So với nhiều hệ quản trị cơ sở dữ liệu khác, PostgreSQL không quá yêu cầu về công tác bảo trì bởi tính ổn định cao, có thể phát triển nhiều ứng dụng khác nhau với chi phí tương đối thấp.
3.3.1 Các tính năng của PostgreSQL
Kiểu dữ liệu: Nguyên hàm (các nguyên số, boolean, số, chuỗi); cấu trúc (UUID, Phạm vi, Array, Date/time); Hình học; Tùy chỉnh; Document.
Toàn vẹn dữ liệu: Ràng buộc loại từ, Primary Keys, Foreign Keys, UNIQUE, NOT NULL, Khóa khuyến nghị/ Advisory Locks, Khóa hàm số/ Explicit Locks,…
Hiệu suất, đồng quy: Tính năng lập danh mục, lập danh mục nâng cao, trình lập kế hoạch, trình tối ưu hóa truy cập phức tạp, thống kê số liệu trên nhiều cột, quét index –only, giao tác giao tác dạng test, điều khiển đồng thời nhiều phiên bản (MVCC), phân vùng bảng, truy vấn đọc song song, độ tin cậy, phục hồi sau thảm họa, nhật kí ghi trước (Write ahead Logging–WAL), replication, khôi phục điểm–thời gian, bảng.
Chức năng bảo mật: Bảo mật, xác thực (SCRAM SHA 256, SSPI, LDAP, GSSAPI, Certificate và các hình thức khác), hệ thống kiểm soát truy cập mạnh mẽ, bảo mật cấp độ cột–hàng.
Khả năng mở rộng: phương pháp lưu trữ, ngôn ngữ thủ tục (PL/ PGSQL, Python, Perl, và nhiều ngôn ngữ khác), PostGIS, tính năng kết nối cơ sở dữ liệu hoặc luồng khác với giao diện SQL chuẩn, cùng nhiều tính năng mở rộng khác.
Tìm kiếm văn bản: Tìm kiếm văn bản đầy đủ, hệ thống các bộ kí tự quốc tế (thông qua ICU collations).
Tính năng khác: Khả năng quản lí số lượng người dùng đang thao tác cùng lúc, phù hợp với môi trường sản xuất quản lí nhiều terabyte và petabyte.
Có khả năng chạy trang web, ứng dụng web động.
Lưu lại nhật kí, hình thành cơ sở dữ liệu hỗ trợ sửa lỗi.
Mã nguồn PostgreSQL luôn sẵn sàng để người dùng chỉnh sửa nâng cấp.
Hỗ trợ khách hàng theo từng vùng địa lí.
Cách thức sử dụng đơn giản.
PostgreSQL không chịu sự quản lí của bất kì tổ chức nào gây khó khăn để người tiếp cận với đầy đủ tính năng.
Có vô số ứng dụng ứng dụng mã nguồn mở không phải ứng dụng nào cũng được hỗ trợ tốt.
Mã nguồn PostgreSQL luôn sẵn sàng để người dùng chỉnh sửa nâng cấp.
Hiệu suất hoạt động chậm hơn so với MySQL.
Mô hình 3 lớp hay còn được gọi là mô hình Three Layer (3 Layer), mô hình này ra đời nhằm phân chia các thành phần trong hệ thống, các thành phần cùng chức năng sẽ được nhóm lại với nhau và phân chia công việc cho từng nhóm để dữ liệu không bị chồng chéo và chạy lộn xộn.
Mô hình này phát huy hiệu quả nhất khi bạn xây dựng một hệ thống lớn, việc quản lí code và xử lí dữ liệu lỗi dễ dàng hơn.
Hình 11: Sơ đồ mô hình 3 Layer
Controller layer (API routes and endpoints): Đây là module code cho phép định nghĩa các API route trong ứng dụng Nhiệm vụ module này là xác thức data và chuyển đến Service Layer để xử lí.
Service layer (for business logic): Module này cho phép tạo ra lớp tách biệt ra khỏi các API Router Mỗi một service tương ứng với một nhiệm vụ riêng biệt (Nên tuân theo nguyên tắc SOLID) Việc chuyển logic nghiệp vụ vào module này cho phép các thể tái sử dụng ở các API khác nhau một cách hiệu quả.
Data access layer (for working with a database): Module này đảm nhận trách nhiệm giao tiếp với database với các công việc truy vấn như Get, Update, Create, Ngoài ra các công việc như định nghĩa model, ORM, connect databse đều được thực hiện tại đây.
RESTful API [15] là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lí các resource Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động, ), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
Hình 12: Mô tả về RESTful API [6]
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML.
(REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lí một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, đến một URL để xử lí dữ liệu.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lí các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.
Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE, ) và cách định dạng các URL cho ứng dụng web để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kì ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API.
Hình 13: Cách thức hoạt động của RESTful API [6]
REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng.
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
POST (CREATE): Tạo mới một Resource.
PUT (UPDATE): Cập nhật thông tin cho Resource.
DELETE (DELETE): Xoá một Resource.
Phân tích yêu cầu 24
Nhiệm vụ, quyền hạn, sơ đồ tổ chức của Tòa án nhân dân cấp Quận, Huyện
Nhiệm vụ, quyền hạn của Tòa án nhân dân huyện, quận, thị xã, thành phố thuộc tỉnh và tương đương:
Sơ thẩm vụ việc theo quy định của pháp luật.
Giải quyết việc khác theo quy định của pháp luật.
Cơ cấu tổ chức của Tòa án nhân dân huyện, quận, thị xã, thành phố thuộc tỉnh và tương đương Tòa án nhân dân huyện, quận, thị xã, thành phố thuộc tỉnh và tương đương có thể có Tòa hình sự, Tòa dân sự, Tòa gia đình và người chưa thành niên, Tòa xử lí hành chính Trường hợp cần thiết, Ủy ban Thường vụ Quốc hội quyết định thành lập Tòa chuyên trách khác theo đề nghị của Chánh án Tòa án nhân dân tối cao Căn cứ quy định tại khoản này và yêu cầu, thực tế xét xử ở mỗi Tòa án nhân dân huyện, quận, thị xã, thành phố trực thuộc tỉnh và tương đương, Chánh án Tòa án nhân dân tối cao quyết định việc tổ chức Tòa chuyên trách Tòa án nhân dân huyện, quận, thị xã, thành phố thuộc tỉnh và tương đương có Chánh án, Phó Chánh án, Thẩm phán, Thư kí Tòa án, Thẩm tra viên về thi hành án, công chức khác và người lao động.
Hình 14: Sơ đồ tổ chức TAND cấp Quận, Huyện, và cấp tương đương [20]
Như vậy, Toà án nhân dân các cấp bao gồm các chức vụ, chức danh từ cao xuống thấp như sau:
− Chánh án, Phó Chánh án: đây là cấp cao nhất trong bộ máy toà án Chánh án được quyền phê duyệt tất cả các hồ sơ, kí quyết định thụ lí hồ sơ, kí quyết định ban hành các kế hoạch, hoạt động Phó Chánh án được quyền kí thay nếu Chánh án không có mặt hoặc được Chánh án uỷ quyền.
− Các văn phòng, bộ máy giúp việc cho Toà án như Phòng nghiên cứu, Phòng bảo quản, Văn phòng tiếp dân, Thanh tra, Công đoàn, Phòng in, Đây là các phòng ở cấp dưới Chánh án, và phó chánh án có chức năng giúp việc cho toà án theo chuyên môn Mỗi phòng đều có một Trường phòng.
− Chánh văn phòng: Đây là chức danh đặc thù đối với mỗi một đơn vị, cơ quan Có nhiệm vụ quản lí nhân sự, theo dõi tình hình các phòng, ban khác Triển khai, tham mưu đến Chánh án các kế hoạch, hoạt động thi đua của toà án Tiếp nhận các văn bản đến, gửi các văn bản đi.
− Cán bộ: Là các nhân viên của toà án, làm việc tại toà, đây là chức vụ ở cấp cuối.
2 Quy trình tiếp nhận, thụ lí vụ án dân sự tại Toà án Nhân dân các cấp
Bước 1: Nộp đơn khởi kiện
Việc giải quyết vụ án dân sự của Tòa án chính thức phát sinh kể từ thời điểm Tòa án nhận đơn khởi kiện của nguyên đơn Dự thảo đơn khởi kiện của Quý khách phải theo đáp ứng các điều kiện về hình thức và nội dung theo quy định tại Điều 189 Bộ luật Tố tụng dân sự 2015.
Việc nộp đơn khởi kiện được thực hiện bằng cách:
+ Nộp trực tiếp (tòa án cấp ngay giấy xác nhận đã nhận đơn khởi kiện),
+ Gửi qua bưu điện (tòa án gửi thông báo nhận đơn khởi kiện chậm nhất sau 2 ngày),
+ Gửi trực tuyến qua cổng thông tin điện tử (áp dụng đối với Tòa án có cổng thông tin điện tử–tòa án gửi email phản hồi về việc nhận đơn khởi kiện) Người khởi kiện phải gửi kèm theo đơn là các tài liệu, chứng cứ chứng minh cho việc quyền, lợi ích hợp pháp của mình bị xâm phạm.
Bước 2: Xem xét và thụ lí đơn khởi kiện
Quy trình xem xét đơn khởi kiện cụ thể như sau:
+ Trong thời hạn 03 ngày làm việc kể từ ngày nhận được đơn khởi kiện, Chánh án Tòa án phân công một Thẩm phán xem xét đơn khởi kiện.
+ Trong thời hạn 05 ngày làm việc kể từ ngày được phân công, Thẩm phán phải xem xét đơn khởi kiện và thông báo ngay cho người khởi kiện khi có một trong các quyết định sau đây:
+ Chuyển đơn khởi kiện cho Tòa án có thẩm quyền và thông báo cho người khởi kiện nếu vụ án thuộc thẩm quyền giải quyết của Tòa án khác; Yêu cầu sửa đổi, bổ sung đơn khởi kiện; (áp dụng khi đơn khởi kiện không đủ các nội dung theo mẫu quy định Thời hạn sửa đổi, bổ sung đơn khởi kiện do Thẩm phán xem xét đơn ấn định, nhưng không quá 01 tháng để người khởi kiện tiến hành sửa đổi, bổ sung các yêu cầu hợp pháp của Thẩm phán, trường hợp đặc biệt, Thẩm phán có thể gia hạn nhưng không quá 15 ngày Quá thời hạn hạn trên, mà không tiến hành sửa đổi, bổ sung đơn khởi kiện thì sẽ bị trả lại đơn khởi kiện.
+ Trả lại đơn khởi kiện cho người khởi kiện (áp dụng khi người khởi kiện không có quyền khởi kiện; không có năng lực hành vi dân sự; chưa đủ điều kiện khởi kiện, không nộp tiền tạm ứng án phí…) Trong vòng 10 ngày kể từ ngày nhận văn bản trả lại đơn khởi kiện, người khởi kiện có quyền khiếu nại về sự việc này.
+ Tiến hành thủ tục thụ lí vụ án (thẩm phán xem xét đơn ra thông báo cho người khởi kiện nộp tiền tạm ứng án phí) Trong vòng 07 ngày kể từ ngày nhận thông báo, người khởi kiện có nghĩa vụ nộp tiền tạm ứng án phí của vụ kiện tại Cơ quan thi hành án và nộp lại biên lai này cho Tòa án để được thụ lí vụ án.
Thực tiễn tố tụng: Có nhiều trường hợp, sau 3 ngày làm việc nhưng Chánh án vẫn không phân công thẩm phán xem xét đơn khởi kiện theo quy định Thực tế việc phân công này có thể kéo dài trong khoảng 1 2 tuần (tức 3 10 ngày làm việc). Ngoài ra, việc xem xét đơn khởi kiện nhiều khi cũng không được thực hiện theo quy trình 5 ngày Đa số các thông báo của Tòa án được gửi cho người khởi kiện trong khoảng 1 2 tháng hoặc hơn sau khi Tòa án nhận được đơn khởi kiện.
Riêng việc thụ lí đơn có thể kéo dài từ 2–3 tháng kể từ ngày Tòa án nhận đơn Ngoài ra, thời hạn báo cáo tổng kết của ngành tòa án vào ngày 30/09 hàng năm, trong khi thời hạn chuẩn bị xét xử của vụ án dân sự tối đa là 04 tháng, có thể gia hạn tối đa
02 tháng Nên thường các đơn khởi kiện gửi trong khoảng từ tháng 8 đến tháng 9 đa phần sẽ chưa được thụ lí giải quyết ngay mà thường để qua ngày 30/09 mới tiến hành thụ lí và giải quyết theo quy định, trừ trường hợp các vụ việc đơn giản có thể tiến hành xử lí theo thủ tục rút gọn (thời gian chuẩn bị xét xử không quá 30 ngày kể từ ngày thụ lí).
Bước 3: Chuẩn bị và xét xử sơ thẩm
Theo quy định của pháp luật, thời gian chuẩn bị xét xử không quá 4 tháng, trường hợp đặc thù có thể kéo dài không quá 6 tháng Nhưng thực tế do nhiều nguyên nhân khách quan và chủ quan, vụ việc có thể kéo dài lâu hơn thời gian quy định.
Trong quá trình chuẩn bị xét xử, tòa án sẽ tổ chức các phiên tiếp cận và công khai chứng cứ Các chứng cứ được công khai có thể do mỗi bên giao nộp hoặc do tòa án thu thập được Mỗi bên ngoài việc cung cấp tài liệu, chứng cứ cho Tòa án thì còn phải cung cấp cho cả các đương sự khác Và quyền yêu cầu phản tố của các đương sự này không còn sau khi Tòa án tổ chức buổi tiếp cận, công khai chứng cứ. Trong quá trình thu thập tài liệu, chứng cứ; Tòa án có quyền tạm đình chỉ vụ án để và thời gian thu thập tài liệu, chứng cứ hay thời gian tạm đình chỉ này không nằm trong khoảng thời gian chuẩn bị xét xử.
Quy trình tiếp nhận, lưu trữ hồ sơ
Quy trình tiếp nhận, thụ lí, giải quyết hồ sơ của Tòa án đối với hồ sơ thuộc Luật Hôn nhân và Gia đình, Luật dân sự
Hình 15: Sơ đồ BPMN Quy trình tiếp nhận, thụ lí, giải quyết hồ sơ của Tòa án đối với hồ sơ thuộc Luật Hôn nhân và Gia đình, Luật dân sự
Tóm tắt tại, việc quản lí hồ sơ tại toà án được tổng kết bằng Quy trình theo các bước sau:
− Bước 1: Chánh án, Phó chánh án mở từng bộ hồ sơ phù hợp theo thời gian, loại hồ sơ.
− Bước 2: Chánh án, Phó chánh án bổ sung tiêu chí phù hợp theo từng bộ hồ sơ.
− Bước 3: Các cán bộ nộp hồ sơ, kê khai hồ sơ, bổ sung tài liệu liên quan Có thể chỉnh sửa, bổ sung, thêm, xoá, sửa tiêu chí.
− Bước 4: Hết thời gian nộp hồ sơ, hệ thống đóng lại Chánh án, phó chánh án phân công cán bộ phê duyệt hồ sơ.
− Bước 5: Theo nhiệm vụ, thời gian cần phê duyệt, các cán bộ phê duyệt từng hồ sơ theo bộ hồ sơ.
− Bước 6: Duyệt hồ sơ kết thúc, đóng bộ hồ sơ.
− Bước 7: Hoàn thành, báo cáo tổng kết.
Phạm vi tiếp cận trong việc tố tụng dân sự
Theo quy định tại Điều 191 Bộ luật tố tụng dân sự 2015, Tòa án phải nhận đơn khởi kiện do đương sự nộp trực tiếp tại Tòa án hoặc gửi qua bưu điện và phải ghi vào sổ nhận đơn Trường hợp Tòa án nhận đơn khởi kiện được gửi bằng phương thức gửi trực tuyến thì Tòa án in ra bản giấy và phải ghi vào sổ nhận đơn Chánh án tòa phân công Thẩm phán xem xét đơn.
Sau khi thẩm phán đước phân công xem xét đơn khởi kiện, Tòa án phải xem xét và có một trong các quyết định sau đây:
Thụ lí vụ án nếu vụ án thuộc thẩm quyền giải quyết;
Chuyển đơn khởi kiện cho Tòa án có thẩm quyền và báo cho người khởi kiện, nếu vụ án thuộc thẩm quyền giải quyết của tòa án khác;
Trả lại đơn khởi kiện cho người khởi kiện, nếu việc đó không thuộc thẩm quyền giải quyết của Tòa án.
Tiến hành thủ tục thụ lí vụ án theo thủ tục thông thường hoặc theo thủ tục rút gọn nếu vụ án có đủ điều kiện để giải quyết theo thủ tục rút gọn quy định tại khoản 1 Điều 317 của Bộ luật này.
Như vậy, trong đề tài này chỉ tiếp cận giai đoạn tiếp nhận hồ sơ, và không tham gia tìm hiểu quá trình giải quyết, thụ lí hồ sơ và giai đoạn xét xử.
Quy trình triển khai kế hoạch, thi đua tại toà án
Đối với mỗi một đơn vị, ngoài chuyên môn thì còn có những tiêu chí thi đua nội bộ, để đánh giá mức độ làm việc của từng cán bộ với nhau Vì vậy, cần có những kế hoạch
Hình 16: Phạm vi tiếp cận trong quy trình tố tụng [21] triển khai sớm, tổ chức hoạt động nhằm giúp các cán bộ nâng cao trình độ, trau dồi kỹ năng, gắn bó với đồng nghiệp.
Hình 17: Ràng buộc thời gian tạo đợt hoạt động
Hình 18: Ràng buộc thời gian diễn ra hoạt động
Tóm tắt tại, việc triển khai các hoạt động tại toà án được tổng kết bằng Quy trình theo các bước sau:
− Bước 1: Chánh án, tổ chức đợt hoạt động, ban hành kế hoạch.
− Bước 2: Các trưởng phòng tiếp nhận kế hoạch, triển khai các hoạt động phù hợp.
− Bước 3: Mở đợt đăng kí cho các cán bộ tham gia.
− Bước 4: Diễn ra hoạt động.
− Bước 5: Đợt đăng kí kết thúc, nhưng hoạt động vẫn diễn ra.
− Bước 6: Kết thúc hoạt động.
− Bước 7: Tổng kết hoạt động, xem báo cáo.
Hình 19: Sơ đồ BPMN về quy trình ban hành, triển khai các hoạt động, thi đua tại toà án
3 Bài toán và giải pháp
Trong quá trình phân tích yêu cầu của hệ thống, nhóm đã gặp phải một số bài toán cần giải quyết như sau:
Quản lí hồ sơ, các tài liệu liên quan
Bài toán đặt ra cần thiết lập một hệ thống quản lí bộ hồ sơ, mỗi một bộ hồ sơ thì có nhiều hồ sơ khác nhau Vậy chúng ta cần tổ chức quản lí như thế nào cho nhanh chóng và hiệu quả?
Hình 20: Sơ đồ thư mục quản lí Bộ hồ sơ
Bài toán phân quyền người dùng
Trong toà án, đối tượng hoạt động sẽ có nhiều vai trò khác nhau như người quản lí, cán bộ Vì thế, cần phải xác định rõ các vai trò, cũng như các quyền tương ứng một cách rõ ràng, giúp hệ thống vận hành ổn định, hiệu quả.
Phê duyệt hồ sơ đủ điều kiện, đủ tiêu chí
Mỗi một bồ hồ sơ đều có một bộ tiêu chí khác nhau, vì vậy yêu cầu tạo bộ tiêu chí linh hoạt và phê duyệt nó, so sánh tiêu chí phù hợp.
Nhắc nhở người dùng khi có hồ sơ gần đến hạn, hoặc hết hạn thẩm định
Đối với mỗi một bộ hồ sơ đều có thời hạn phê duyệt Vì vậy cần phải nhắc nhở các cán bộ hoàn thành đúng hạn.
Quản lí các hoạt động, tham gia hoạt động
các hoạt động trong toà án đều mang tính thi đua đối với các phòng với nhau, vì vậy cần thiết lập hệ thống quản lí hoạt động, quản lí số người tham gia từng hoạt động.
Hình 21: Phương thức, thể hiện các hoạt động, nhóm hoạt động thi đua
Hình 22: Ràng buộc thời gian tạo đợt hoạt động
Hình 23: Ràng buộc thời gian diễn ra hoạt động
Vẽ cây gia phả
Trong các hồ sơ dân sự luôn luôn có việc xử lí tranh chấp, thừa kế Vì vậy cần có việc vẽ cây gia phả, nhằm thể hiện rõ và đúng mối quan hệ những người trong vụ án để xử lí.
Xuất báo cáo hồ sơ theo mẫu
Quản lí hồ sơ online sẽ làm chủ được việc số hoá Tuy nhiên đối với mỗi hồ sơ luôn cần lưu trữ lại bản giấy đối với mỗi hồ sơ đặc biệt.
Nhóm xác định và phân quyền người dùng trong hệ thống như sau:
− Quản lí hệ thống: Super Manager.
− Quản trị hệ thống: Administrator.
− Quản lí đơn vị: Department manager.
(a) Đối với người dùng (là cán bộ): Đăng nhập để truy cập vào hệ thống.
Cập nhật thông tin cá nhân.
Nộp hồ sơ trong Bộ hồ sơ. Đăng kí tham gia hoạt động.
(b) Đối với người quản lí hệ thống (Thủ trưởng cơ quan, giám đốc, ban giám đốc): Đăng nhập để truy cập vào hệ thống.
Cập nhật thông tin cá nhân.
Quy định bộ tiêu chí hợp lệ cho Hồ sơ.
Phân công Hội đồng xét duyệt cho Hồ sơ.
Xem báo cáo, thống kê Hồ sơ.
(c) Đối với người quản trị hệ thống (Chánh văn phòng, văn thư): Đăng nhập để truy cập vào hệ thống.
Cập nhật thông tin cá nhân.
(d) Đối với người quản lí đơn vị (Trưởng ban, Trường phòng):
Xét duyệt đăng kí tham gia hoạt động.
Quản lí tài khoản
Việc quản lí tài khoản cần có nhiệm vụ như sau: Đăng nhập: Để sử dụng ứng dụng, người dùng cần đăng nhập bằng cách đăng nhập bằng tài khoản Google của mình Sau khi đăng nhập thành công, người dùng có thể truy cập đến các chức năng chính của ứng dụng mà mình được ủy quyền.
Xem và cập nhật thông tin của bản thân: Người dùng có thể xem và cập nhật thông tin của bản thân Điền thông tin cơ bản như họ và tên, số điện thoại, các thông tin quan trọng như Họ và tên, Mã số cán bộ, Email, chỉ được chỉnh sửa một lần và không được thay đổi Vì vậy cần khai báo lần đầu một cách chính xác.
Quản lí hồ sơ và các bộ Hồ sơ
Hồ sơ là một hoặc một tập tài liệu có liên quan với nhau về một vấn đề, một sự việc,một đối tượng cụ thể hoặc có đặc điểm chung, hình thành trong quá trình theo dõi,giải quyết công việc thuộc phạm vi chức năng, nhiệm vụ của cơ quan, tổ chức.
Bộ hồ sơ là tập hợp các hồ sơ cùng một lĩnh vực, cùng một đề tài.
Như vậy, hệ thống cần quản lí theo từng bộ hồ sơ, quản lí từng hồ sơ trong bộ hồ sơ để trực quan hóa, rõ ràng theo từng mục, từng tiêu chí.
Tạo bộ tiêu chí cho hồ sơ
Theo từng bộ hồ sơ đều có tiêu chí Để có thể đánh giá sơ bộ, hồ sơ này có đảm bảo hay không, vì vậy cần có các tiêu chí đầu để thực hiện nạp hồ sơ vào hệ thống Vì vậy cần có chức năng tạo bộ tiêu chí Ngoài ra, mỗi tiêu chí đều có một quy tắc đánh giá khác nhau: theo quy mô, theo mức độ, hoặc cán bộ tự đánh giá.
Quản lí phê duyệt hội đồng cho hồ sơ
Để tiến hành tiếp nhận hồ sơ, thu nhận hồ sơ và xử lí theo quy trình, quy định Cần thành lập Hội đồng xét duyệt Hội đồng xét duyệt là các cán bộ được phân công Trong đó chỉ định một cán bộ trong hội đồng là Chủ tịch hội đồng.
Hội đồng có nhiệm vụ bám theo tiêu chí từng hồ sơ, để tiến hành phê duyệt hồ sơ hợp lệ hay không Hội đồng có thể duyệt từng bộ hoặc đồng loạt duyệt tất cả hồ sơ.
Quản lí hoạt động
Hoạt động là các chương trình, hoạt động diễn ra tại tòa án Các hoạt động trên được thực hiện thông qua các Chương trình, Kế hoạch đã đưa ra Các hoạt động bao gồm các thông tin như: Tên hoạt động, thời gian hoạt động, thời gian đăng kí, số lượng đăng kí,nội dung hoạt động,
Quản lí người tham gia hoạt động
Mỗi hoạt động đều có một khoảng thời gian đăng kí trước và kết thúc đăng kí trước khi kết thúc hoạt động Đồng thời cần quản lí người đăng kí tham gia, mỗi một hoạt động đều có giới hạn người đăng kí Vì vậy cần thông báo, đến người đăng kí nếu đã đủ số lượng.
Quản lí thi đua giữa các đơn vị
Trong một tòa án, đều có các phòng ban là bộ máy giúp việc của Tòa án Các phòng ban đều có các tiêu chí thu đua để thực hiện các hoạt động, tiêu chí để thi đua giữa các đơn vị Đây cũng tương tự như việc quản lí hồ sơ, bởi Thi đua bao gồm các tiêu chí thi đua mà các ban, phòng tự đánh giá.
Vẽ cây gia phả
Trong việc giải quyết các bộ hồ sơ, các hồ sơ Dân sự đều vướng phải việc thể hiện các mối quan hệ giữa người với người trong một gia đình/thế hệ Cần vẽ được cây giả phả để dễ dàng nhận diện mối tương quan giữa các thành viên trong dòng họ với nhau.
Xem thống kê, số liệu
Kết thúc một đợt xét duyệt hồ sơ, hội đồng xét duyệt cần xem lại kết quả của việc xét duyệt hồ sơ Kết quả được nhận thấy thông qua biểu đồ, bảng biểu, số liệu đạt/ không đạt, hồ sơ xét duyệt/chưa xét duyệt.
6 Yêu cầu phi chức năng
Ngoài ra, hệ thống cần phải đáp ứng được một số các yêu cầu phi chức năng sau:
− Về giao diện và trải nghiệm người dùng (UI/UX): Cần phải xây dựng giao diện thân thiện, dễ dàng sử dụng với mọi đối tượng người dùng, màu sắc, bố cục trình bày hợp lí, hiện đại, đáp ứng các chuẩn trong thiết kế ứng dụng mobile và website Ngoài ra, các thao tác cần phải đơn giản, rõ ràng để người dùng sử dụng một cách dễ dàng và nhanh chóng.
− Về tính bảo mật: Mật khẩu của người dùng phải chứa ít nhất 6 kí tự; bảo vệ dữ liệu người dùng, luôn kiểm tra danh tính và quyền người dùng trong mọi request; cần yêu cầu các quyền trước khi sử dụng tính năng có liên quan.
− Về tính sẵn sàng: Hệ thống luôn trong trạng thái hoạt động ổn định, thời gian phản hồi người dùng dưới 6 giây.
− Về hiệu suất trang web: Website cần đạt chuẩn Google Lighthouse trên 50 điểm.
− Về chịu tải: Hệ thống cần có khả năng chịu tải cao, tránh lỗi khi có quá nhiều người cùng truy cập vào hệ thống.
Thiết kế hệ thống 38
Use case diagram cho Module Quản lí hồ sơ
Hình 25: Use case Diagram cho Module Quản lí hồ sơ
Đặc tả Use case
Use case Name Đăng nhập
Actor Tất cả các quyền
Description Có tài khoản, người dùng sẽ đăng nhập vào hệ thống, nếu không thì đăng kí tài khoản qua email
Precondition Email người dùng phải là email Google, đã được xác thực và được cấp bởi tòa án
Postcondition Đăng nhập thành công
Normal Flow 1 Truy cập hệ thống
3 Xác thực người dùng và điều hướng đến trang chính tùy theo Role
Exception Thông báo lỗi khi email người dùng không đúng
Bảng 3: Use case Đăng nhập
Cập nhật thông tin cá nhân
Use case Name Cập nhật thông tin cá nhân
Actor Tất cả các quyền
Description Người dùng cập nhật thông tin cá nhân
Precondition Người dùng đã đăng nhập vào hệ thống
Postcondition Người dùng cập nhật thông tin thành công
Normal Flow 1 Người dùng truy cập trang Quản lí thông tin
2 Người dùng nhập thông tin cá nhân
3 Hệ thống kiểm tra thông tin người dùng nhập
4 Người dùng lưu thông tin
5 Hệ thống lưu thông tin người dùng
Exception Thông tin nhập không hợp lệ, hệ thống báo lỗi
Bảng 4: Use case Cập nhật thông tin cá nhân
Use case Name Tạo hồ sơ
Actor Thư kí (Người dùng)
Description Thư kí nộp một bộ hồ sơ
Precondition Thư kí đăng nhập vào hệ thống
Thư kí đã cập nhật thông tin cá nhân
Postcondition Thư kí nộp hồ sơ thành công
Normal Flow 1 Thư kí truy cập vào trang Quản lí Hồ sơ
2 Thư kí chọn Tạo Hồ sơ
3 Thư kí điền thông tin Hồ sơ
4 Thư kí chọn lưu Hồ sơ
5 Hệ thống lưu Hồ sơ thành công
Exception Thông tin người dùng nhập không hợp lệ, hệ thống báo lỗi
Bảng 5: Use case Tạo hồ sơ
Use case Name Tạo bộ hồ sơ
Actor Quản lí hệ thống
Description Quản lí hệ thống tạo một Bộ hồ sơ
Precondition Quản lí hệ thống đăng nhập vào hệ thống
Postcondition Quản lí hệ thống tạo mới bộ hồ sơ thành công
Normal Flow 1 Quản lí hệ thống truy cập vào trang Quản lí hồ sơ
2 Quản lí hệ thống chọn Tạo bộ hồ sơ
3 Quản lí hệ thống điền thông tin bộ hồ sơ
4 Quản lí hệ thống chọn lưu Bộ hồ sơ
5 Hệ thống lưu bộ hồ sơ thành công
Exception Thông tin quản lí hệ thống nhập không hợp lệ, hệ thống báo lỗiBảng 6: Use case Tạo Bộ hồ sơ
Use case Name Quản lí tiêu chí
Actor Quản lí hệ thống
Description Quản lí hệ thống tạo/ cập nhật bộ tiêu chí cho một bộ hồ sơ
Precondition Bộ hồ sơ tương ứng đã được tạo và chưa đi vào hoạt động
Postcondition Quản lí hệ thống cập nhật tiêu chí thành công
Normal Flow 1 Quản lí hệ thống truy cập vào trang Quản lí hồ sơ
2 Quản lí hệ thống tạo/ chỉnh sửa bộ tiêu chí
3 Quản lí hệ thống chọn lưu
4 Hệ thống lưu bộ hồ sơ thành công
Exception Thông tin quản lí hệ thống nhập không hợp lệ, hệ thống báo lỗi Bảng 7: Use case Quản lí tiêu chí
Quản lí Hội đồng xét duyệt (HĐXD)
Use case Name Quản lí Hội đồng xét duyệt (HĐXD)
Actor Quản lí hệ thống
Description Quản lí hệ thống tạo/ chỉnh sửa HĐXD cho một bộ hồ sơ
Precondition Bộ hồ sơ tương ứng đã được tạo và chưa kết thúc
Postcondition Quản lí hệ thống thêm/chỉnh sửa HĐXD thành công
Normal Flow 1 Quản lí hệ thống truy cập vào trang Quản lí HĐXD
2 Quản lí hệ thống tạo/ chỉnh sửa thành viên HĐXD
3 Quản lí hệ thống nhập email của thành viên và chọn vai trò thành viên hoặc xóa thành viên khỏi danh sách
4 Quản lí hệ thống chọn lưu Hội đồng xét duyệt
5 Hệ thống lưu Hội đồng xét duyệt thành công
Exception Thông tin quản lí hệ thống nhập không hợp lệ, hệ thống báo lỗiBảng 8: Use case Quản lí Hội đồng xét duyệt
Use case Name Quản lí Người dùng
Actor Quản trị Hệ thống
Description Quản trị Hệ thống phân quyền cho người dùng trong hệ thống
Precondition Quản trị Hệ thống đăng nhập vào hệ thống
Postcondition Quản trị Hệ thống chỉnh sửa quyền truy cập cho người dùng thành công
Normal Flow 1 Quản trị Hệ thống truy cập vào trang Quản lí người dùng
2 Quản trị Hệ thống chọn người dùng từ danh sách hoặc tìm kiếm người dùng
3 Quản trị Hệ thống chọn Cập nhật người dùng
4 Quản trị Hệ thống chọn quyền truy cập mới cho người dùng
5 Hệ thống lưu quyền truy cập user thành côngBảng 9: Use case Quản lí người dùng
Use case Name Duyệt hồ sơ
Actor Người dùng, Quản lí hệ thống
Description Hệ thống cho phép thành viên hội đồng duyệt hồ sơ từ các bộ hồ sơ
Precondition Người duyệt hồ sơ đã đăng nhập vào hệ thống
Postcondition Duyệt hồ sơ thành công
Normal Flow 1 Người duyệt truy cập vào trang Duyệt hồ sơ
2 Người duyệt chọn người dùng từ danh sách hoặc tìm kiếm người dùng
3 Người duyệt xem kết quả hồ sơ và đưa ra nhận xét
4 Người duyệt đưa ra kết quả cuối cùng cho hồ sơ
5 Hệ thống lưu lại kết quả Bảng 10: Use case Duyệt hồ sơ
Tổng kết bộ hồ sơ
Use case Name Tổng kết bộ hồ sơ
Actor Quản lí hệ thống
Description Quản lí hệ thống xem tổng kết một bộ hồ sơ
Precondition Quản lí hệ thống đã đăng nhập vào hệ thống và bộ hồ sơ đã kết thúc phiên duyệt hồ sơ
Postcondition Quản lí hệ thống xem tổng kết thành công
Normal Flow 1 Quản lí hệ thống truy cập vào trang Tổng kết
2 Quản lí hệ thống xem kết quả tổng kết tại đây
3 Quản lí hệ thống xem tổng kết thành côngBảng 11: Use case Tổng kết bộ hồ sơ
Activity Diagram
Hình 26: Người dùng Đăng nhập
Khi chọn đăng nhập, người dùng sẽ chọn tài khoản muốn đăng nhập vào hệ thống. Sau đó, hệ thống sẽ kiểm tra xem tài khoản có hợp lệ hay không (Tài khoản hợp lệ là tài khoản được quản trị viên cấp quyền hoặc tài khoản thuộc tòa án) Nếu tài khoản hợp lệ thì hệ thống sẽ trả về thông tin người dùng hoặc khởi tạo người dùng mới rồi trả về thông tin.
2.3.2 Người dùng cập nhật thông tin cá nhân
Hình 27: Người dùng Cập nhật thông tin cá nhân
Người dùng phải cung cấp thông tin cá nhân trước khi sử dụng hệ thống Trong lần cập nhật đầu tiên, người dùng phải cung cấp toàn bộ các thông tin được yêu cầu Từ lần thứ 2 trở đi, người dùng chỉ được cập nhật các trường được cho phép.
2.3.3 Người dùng Nộp hồ sơ trong bộ hồ sơ
Hình 28: Người dùng Nộp hồ sơ trong bộ hồ sơ
Khi người dùng nộp bộ hồ sơ cho bộ hồ sơ, người dùng sẽ vào trang danh sách các
Bộ hồ sơ đang hoạt động rồi chọn bộ hồ sơ muốn nộp Sau đó, người dùng sẽ tạo bộ hồ sơ Sau khi tạo bộ hồ sơ, người dùng sẽ cập nhật các minh chứng, đánh giá và lưu lại bộ hồ sơ này Sau đó, khi muốn thay đổi, người dùng có thể cập nhật bộ hồ sơ.
2.3.4 Quản lí hệ thống tạo Bộ hồ sơ
Hình 29: Quản lí hệ thống tạo Bộ hồ sơ
Vào mỗi đợt bình xét, Quản lí hệ thống sẽ tạo các bộ hồ sơ tương ứng Khi tạo, quản lí hệ thống sẽ điền các thông tin cho bộ hồ sơ và lưu lại Sau đó, Quản lí hệ thống có thể tạo và chỉnh sửa bộ tiêu chí ứng với bộ hồ sơ.
2.3.5 Quản lí hệ thống phân công Hội đồng xét duyệt
Hình 30: Quản lí hệ thống phân công Hội đồng Xét duyệt
Sau khi giai đoạn nộp hồ sơ kết thúc thì Quản lí hệ thống sẽ phân công Hội đồng xét duyệt để thẩm định các bộ hồ sơ Hội đồng xét duyệt bao gồm Chủ tịch hội đồng và các thành viên Sau khi phân công hội đồng hoàn tất, Quản lí hệ thống ấn lưu để lưu lại Hội đồng xét duyệt.
2.3.6 Thành viên Hội đồng duyệt bài cho Bộ hồ sơ
Hình 31: Thành viên Hội đồng duyệt bài cho Bộ hồ sơ
Sau khi giai đoạn nộp hồ sơ kết thúc Hội đồng xét duyệt sẽ được thành lập và các thành viên trong hội đồng có thể tham gia xét duyệt hồ sơ đã tham gia trong bộ hồ sơ. Các thành viên của hội đồng xét duyệt có thể xem danh sách các hồ sơ cũng như là thông tin chi tiết để đưa ra các đánh giá chính xác Trong quá trình hiện chi tiết hồ sơ của người nộp thành viên có thể xem được thông tin người dùng cung cấp, ghi chú cho những tiêu chí cần lưu ý trong hồ sơ để Chủ tịch hội đồng có thể xem và tham gia ý kiến, duyệt các bộ hồ sơ và cuối cùng là trả về kết quả cuối cùng cho hồ sơ.
2.3.7 Chủ tịch Hội đồng duyệt bài cho Bộ hồ sơ
Hình 32: Chủ tịch Hội đồng duyệt bài cho Bộ hồ sơ
Chủ tịch hội đồng xét duyệt là duy nhất, mỗi hội đồng xét duyệt chỉ có một Chủ tịch hội đồng xét duyệt, bên cạnh những chức năng tương tự thành viên hội đồng xét duyệt Chủ tịch hội đồng xét duyệt sẽ có thêm hai chức năng đó là: Khóa tạm thời và Khóa vĩnh viễn Khóa tạm thời là khóa giúp cho trong quá trình duyệt hồ sơ sẽ không có thành viên nào trong hội đồng có thể can thiệp hay duyệt được nhầm mang tính khách quan cho Chủ tịch khi duyệt hồ sơ Khóa vĩnh viễn là khóa kết thúc phiên duyệt hồ sơ của chủ tịch hội đồng xét duyệt, khóa này chỉ được kích hoạt khi tất cả các hồ sơ đã được duyệt.
3 Chi tiết module Hoạt động
Use Case Diagram cho Module Hoạt động
Hình 33: Use case Diagram cho Module Hoạt động
Đặc tả Usecase
Use case Name Tổng kết đợt hoạt động
Actor Quản lí hệ thống
Description Quản lí tạo các đợt hoạt động
Precondition Quản lí hệ thống đã đăng nhập vào hệ thống
Postcondition Quản lí hệ thống tạo thành công đợt hoạt động
Normal Flow 1 Quản lí nhấn tạo đợt hoạt động
2 Quản lí điền thông tin của đợt hoạt động
3 Quản lí ấn xác nhận
4 Hệ thống thông báo tạo đợt hoạt động thành công
Exception Thông báo lỗi khi Quản lí nhập thông tin đợt hoạt động không hợp lệ Bảng 12: Use case Tạo Đợt hoạt động
Use case Name Tạo Nhóm hoạt động
Actor Trưởng phòng, trường ban
Description Trưởng phòng, trường ban tạo các nhóm hoạt động cho các đợt hoạt động
Precondition Trưởng phòng, trường ban đã đăng nhập vào hệ thống
Postcondition Trưởng phòng, trường ban tạo thành công đợt hoạt động
Normal Flow 1 Trưởng phòng, trường ban tạo nhóm hoạt động
2 Điền thông tin của nhóm hoạt động
3 Trưởng phòng, trường ban ấn xác nhận
4 Hệ thống thông báo tạo nhóm hoạt động thành công
Exception Thông báo lỗi khi nhập thông tin nhóm hoạt động không hợp lệBảng 13: Use case Tạo Nhóm hoạt động
Use case Name Tạo Hoạt động
Actor Trưởng phòng, trường ban
Description Trưởng phòng, trường ban tạo các nhóm hoạt động cho các đợt hoạt động và các nhóm hoạt đọng
Precondition Trưởng phòng, trường ban đã đăng nhập vào hệ thống
Postcondition Trưởng phòng, trường ban tạo thành công hoạt động
Normal Flow 1 Trưởng phòng, trường ban tạo hoạt động
2 Trưởng phòng, trường ban điền thông tin của hoạt động
3 Trưởng phòng, trường ban ấn xác nhận
4 Hệ thống thông báo quản lí tạo hoạt động thành công
Exception Thông báo lỗi khi Trưởng phòng, trường ban nhập thông tin hoạt động không hợp lệ Bảng 14: Use case Tạo Hoạt động Đăng kí Hoạt động
Use case Name Đăng kí Hoạt động
Description Người dùng đăng kí tham gia các hoạt động
Precondition Người dùng đã đăng nhập vào hệ thống
Postcondition Người dùng gửi đăng kí thành công
Normal Flow 1 Người dùng chọn hoạt động mình muốn đăng kí
2 Người dùng ấn Đăng kí tham gia hoạt động
3 Hệ thống thông báo đăng kí được gửi đi thành công
Exception Hệ thống thông báo lỗi khi số người tham gia hoạt động đã đạt tối đaBảng 15: Use case Đăng kí Hoạt động
Duyệt đăng kí hoạt động
Use case Name Duyệt đăng kí
Actor Trưởng phòng, trường ban
Description Trưởng phòng, trường ban duyệt đăng kí tham gia hoạt động
Precondition Trưởng phòng, trường ban đã đăng nhập vào hệ thống
Postcondition Trưởng phòng, trường ban duyệt thành công các đơn đăng kí tham gia hoạt động
Normal Flow 1 Trưởng phòng, trường ban nhấn duyệt đăng kí
2 Trưởng phòng, trường ban xem thông tin và chọn cán bộ muốn duyệt
3 Trưởng phòng, trường ban ấn duyệt
4 Hệ thống thông báo người dùng đã được tham gia vào hoạt động
Exception Hệ thống thông báo lỗi khi số người tham gia hoạt động đã đạt tối đaBảng 16: Use case Duyệt đăng kí tham gia hoạt động
Activity Diagram
Hình 34: Tạo Đợt hoạt động
Khi Quản lí hệ thống tạo đợt hoạt động, Quản lí hệ thống sẽ điền thông tin đợt hoạt động và ấn lưu lại, hệ thống sẽ kiểm tra xem thông tin đợt hoạt động có hợp lệ không và phản hổi lại.
Hình 35: Tạo Nhóm hoạt động
Sau khi tạo đợt hoạt động, Quản lí hệ thống sẽ tạo ra các nhóm hoạt động tương ứng với đợt hoạt động Khi tạo, Quản lí hệ thống sẽ điển thông tin nhóm hoạt động và chọn đợt hoạt động mà nhóm hoạt động thuộc về, sau đó ấn lưu Hệ thống sẽ kiểm tra xem thông tin nhóm hoạt động có hợp lệ hay không rồi phản hổi lại.
Quản lí hệ thống hay Quản lí đơn vị có thể tham gia tạo các hoạt động cho người dùng tham gia Mỗi hoạt động sẽ thuộc về một Đợt hoạt động và Nhóm hoạt động nhất định.Khi tạo, người dùng sẽ nhập thông tin hoạt động và ấn lưu Hệ thống sẽ kiểm tra xem thông tin hoạt động có hợp lệ không và phản hổi lại.
3.3.4 Đăng kí tham gia hoạt động
Hình 37: Đăng kí tham gia hoạt động
Khi muốn đăng kí tham gia hoạt động, người dùng (các cán bộ) sẽ chọn các hoạt động muốn đăng kí rồi gửi đăng kí Có hai hình thức đăng kí là Đăng kí trực tiếp trên Web app hoặc đăng kí bằng mã QR code Sau khi đăng kí thì người dùng sẽ chờ đăng kí của mình được duyệt.
Hình 38: Duyệt hoạt động Để cho phép cán bộ tham gia các hoạt động thì Quản lí đơn vị (Trưởng bộ phận, trưởng ban) phải duyệt các đơn đăng kí Mỗi hoạt động có số lượng người tham gia tối đa, Quản lí đơn vị không được duyệt quá số lượng này Sau khi duyệt đơn đăng kí, hệ thống sẽ báo lại cho người dùng là đơn đăng kí đã được duyệt hay là bị từ chối.
4 Chi tiết module Vẽ cây gia phả
Use case Diagram
Hình 39: Use case diagram chia thừa kế theo pháp luật
Đặc tả Usecase
Thêm thành viên trong gia phả
Use case Name Thêm thành viên
Description Người dùng thêm thành viên gia đình trong gia phả
Precondition Người dùng đã đăng nhập vào hệ thống
Postcondition Trưởng phòng, trường ban duyệt thành công các đơn đăng kí tham gia hoạt động
Normal Flow 1 Người dùng ấn nút thêm thành viên
2 Người dùng nhập thông tin thành viên
3 Người dùng ấn nút “Thêm”
4 Hệ thống thêm thành viên vào cây gia phả
Exception Hệ thống thông báo lỗi khi nhập thông tin không đúng
Bảng 17: Use case Thêm thành viên trong gia phả
Chỉnh sửa thành viên trong gia phả
Use case Name Chỉnh sửa thành viên trong gia phả
Description Người dùng chỉnh sửa thành viên gia đình trong gia phả
Precondition Người dùng đã đăng nhập vào hệ thống
Postcondition Trưởng phòng, trường ban duyệt thành công các đơn đăng kí tham gia hoạt động
Normal Flow 1 Người dùng ấn vào thành viên muốn sửa
2 Người dùng nhập thông tin thành viên
3 Người dùng ấn ”Chỉnh sửa”
4 Hệ thống thông báo thành viên đã chỉnh sửa thành công
Exception Hệ thống thông báo lỗi khi nhập thông tin không đúng
Bảng 18: Use case Chỉnh sửa thành viên trong gia phả
Xoá thành viên trong gia phả
Use case Name Xoá thành viên trong gia phả
Description Người dùng xoá thành viên gia đình trong gia phả
Precondition Người dùng đã đăng nhập vào hệ thống
Postcondition Người dùng đã đăng nhập hệ thống Đã có cây gia phả
Normal Flow 1 Người dùng ấn vào thành viên muốn xoá
2 Xác nhận xoá thành viên
3 Hệ thống thông báo đã xoá thành công
Exception Hệ thống thông báo lỗi khi người muốn xoá có con cái (quan hệ huyết thống ở hàng dưới)Bảng 19: Use case Xoá thành viên trong gia phả
Acitivy Diagram
4.3.1 Thêm thành viên trong gia phả
Hình 40: Thêm thành viên trong gia phả
Khi tạo một gia phả, người dùng thêm thành viên trong gia phả bằng cách ấn nút
“Thêm thành viên”, người dùng điền đủ thông tin liên quan đến thành viên như: Họ và tên, Mối quan hệ, Giới tính, Ngày sinh, Ngày mất, mô tả thành viên, ảnh đại diện (nếu có) Sau khi điền đủ thông tin cần thiết, hệ thống báo lưu thành công thành viên và sẽ hình thành cây phả.
4.3.2 Chỉnh sửa thành viên trong gia phả
Hình 41: Chỉnh sửa thành viên trong gia phả
Khi muốn thay đổi thông tin thành viên, người dùng ấn chọn thành viên và chỉnh sửa thông tin theo yêu cầu Sau khi điền đủ thông tin cần thiết, hệ thống báo lưu thành công thành viên và sẽ hình thành cây phả.
4.3.3 Xoá thành viên trong gia phả
Hình 42: Xóa thành viên trong gia phả
Khi muốn xoá thành viên, người dùng ấn chọn thành viên và xoá thành viên theo nhu cầu Đối với xóa thành viên: Chỉ được xóa thành viên chưa có hàng dưới, có nghĩa là thành viên chưa có con hay hậu duệ liên quan Như vậy, hệ thống sẽ báo lỗi “Không thể xoá” khi đã có con cháu đời sau, và sẽ báo “Thành công” khi thoả mãn điều kiện trên.
5 Sơ đồ trình tự của các chức năng (Sequence diagram)
Sequence Diagram là bản vẽ xác định câu chuyện hậu trường của một chức năng Câu chuyện hậu trường ở đây chính là sự tương tác giữa các nhóm đối tượng, các thông điệp được gửi và nhận giữa các đối tượng cũng như trình tự thời gian giữa những thông điệp đó.
Trong báo cáo này nhóm xin trình bày các sequence diagram theo các chức năng chính.
Đăng nhập
Hình 43: Sequence diagram Đăng nhập
Quản lí thông tin
Hình 44: Sequence diagram Quản lí thông tin
Thêm Bộ hồ sơ
Hình 45: Sequence diagram Thêm bộ hồ sơ
Thêm tiêu chí
Hình 46: Sequence diagram Thêm tiêu chí
Thêm Hội đồng Xét duyệt
Hình 47: Sequence diagram Thêm hội đồng xét duyệt
Duyệt và tổng duyệt hồ sơ
Hình 48: Sequence diagram Duyệt hồ sơ
Xem báo cáo, tổng kết
Hình 49: Sequence diagram Xem báo cáo
Quản lí người dùng
Hình 50: Sequence diagram Quản lí người dùng
Quản lí Bộ phận, Phòng, Ban
Hình 51: Sequence diagram Quản lí bộ phận
Nộp hồ sơ cho các bộ hồ sơ đang được công bố
Hình 52: Sequence diagram Nộp hồ sơ
Thêm đợt hoạt động
Hình 53: Sequence diagram Thêm đợt hoạt động
Thêm nhóm hoạt động
Hình 54: Sequence diagram Thêm nhóm hoạt động
Thêm hoạt động
Hình 55: Sequence diagram Thêm hoạt động
Nhắc nhở thông báo hồ sơ gần đến hạn
Hình 56: Sequence diagram Nhắc nhở hồ sơ gần đến hạn
Đăng ký tham gia hoạt động
Hình 57: Sequence diagram Đăng kí tham gia hoạt động
6 Thiết kế cơ sở dữ liệu
Entity Relationship Diagram
Đối với Module Quản lí hồ sơ
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK not null userID number FK profileID number FK criteriaID number FK file string point number binary boolean staffComment string staffSelect string
Description string createAt date updateAt date
Bảng Submission lưu trữ các dữ liệu do người dùng nộp Bộ hồ sơ tương ứng với mỗi tiêu chí.
Giải nghĩa các dữ liệu trong bảng:
Id: Mã bài nộp. userID: id của người nộp. profileID: Mã bộ hồ sơ. criteriaID: Mã tiêu chí. file: Lưu đường dẫn file nếu có. point: Lưu điểm (loại tiêu chí: điểm). binary: Lưu kết quả (loại tiêu chí: nhị phân). staffComment: Lưu kết quả (loại tiêu chí: nhận xét). staffSelect: Lưu kết quả (loại tiêu chí: nhận xét).
Descriptionn: thêm mô tả. createAt: Ngày đăng kí. updateAt: Ngày chỉnh sửa lần cuối.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK auditorFinal number FK auditors array FK name string not null unique softCriteria number description string startAt date endAt date lock enum createAt date updateAt date deleteAt date
Bảng Profile lưu trữ các Bộ hồ sơ.
Giải nghĩa các dữ liệu trong bảng: id: Mã bộ hồ sơ. auditorFinal: Mã chủ tịch hội đồng auditors: Mã các thành viên trong hội đồng. name: Tên Bộ hồ sơ. softCriteria: Số lượng tiêu chí phụ (tiêu chí không bắt buộc). description: Mô tả về Bộ hồ sơ. startAt: Ngày bắt đầu nhận hồ sơ. endAt: Ngày kết thúc nhận hồ sơ. lock: Tình trạng của bộ hồ sơ. createAt: Ngày tạo bộ hồ sơ. updateAt: Ngày chỉnh sửa lần cuối. deleteAt: Ngày xóa bộ hồ sơ.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id int PK not null profileId number FK name string not null method string note string valueListString string content string type enum evidence boolean lowerSign enum upperSign enum lowerPoint number upperPoint number soft number createAt date updateAt date
Bảng criteria lưu trữ các tiêu chí dùng để thể hiện cho từng Bộ hồ sơ.
Giải nghĩa các dữ liệu trong bảng: id: Mã tiêu chí. profileId: Mã Bộ hồ sơ. name: Tên tiêu chí. method: Loại tiêu chí. note: Ghi chú. valueListString: Lưu giá trị chuỗi (loại tiêu chí ). content: Nội dung của tiêu chí. type: Phân biệt là tập tiêu chí hay là tiêu chí con. evidence: Minh chứng. lowerSign: Dấu (loại tiêu chí điểm). upperSign: Dấu (loại tiêu chí điểm). lowerPoint: Điểm (loại tiêu chí điểm). upperPoint: Điểm (loại tiêu chí điểm). soft: Số lượng tiêu chí con (tiêu chí không bắt buộc). createAt: Ngày tạo. updateAt: Ngày cập nhật.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc ancestor int PK, FK not null descendant int PK, FK not null
Bảng 23: Bảng ClosureCriteria Đối với tập tiêu chí thể hiện ra cha con lồng cấp nhau nên có thể áp dụng lưu trữ dữ liệu dạng cây (tree data structure) Closure Table.
Closure Table là cách sử dụng thêm một bảng phụ làm bảng tham chiếu mối quan hệ ancestor descendant giữa các node ở trong cây Điểm mấu chốt là Closure Table sẽ lưu lại mọi mối quan hệ ancestor descendant có thể (tức cha cha, cha con, cha cháu, cha chắt, ), chứ không phải chỉ lưu mỗi mối quan hệ cha con trực tiếp (liền kề nhau). Nhờ có một bảng phụ lưu rõ mọi mối quan hệ ancestor descendant, việc truy xuất các ancestor hay descendant của một node rất đơn giản, có lẽ là đơn giản nhất trong mọi cách mình kể trên.
Khác với Nested Sets, việc thêm và xóa row khi sử dụng cùng bảng Closure Table cũng đơn giản hơn nhiều Chỉ có một điều bạn phải lưu ý là khi dữ liệu cây của bạn nhiều và sâu hơn thì số lượng bản ghi ở bảng TreePaths cũng tăng lên rất nhanh, đánh đổi lại cho việc dễ dàng hơn trong truy xuất dữ liệu.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc answerID number PK, FK not null examerID number PK, FK not null resultID number FK description string result boolean createAt date updateAt date
Bảng 24: Bảng ResultOfCriteria Đối với từng tiêu chí khi xét duyệt sẽ có kết quả khác nhau vì vậy kết quả đó sẽ được lưu tại bảng resultOfCriteria.
Giải nghĩa các dữ liệu trong bảng: answerID: Mã bài nộp hồ sơ. examerID: Mã người nộp hồ sơ. resultID: Kết quả tổng kết cho Bộ hồ sơ đối với hồ sơ FK. description: Người phê duyệt thêm bình luận. result: Kết quả phê duyệt tiêu chí. createAt: Ngày tạo kết quả tiêu chí updateAt: Ngày chỉnh sửa lần cuối.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK not null userID number FK not null examerID number FK not null profileID number FK not null result boolean final boolean createAt date updateAt date
Bảng result sẽ lưu trữ kết quả cho Từng bộ Hồ sơ.
Giải nghĩa các dữ liệu trong bảng: id: Mã kết quả cho hồ sơ. userID: Mã người duyệt hồ sơ. examerID: Mã người nộp hồ sơ. profileID: Mã Bộ hồ sơ. result: Kết quả từ người duyệt. final: Lưu xem có phải Chủ tịch hội đồng hay không. createAt: Ngày tạo kết quả. updateAt: Ngày chỉnh sửa lần cuối.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc user_id int PK not null departmentID number FK youthBranchID number FK role enum name string surName string mscb string not null isRegisterWithGoogle boolean isUpdateInformation boolean currentHashRefreshToken string email string not null createAt date updateAt date deleteAt date
Bảng user dùng để lưu trữ các thông tin người dùng hệ thống cung cấp.
Giải nghĩa các dữ liệu trong bảng: id: Mã người dùng. departmentID: Mã ban, bộ phận. youthBranchID: Mã tổ. role: Quyền hạn trong hệ thống. name: Tên người dùng. surName: Họ và tên đệm. mscb: Mã số cán bộ. isRegisterWithGoogle: Có phải đăng nhập trực tiếp hay được admin cấp tài khoản. isUpdateInformation: Tình trạng cập nhập thông tin. currentHashRefreshToken: Mã refresh token. email: Địa chỉ email. createAt: Ngày tạo. updateAt: Ngày chỉnh sửa lần cuối. deleteAt: Ngày xóa.
Đối với Module Hoạt động
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK not null activityGroups number activities number FK name string planStartDay date startDay date endDay date createAt date updateAt date deleteAt date
Bảng ActivityCapaign dùng để lưu trữ đợt hoạt động.
Giải nghĩa các dữ liệu trong bảng: id: Mã đợt hoạt động. activityGroups: Mã nhóm hoạt đông. name: Tên đợt hoạt động. planStartDay: Ngày lên kế hoạch đợt hoạt động. startDay: Ngày bắt đầu đợt hoạt động. endDay: Ngày kết thúc đợt hoạt động. createAt: Ngày tạo đợt hoạt động. updateAt: Ngày cập nhật đợt hoạt động. deleteAt: Ngày xóa đợt hoạt động.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK not null campaign number FK activities number FK name string maximumActivity number createAt date updateAt date deleteAt date
Bảng ActivityGroup dùng để lưu trữ các nhóm hoạt động trong một đợt hoạt động nhất định.
Giải nghĩa các dữ liệu trong bảng: id: Mã nhóm hoạt động. campaign: Mã đợt hoạt động. activities: Mã hoạt động. name: Tên nhóm hoạt động. maximumActivity: Số tối đa hoạt động được tổ chức. createAt: Ngày tạo nhóm hoạt động. updateAt: Ngày chỉnh sửa nhóm hoạt động. deleteAt: Ngày xóa nhóm hoạt động.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK not null campaign number FK creator number FK activityGroup number FK departments number FK name string status enum noteStatus string maximumPaticipant numnber not null registerStartDay date registerEndDay date startDay date endDay date link string content string createAt date updateAt date deleteAt date
Bảng Activity dùng để lưu trữ các hoạt động.
Giải nghĩa các dữ liệu trong bảng: id: Mã hoạt động. campaign: Mã đợt hoạt động. activityGroup: Mã nhóm hoạt động. departments: Mã bộ phận/phòng/ban tham gia hoạt động. name: Tên hoạt động. status: Trạng thái hoạt động. noteStatus: Ghi chú cho trang thái. maximumPaticipant: Số tối đa người tham gian hoạt động. registerStartDay: Ngày bắt đầu đăng kí hoạt động. registerEndDay: Ngày kết thúc đăng kí hoạt động. startDay: Ngày diễn ra hoạt động. endDay: Ngày kết thúc hoạt động. link: Đường dẫn đến nội dung hoạt động. content: Nội dung hoạt động. createAt: Ngày tạo tổ. updateAt: Ngày chỉnh sửa lần cuối. deleteAt: Ngày xóa tổ.
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc id number PK not null user number FK activity number FK status enum createAt date updateAt date deleteAt date
Bảng Registration dùng để lưu trữ các thành viên và trạng thái khi đăng kí các hoạt động đang được diễn ra.
Giải nghĩa các dữ liệu trong bảng: id: Mã đăng kí hoạt động. user: Mã người dùng. activity: Mã hoạt động. status: Trạng thái đăng kí hoạt động. createAt: Ngày đăng kí hoạt động. updateAt: Ngày chỉnh sửa đăng kí hoạt động. deleteAt: Ngày xóa đăng kí hoạt động.
Đối với Module Vẽ cây gia phả
Tên trường dữ liệu Kiểu dữ liệu Ràng buộc person_id auto index PK not null user_id varchar FK parent_id varchar partner_id varchar gender varchar name varchar FK not null dob date dead varchar 0 not null dod date
Bảng 34: Bảng Person trong gia phả
Bảng person thể hiện thông tin của từng người trong gia phả.
Giải nghĩa các dữ liệu trong bảng: person_id: Khóa chính định danh người trong gia phả. user_id: Khóa ngoại để xác định person thuộc gia phả của user nào parent_id: Chứa person_id của cha/mẹ của person. partner_id: Chứa person_id của vợ/chồng của person. gender: Giới tính của person. name: Tên của person, bao gồm cả họ và tên. dob: Ngày sinh của person. dead: Giá trị binary tương ứng còn sống/ đã qua đời. dod: Ngày mất của person.
Xây dựng hệ thống 91
Lấy danh sách hồ sơ
Mô tả: Lấy ra danh sách Bộ hồ sơ
Tham số: Sẽ được gửi với 1 array bao gồm các thành phần như bảng
Khoá Kiểu dữ liệu Mô tả Yêu cầu search String Cho phép tìm kiếm theo tên
Bộ hồ sơ Tùy chọn page Number Các Bộ hồ sơ ở mỗi trang Bắt buộc limit Number Thể hiện số lượng Bộ hồ sơ muốn xem Bắt buộc
Bảng 35: Bảng tham số lấy danh sách Bộ hồ sơ
Kết quả: Danh sách trả về là 1 mảng với cái phần tử như bảng sau:
Khóa Kiểu dữ liệu Mô tả Yêu cầu id Number Mã Bộ hồ sơ Bắt buộc name String Tên Bộ hồ sơ Bắt buộc softCriteria Number Số lượng các tiêu chí phụ
(Không bắt buộc) Bắt buộc desciption String Mô tả cho Bộ hồ sơ Bắt buộc startAt Dat Ngày nhận hồ sơ Bắt buộc endAt Date Ngày kết thúc nhận Bắt buộc
Bảng 36: Bảng trả về danh sách Bộ hồ sơ
Tạo bộ tiêu chí cho Bộ hồ sơ
Mô tả: Tạo bộ tiêu chí cho 1 Bộ hồ sơ
Tham số: Sẽ được gửi với 1 array bao gồm các thành phần như bảng
Khóa Kiểu dữ liệu Mô tả Yêu cầu id Number Mã tiêu chí Bắt buộc name String Tên tiêu chí Bắt buộc method String Loại tiêu chí Bắt buộc note String Ghi chú cần thiết cho tiêu chí Tùy chọn valueListString String Thể hiện nội dung cho tiêu chí (loại tiêu chí, ) Tùy chọn content String Nội dung tiêu chí Tùy chọn type Enum(hard, soft) Thể hiện có phải tiêu chí bắt buộc hay không Bắt buộc evidence Boolean Thể hiện tiêu chí cần minh chứng hay không Bắt buộc upperSign Enum(>, =, ,=,