📅 November 30, 2019•
⏱️1 min read
This app is part of a project that I have been leading in Sierra Leone, helping the Ministry of Finance digitize their payment processing system. The project is a first-of-its-kind in Sierra Leone - the old paper-based system was slow and highly unreliable, which had large consequences for the delivery of government projects.
The first stage of the project began early 2019, when I developed a Figma prototype for a system which would digitize a large form submission/approval system for the Ministry of Finance and other government agencies in Sierra Leone.
The prototype was approved by the client, and together with a junior developer, I built the system as a server-side rendered web applications, using Django and HTML/CSS/JS (the code to this system has not been shared), and deployed it on AWS. Working with a developer below my skill-level meant that I developed a robust Git workflow, and became proficient at reviewing other people's code.
The system contains 15 different user roles, as such has a complicated business logic. It allows each user to review, approve and/or reject forms, and send them on to another user of a particular role. Different user roles will have different dashboards, where they can track the location of the forms.
To allow key users to quickly login to the system, and receive push notifications on their phone whenever there is a new form for them to review, I developed a native mobile application for the system as well. Using Ionic React, I developed both an iOS and Android app in 2 weeks, and added an API to the web app using DRF that the native apps could consume.
The app uses React Context for state management, and uses Higher Order Components to create seperate auth-protected apps for each of the user roles.
It also uses Firebase cloud messaging to send push notifications to specific users when there is a new form for them to review, using the pyfcm Python module.
A modified version of the source code for the Ionic application can be found here: GitHub.