SaaS Project Tracker and Dashboard

📅 December 18, 2019

⏱️2 min read

The purpose of this project was to create a comprehensive tool which governemnts and agencies could use to track their delivery plans.

The tool was initially meant to only be deployed in a single office in Sierra Leone, however, due to its popularity, we quickly found out that it could be used as a Software as a Service.

I built this tool in an iterative fashion - first starting with a Django web-app which uses a PostgreSQL database and HTML/CSS/JS front-end, and gradually shifting over to building new parts of the application using React.

The tool consists of two parts:

  1. A Delivery Dashboard were teams can keep track of their longer-term plans, and assign Milestones to individual users within their teams. Key KPIs and Datasets can also be posted and monitored on these dashboard.

  2. An Action Tracker - which functions similar to Trello. Here shorter-term actions can be assigned to Team Members, who need to login and mark the actions as in progress or completed.

The unique environment in which this tool would be deployed meant that I had to take a number of things into consideration:

  • Content management needs to be simple and doable without any web development skills.

I solved this by making uploading new Milestones to the system very easy. Users can fill in an Excel template with the Milestone data, and upload it to the system (via Amazon S3). The filled-in in sheet is then parsed, and Milestones are extracted and automatically added to the system.

Furthermore, dynamic datasets can be added to the dashboard via Google Sheets - user can create a graph in Google Sheets and import the iframe using the tool's CMS.

  • There needs to be a clear an modular definition of roles within the system. The data displayed on the dashboard may be meant for the eyes of a President or a Prime Minister - any user shouldn't be able to edit it, or at least not without the edit being appproved

As a result, using the Django Administrator Panel, admin users can strictly control who has viewing or content management rights for which parts of the tool. A Principal User role was also created, which is allowed to assign actions to other users within the system.

Users who are assigned to a Milestone can suggest edits to it (e.g. a change in status from delayed to completed or an update post), but that update will only be taken effect once it has been approved by a content manager.

  • Given that I am the only developer working on this project, setting up new instances of the tool should be quick and easy. Similarly, I should be able to post updates to all instances of the tool in one go.

I solved this by using Heroku's Pipeline feature, along with CI from GitHub. When launching a new feature, I can push it to all 20 instances of the Delivery Tool with the click of a button!

The Action Tracker also has an accompanying smartphone app, which I built for iOS and Android using Ionic React.

The source code for this project cannot be shared, but please view the screencast at the top of the post!