NTR Solution Design Document v1
NTR Solution Design Document v1
REF: MOWT/NCONS/20-21/00242
Presented by
This document will not specify any actual services or the testing of the software.
The primary objective is to build a robust web-based solution for the MoWT Department of
Transport Regulation and Safety clients to be able to quickly and conveniently make
assessments and payments for desired services using either desktop computers, laptops, tablets
or mobile phones.
The solution will be integrable with other government systems to improve service delivery and
information sharing across all stakeholders.
2.2.2 Constraints
Achieving the quick turnaround time required by TRS to deliver the product is dependent on
third-party (e-Tax System, Licensing System) integration partners’ involvement is timely.
It is envisaged that critical stakeholder current integration implementations will limit fluidity in
the design to achieve certain workflows. In this case we shall have consultative meetings on
workarounds to achieve the desired outcomes.
2.3 References
Before consulting and or implementing our SDLC system development methodology, it was
important to adhere to and comply with the standards set forth by Government. Complying
with these standards helps systems and organizations stay within the laws and regulations of
the Government of Uganda (GoU) in regards to system design and information sharing.
1. Speed
2. Scalability
3. Simplicity
React JS will be used to develop the Clients’ Self-Service Web Application as well as the
Administrator Web Application (Admin Panel) and the BackOffice Interfaces for MoWT users.
Django is a high-level python web frame that enable rapid development of secure and
maintainable websites. In this project, Django will allow the backend engineer to modularize
the solution by building the different backend features as Apps and further integrating them
into a project which the users will interact with
1. Scalability
2. Security
3. Speed
The backend shall also consist of an Administrator Panel/ BackOffice which will be securely
accessed only by authenticated and authorized users to manage the different tasks and
configurations of the NTR Application. This Application shall allow the following user roles
1. Accounts
2. Licensing Officer
3. Chief Licensing Officer
4. System Administrator
1. User Management
MySQL Enterprise Edition is the database server that will be used in this project. This offers
high availability, scalability and monitoring features needed in ensuring that the solution meets
its goals. The Enterprise Edition offers the following benefits
The front end shall interact with the backend end through a web service built in Django. React
JS on the front interacts with the backend end through consuming a REST API built in Django
as shown below
Figure 3: Interaction between the front and backend through the Webservice
Having a Rest API on the backend allows the solution to be easily scalable and has added
advantage of the ability to integrate the solution easily with other existing systems.
The primary link will have two public IP Addresses. One for access and the other for
maintenance.
The two links will be aggregated and configured with automatic failover to ensure system high
availability.
Software staging and testing will be done on the consultant’s VPS and can be accessed by
accessing the following link.
https://ntr.cml.ug
The proposed specification details of the staging environment are detailed in section 3.1.
3.5.2 Production
The production environment will be accessible via a MoWT URL which will be determined at a
later time.
The proposed set up and configuration of the production environment is detailed in section 3.2.
The Quality Assurance and Training teams will use the staging server for their duties.
4 DETAILED DESIGN
4.1 Staging Environment
The staging environment is a cloud-hosted VPS which can be accessed via the following URL.
https://ntr.cml.ug
IP Address: 194.195.215.94
Storage: 160 GB
The following is the proposed minimum equipment that will be required to set up the
production environment.
The NTR System data center will be installed on a virtualized environment where both
Application and Database will be installed. The virtualized infrastructure will achieve the
following objectives for the NTR System
• Resource utilization. The resources on the physical hosts installed will be used optimally
• High Availability. Virtual Machines (VM) installed on this environment will be able to
move from one host to another
The virtualized environment will run Ovirt - an open-source data center virtualized platform
which offers large-scale, centralized management for server and desktop virtualization. It
provides Kernel-based virtual machine management for a multi-node virtualization and as such
KVM (Kernel-based Virtual machines) are part of a virtualization infrastructure that turns the
Linux kernel into a hypervisor.
• oVirt Engine: Acts as the control center for oVirt environments. It enables admins to
define hosts and networks as well as add storage, create VMs and manage user
permissions. A GUI is included which manages oVirt infrastructure resources. The oVirt
engine will be configured as a standalone server.
• oVirt Nodes: This is a server that runs on CentOS, Fedora or RHEL with virtual desktop
and server manager (VDSM) daemon and KVM hypervisor. The VDSM controls the
resources available to the node, including compute, networking and storage resources.
Hostname ovirtengine.mowt_ntr.go.ug
IP Address X.X.X.X
Version 4.X
RAM 16GB
Hostname ovirtnode01/02.mowt_ntr.go.ug
IP Address X.X.X.X
Version 4.X
RAM >32GB
OS 4.X iso
Hostname ovirtnode03/04.mowt_ntr.go.ug
IP Address X.X.X.X
Version 4.X
RAM >32GB
OS 4.X iso
4.2.2.3 Storage
Storage will be mounted to the Virtual environment through NFS. The following NFS mount
points will be created. These NFS shares will be configured on the storage systems before they
are connected to the virtual environment. Each Storage Server system will be configured with
minimum 512GB installed capacity
• /exports/vmstorage - This will contain all the hard disk images for the virtual machines
At a storage level, the storage server at the datacenter will replicate to the one at NITA-U DR
site through Real-Time Remote Replication (RTRR). Real-time Remote Replication (RTRR) is a
powerful backup feature to back up new and modified files immediately to another folder (on
the storage server or an external drive) or a remote NAS. RTRR improves backup efficiency and
reduces backup time. It also supports data backup from the storage server to a remote FTP
server and vice versa.
To set up RTRR;
• Under the "RTRR Server” tab, click "Enable Real-time Remote Replication Server”.
• The default service port is 8899; you do not need to change the port number.
• Enter a password for RTRR backup and verify the password, then click "Apply”.
In this configuration only the /iso and /vmstorage will only be configured at the MoWT
Datacenter and replicated to DR. The remainder of the capacity will be used for expansion at a
later time.
Hostname nfshq.mowt_ntr.go.ug
IP X.X.X.X
Address
Hostname nfsdr.mowt_ntr_2.go.ug
IP X.X.X.X
Address
MySQL Shell enables users to set up and run reports to display live information from a MySQL
server instance, such as status and performance information. This is very crucial for DB
administrators to optimize the database for performance and improved user experience.
MySQL Shell's reporting facility supports both built-in reports and user-defined reports. The
reporting facility is available from MySQL Shell 8.0.16. Reports can be created directly at the
MySQL Shell interactive prompt, or defined in scripts that are automatically loaded when
MySQL Shell starts.
The system is able to integrate and operate with other government systems.
5.1.2 Extensibility
New capabilities can be added to the system without major changes to the underlying
architecture.
5.1.3 Modularity
The system design comprises well defined, independent modules and components which leads
to better maintainability. The components will be implemented and tested in isolation before
being integrated to form the desired software system.
5.1.4 Fault-tolerance
5.1.5 Maintainability
Care in design was made for easily bug fixes or functional modifications to be accomplished.
5.1.6 Reliability
The system is able to perform a required function under stated conditions for a specified period
of time.
5.1.7 Robustness
The system is able to operate under stress or tolerate unpredictable or invalid input.
5.1.8 Security
The system is able to withstand and resist hostile acts and influences.
5.1.9 Usability
The system user interfaces must be usable for its target user/audience. Default values for the
parameters must be chosen so that they are a good choice for the majority of the users.
5.1.10 Performance
The system performs its tasks within a time-frame that is acceptable for the user, and does not
require too much memory.
5.1.11 Portability
The system should be usable across a number of different conditions and environments.
5.1.12 Scalability
The software adapts well to increasing data or added features or number of users.
5.2 Assumptions
The following were the assumptions made while scoping the NTR System solution.
The system should be very user friendly even and operable by a user who does not necessarily
know English.
Other systems expected to integrate with this solution have already existing APIs.
This ISPs can guarantee 99.9% service uptime to ensure that the system is always accessible.
6 DOCUMENT ACCEPTANCE AND SIGN OFF
For Ministry of Works & Transport
………………………………… …………………………………………………………….
Signature Name
Date Title
………………………………… …………………………………………………………….
Signature Name
Date Title
………………………………… …………………………………………………………….
Signature Name
Date Title
………………………………… …………………………………………………………….
Signature Name
Date Title
For Computer Medics Ltd (CML)
………………………………… …………………………………………………………….
Signature Name: Carol Mbabazi
Date Title: Project Sponsor
………………………………… …………………………………………………………….
Signature Name: Kennedy Nayebare
Date Title: Project Manager/ Business Analyst
………………………………… …………………………………………………………….
Signature Name: Simon Kaweesi
Date Title: Product Developer/ System Architect
7 APPENDIX
7.1 Glossary
Term Definition
Backend Layer The backend layer is also called the data access layer of
software or hardware and includes any functionality that
needs to be accessed and navigated to by digital means.
Business Layer The Business Layer is the place where all the business/domain
logic, i.e., rules that are particular to the problem that the
application has been built to handle, lives.
Data Access Layer A data access layer (DAL) in computer software is a layer of a
computer program which provides simplified access to data
stored in persistent storage of some kind, such as an entity-
relational database.
Data Layer A data layer is a JavaScript object that collects data on your
website in a standardized way. Every tool you hook up to your
website — analytics, heatmapping, live chat, etc. — accesses
this one layer of data, which ensures two things: Each tool gets
the data it needs. The data each tool uses is the same.
Front End Layer Frontend is the presentation layer, it’s that part of an
application, which the user can see.
IP Address An IP address is a unique address that identifies a device on
the internet or a local network. IP stands for "Internet
Protocol," which is the set of rules governing the format of data
sent via the internet or local network.
Staging Environment A staging environment or staging site is a copy of the live web
application and is the last step in the deployment process
before changes are deployed production.
By having a staging environment that is a copy of the
production environment, system developers and users are able
to test new changes made before they are released.
Web Server A web server is software and hardware that uses HTTP
(Hypertext Transfer Protocol) and other protocols to respond
to client requests made over the World Wide Web. The main
job of a web server is to display website content through
storing, processing and delivering webpages to users. Besides
HTTP, web servers also support SMTP (Simple Mail Transfer
Protocol) and FTP (File Transfer Protocol), used for email, file
transfer and storage.
Acronym Meaning
HQ Head Quarters
OS Operating System
OS Operating System
QA Quality Assurance
VM Virtual Machine