Inspiration

he inspiration for RegApp came from a desire to tackle a real-world challenge faced by countless entrepreneurs in emerging markets, particularly across Africa. Starting a business often involves navigating a complex and fragmented maze of regulatory bodies, paperwork, and requirements that can be daunting, especially for those without easy access to desktop computers or reliable internet. I wanted to build a tool that puts the power of business registration directly into the hands of the user, on the device they use most: their mobile phone. RegApp was designed to be a mobile-first, offline-capable Progressive Web App (PWA) that simplifies this process into a single, streamlined experience.

What it does

RegApp is a one-stop platform that allows users to: Select their country and the specific regulatory body they need to interact with (e.g., CAC in Nigeria, CIPC in South Africa). Fill out complex, multi-step application forms with built-in data persistence. Upload required documents directly from their phone. Work completely offline. All data and document uploads are queued securely using IndexedDB and are automatically submitted by a background Service Worker when the user's connection is restored. Receive real-time status updates on their applications and document validity. can submit text information via USSD

How we built it

I built RegApp as a full-stack application using a lightweight, powerful, and modern stack perfect for an MVP. Backend: The API server was built with Python and the Flask micro-framework. I chose Flask for its simplicity and flexibility, which allowed for rapid development of the API endpoints for user authentication, application submission, and document handling. For the database, I used SQLite, as it requires no separate server and is perfectly integrated with Python, making it ideal for a self-contained and easy-to-deploy application. Frontend: The user interface is a "vanilla" JavaScript application built with HTML5 and CSS3. I intentionally avoided heavy frameworks like React or Angular to keep the application lightweight, fast, and to demonstrate a deep understanding of core web technologies. The frontend was built as a Progressive Web App (PWA) from the ground up. Offline Functionality: The core of the PWA's power lies in its Service Worker. I implemented a robust caching strategy to make the entire application shell available offline. For handling offline form submissions and file uploads, I used the Background Sync API and the IndexedDB API to create a persistent, transactional queue that guarantees no data is ever lost

Challenges we ran into

Building a full-stack PWA from scratch was an incredible learning experience, and the biggest challenges proved to be the most valuable lessons. Mastering Cross-Origin Resource Sharing (CORS): My biggest challenge was the classic Failed to fetch error. Initially, I ran the frontend and backend on two separate servers (localhost:5500 and localhost:5000), which forced me to dive deep into how browsers handle security with CORS. I first solved this by correctly configuring the Flask-Cors library on the backend. However, for a more robust and simpler MVP, I re-architected the application to a single-server model, where Flask serves both the API and the frontend files. This elegant solution completely eliminated CORS issues and simplified the deployment process. The Importance of a Clean Environment: I faced several Could not import 'app' and no such table errors. These challenges taught me the critical importance of a clean project structure (separating code from data), the proper use of Python virtual environments (venv), and the necessity of setting environment variables like FLASK_APP correctly. Debugging these issues solidified my understanding of how a web framework boots up and interacts with its environment. Robust Offline Data Handling: I learned that while localStorage is simple, it is not the right tool for mission-critical data that a Service Worker needs to access. I migrated the offline queueing logic from localStorage to IndexedDB, which is the industry-standard, asynchronous, and transactional database available in the browser, making the offline feature truly reliable. Built with Languages: Python, JavaScript (ES6+), HTML5, CSS3, SQL Backend Framework: Flask Database: SQLite Frontend Technologies: Progressive Web App (PWA) Service Workers Background Sync API IndexedDB API Fetch API Development Environment: Python Virtual Environment (venv), VS Code Key Python Libraries: Flask, Werkzeug

Accomplishments that we're proud of

I struggled a bit given that im still new to software Development but I manged to get my idea out there alone without a team

What we learned

I need to use specific technologies to make sure the app is scalable

What's next for Regipoint

  1. apporaching service provider to ensure the USSD feature works
  2. approach regulatory bodies and try and connect my database with thiers to make the appllications possible
  3. getting into contact with mutiple regulatory bodies and listing them in the app so that I can cover as much counties as possible
  4. Use highly scalable technologies like Django , React.TS and revamping the front end into something professional looking
Share this project:

Updates