Inspiration
EmpowerLink Nexus was born out of a deep personal connection to the issues faced by marginalized communities, particularly those in remote areas of Kenya, where I come from. Growing up in a village where access to electricity and the internet is a luxury, I’ve witnessed firsthand the challenges faced by communities with limited access to digital services. In these areas, cultural practices like child marriages, female genital mutilation (FGM), and widespread domestic violence still persist.
Despite the efforts of many organizations to offer critical services like legal aid, healthcare, mentorship, and emergency support, the absence of reliable internet or smartphones leaves these services inaccessible to those who need them the most. This digital divide creates a massive barrier, preventing vulnerable populations, especially women and girls, from accessing essential resources that could help them escape violence, improve their livelihoods, and realize their full potential. Seeing the significant disconnect between the services available online and the people who need them most, I was inspired me to create EmpowerLink Nexus, a platform that bridges this digital gap using USSD and IVR, ensuring that even the most isolated individuals can access vital resources and support.
What it does
EmpowerLink Nexus aims to address digital inequality head-on by providing a platform that bridges the gap between essential services and the people who need them. It is designed to connect digitally isolated communities to essential services using basic mobile phones. Through USSD (Unstructured Supplementary Service Data) and IVR (Interactive Voice Response), users can access services such as healthcare, legal aid, emergency support for survivors of domestic violence, child marriage prevention, and much more. The platform is powered by AI-driven resource matching to connect individuals with the right service providers based on their needs and profiles. Additionally, EmpowerLink Nexus features a live analytics dashboard for NGOs, policymakers, and service providers. The dashboard offers real-time insights, including an inclusivity index that tracks how accessible services are to underserved communities, ensuring that resources are effectively distributed to the most vulnerable.
How we built it
Building EmpowerLink Nexus was an ambitious task, blending my backend development and DevOps skills with frontend work to create a fully functional and inclusive platform. The architecture follows a microservices model, where each service is responsible for a different aspect of the platform, ensuring flexibility and scalability.
Key components of the build include:
CI/CD Pipelines: I set up continuous integration and deployment pipelines using GitHub Actions. This automation ensured that each change was tested, containerized with Docker, and deployed smoothly to Kubernetes, which orchestrated the deployment of all services.
AI-Driven Resource Matching: One of the most rewarding aspects of this project was integrating an AI-based system for resource matching. Using Scikit-learn, I developed an algorithm to help users connect with the right services based on their profiles and needs.
Geospatial Mapping with PostGIS: To address the geographical needs of underserved communities, I implemented PostGIS to visualize the availability of resources across regions. This geospatial mapping is crucial for NGOs, policymakers, and service providers to identify underserved areas and direct resources effectively.
Real-Time Data Analytics: The platform includes a live dashboard displaying real-time insights from user interactions. The dashboard includes an inclusivity index to track how accessible services are over time and a heatmap that visualizes resource matching on a per capita basis. This allows stakeholders to monitor resource distribution and accessibility in real time.
API Gateway and Kong Ingress: All microservices are proxied via Kong Ingress, which routes requests and provides a scalable API management layer for the entire platform. This architecture ensures a streamlined and secure API communication between services.
Database Management: The platform uses PostgreSQL to manage the primary database and Redis for caching, ensuring high performance and quick data retrieval, particularly for frequently accessed user data.
Test-Driven Development (TDD) & Unit Testing with pytest: A key part of the development process was adhering to Test-Driven Development (TDD), ensuring high-quality, maintainable code. I wrote unit tests using pytest for all core functionalities of the platform, from AI resource matching to geospatial mapping. This rigorous testing process not only helped in ensuring the reliability of the system but also enabled me to catch potential issues early in the development cycle, making the entire process smoother. TDD was an essential part of the workflow, and I am proud to have nailed it, ensuring that the platform meets the highest standards of quality and functionality.
Authentication and Security: Given the sensitive nature of the data, security was a top priority. I implemented authentication for the dashboard, ensuring that only authorized users such as NGOs, policymakers, and service providers can access the real-time analytics. This helps to maintain the integrity and confidentiality of the data while providing a secure and controlled access to crucial insights. The authentication mechanism is built using JWT (JSON Web Tokens) to ensure a secure and scalable user session management system.
Hosting and Deployment: To ensure scalability and reliability, I deployed the microservices on DigitalOcean Kubernetes (DOKS), which allowed me to manage and scale the services efficiently. The frontend is hosted on Vercel, ensuring fast delivery of the web dashboard with real-time data and seamless user experience. The use of Kubernetes for orchestration and Vercel for frontend hosting ensures that the platform can scale to support a growing user base while providing high availability and low latency.
Challenges we ran into
One of the biggest challenges I faced during the development of EmpowerLink Nexus was a service disruption caused by Google Kubernetes Engine (GKE). Six days before the hackathon deadline, my free trial GKE billing account was unexpectedly disabled, and all deployed services were deleted. This created an infrastructure failure, leaving me unable to access microservices, databases, and configurations. To resolve this, I switched from GKE to DigitalOcean, which involved several challenges:
. Infrastructure Migration: Migrating the entire infrastructure, including Kubernetes clusters, microservices, and databases, to DigitalOcean was not a simple task. The transition required updating YAML files, reconfiguring the cloud environment, and ensuring compatibility with the new platform.
CI/CD Pipeline Overhaul: After switching to DigitalOcean, I had to reconfigure the Continuous Integration/Continuous Deployment (CI/CD) pipeline. This involved adjusting deployment scripts and rebuilding the process to ensure that the automation pipeline was compatible with DigitalOcean's infrastructure and Kubernetes environment.
Database and Caching Configuration: Moving from GKE to DigitalOcean also meant reworking the configurations for PostgreSQL and Redis. Ensuring that database connections, replication, and caching mechanisms functioned properly in the new cloud environment was critical to maintaining the integrity of the platform.
Platform Downtime: As a result of the migration, there was a period of downtime during which the services were unavailable. This affected development and testing, delaying progress on the project.
The full postmortem of the recovery process is documented here.
Another big challenge I faced was with the USSD and IVR services. Since I couldn’t access telco services for USSD, I created a mock phone screen and implemented a mock USSD interaction system to simulate real-world interactions.
Accomplishments that we're proud of
I’m proud of several key accomplishments throughout the development of EmpowerLink Nexus:
Building a Fully Functional Microservices Architecture: Successfully implemented a microservices architecture that seamlessly integrates multiple components, including the api-gateway, telephony services, AI-driven resource matching, and geospatial mapping, inclusivity index and the web dashboard. This architecture allows for scalability, flexibility, and easy maintenance.
AI-Driven Resource Matching: Developed an AI-powered resource matching engine using Scikit-learn, which intelligently pairs users with the most appropriate support services. This was a critical component, helping marginalized communities access the right resources, from legal aid to mentorship opportunities.
Geospatial Mapping for Resource Visualization: Integrated PostGIS with PostgreSQL to create a powerful geospatial mapping system that visualizes the distribution of resources in real-time. This feature helps identify underserved areas, guiding NGOs and policymakers to target interventions more effectively.
Real-Time Data Insights for Inclusivity Tracking: Created a live dashboard that tracks the inclusivity of services over time, showcasing a real-time inclusivity index and offering actionable insights for improving access to essential services. The ability to visualize and track this data is crucial for empowering organizations to make informed decisions.
Adherence to Best Coding Practices with TDD and Unit Testing: Embraced test-driven development (TDD) throughout the project, ensuring the codebase was well-tested and reliable. Using pytest for unit testing and validating microservices functionality was key to maintaining stability, particularly when working with critical services like the API Gateway.
End-to-End CI/CD Implementation and Cloud Migration: Set up comprehensive CI/CD pipelines for all microservices, automating testing, containerization, deployment, and scaling. Originally hosted on Google Kubernetes Engine (GKE), I successfully navigated a major infrastructure challenge when my billing account was unexpectedly disabled. I quickly migrated the entire platform to DigitalOcean Kubernetes, reconfigured my CI/CD pipelines, and restored full functionality without data loss or service downtime. This experience not only tested my resilience but also solidified my DevOps and infrastructure management skills.
What we learned
Working on EmpowerLink Nexus taught me invaluable lessons, both technical and non-technical:
Resilience in the Face of Infrastructure Failures: When my GKE services were abruptly terminated due to billing issues, I learned the importance of having contingency plans and infrastructure-as-code practices that made migrating to DigitalOcean Kubernetes smoother and faster than expected.
The Power of CI/CD and Automation: Setting up CI/CD pipelines for multiple microservices reinforced how vital automation is in modern software development. It not only saves time but ensures consistency, reliability, and faster recovery when things go wrong.
Test-Driven Development (TDD) Makes a Difference: Committing to TDD and unit testing using
pytesthelped catch bugs early, improved code quality, and made integrating different services much less stressful. This practice also gave me more confidence when deploying new features.Security Should Never Be an Afterthought: Implementing authentication and securing sensitive endpoints, particularly for the dashboard analytics, was a reminder that even in MVPs or hackathon projects, protecting data and access control is non-negotiable.
Geospatial Data Is Incredibly Insightful: Integrating PostGIS opened my eyes to the value of spatial data in social impact projects. Visualizing resource distribution and identifying underserved regions in real-time is a powerful tool for decision-makers and NGOs.
End-to-End Ownership of a Project Is Tough but Rewarding: Building this entire platform solo, wearing multiple hats as a backend developer, frontend developer, DevOps engineer, and data analyst, pushed me beyond my comfort zone. It taught me to be resourceful, efficient, and patient with the learning curve.
Inclusivity Requires Intentional Design: This project reaffirmed that to serve marginalized, digitally isolated communities, technology must be accessible through channels like USSD and IVR, not just smartphones and the web. Designing for inclusivity isn’t a feature — it’s a foundational principle.
AI Can Be a Game-Changer: One of the unexpected but valuable lessons was discovering just how resourceful AI tools — especially ChatGPT — can be for problem-solving, debugging, architectural advice, and even generating clean, structured documentation like this. It made navigating technical challenges much faster and more manageable.
What's next for EmpowerLink Nexus
Since EmpowerLink Nexus is an open-source project, I’ve already had two people who follow my work on GitHub express interest in becoming contributors after being impressed by the idea and the project’s mission. My vision is to grow this into a collaborative, community-driven initiative where both novice and experienced developers can contribute their skills and expertise, learn, and help scale the impact.
Moving forward, my primary goal is to see EmpowerLink Nexus adopted in real-world scenarios and actively serving the communities it was designed for — bridging the digital divide and providing equitable access to essential services for digitally isolated populations.
I also plan to apply to this year's WorldSkills BeChangeMaker program and seek additional funding opportunities to support the growth, adoption, and sustainability of the project. I believe with the right community, resources, and visibility, EmpowerLink Nexus can become a vital tool in the fight against inequality and digital exclusion.
Built With
- apollo-graphql
- ariadne
- celery
- ci/cd
- docker
- fastapi
- git
- github
- github-jobs
- graphql
- ingress
- javascript
- kong
- kubernetes
- postgis
- postgresql
- pytest
- python
- react
- redis
- scikit-learn
- yaml
Log in or sign up for Devpost to join the conversation.