IF A USER IS HAVING A PROBLEM, IT’S OUR PROBLEM
The quote above is a large image hanging in our main office. And it was with that same thought that we went into building the National Teachers’ Institute portal.
The National Teachers’ Institute, Kaduna is a single mode distance education institution dedicated to teacher training. It was established in 1976 by the Federal Government primarily because of the pressing needs in the country for trained and qualified teaching staff at all levels of the educational system.
Due to the structure of the institute and the advancements we see in the technological field, building a platform that can be accessed from any distance was the best logical step to take. And after previous attempts at it, the Institute decided to partner up with Omniswift technologies to achieve this goal to develop a modern digital platform that can provide an accessible and seamless learning experience. Based on the analysis made by us, we decided a full platform rebuild would be necessary.
- User Research
- Software Application Architecture
- Quality Assurance
- Call Center and Support
- Analytics and Optimization
CONTEXT AND CHALLENGES
The main focus of the project was to develop an application that can handle the whole student process, that is, from their initial application process to when they have been accepted as students, to the completion of their selected programme and even post-graduation services.
Due to that large number of applications and students that existed on their previous platform and the inefficiencies that they faced, the need to re-architect a new solution was more pressing than ever.
So our goal was to develop a solution that could efficiently handle the whole NTI experience with reduced technical issues and a system that would scale to the large number of users that will be present on the application.
PROCESS AND INSIGHT
Our initial decision (due to time constraint) was to deploy and manage an existing solution called Fedena, which is a ready-made application with some of the features that we needed, we quickly realized that the application could not fit our use-case.
We then went on build the initial version of the portal. Since we always build our solutions with scaling in mind, we decided to start with building a somewhat distributed system that would handle the “NTI” scale. We used a plethora of technologies such as:
- AngularJS — to handle all user-facing interactions
- Firebase — to handle real-time notification and distributed storage
- ArangoDB — a multi-model database that can handle a large scale of related entities
- SailsJS — to handle server-side business logic
- Redis — to handle optimizations through efficient caching
This version was handled by a subset of our team and building commenced on February 2017. We quickly noticed some issues like duplicate user accounts, duplicate transaction IDs and some other smaller issues, this was mostly due to some unforeseen architectural changes in some of the internal services.
We kicked the version 2 of the system on May 2017, after learning from our mistakes in version 1 we decided a complete rebuild of the system was necessary and this time we started with the UI design in focus, this was lead by our design Lead and the platform that was used for delivery, collaboration and communication was Figma.
This time we worked with the complete engineering team on building this new version (this might seem like overkill but as mentioned above, we learned from our mistakes). As for architecture decisions, we decided to go with a more centralized and controlled system with the ability to extend and upgrade when the need arises. Tools we decided to go with were:
- Vue & Jquery — to handle all the user-facing interactions
- Laravel — to handle all server-side business logic
- MySQL — to handle all data storage related issues
For support, our team uses a large number of channels to make sure users are always and quickly attended to. These channels are Whatsapp, Tidio (chat on the portal), Facebook, Twitter, SMS, Email and a dedicated Call Center. These channels make the escalation of issues to the engineering team as quick as possible. They also make use of SuitCRM which helps in generating detailed monthly, quarterly and annual reports.
As of the writing of this article, the system has been running seamlessly running with little to no issues. The platform is currently handling over 200,000 users including students and applicants.