Last but definitely not least
App number 4:
Venda:
Fintech VTU platform with a secure double-entry ledger system. This app is built for users to seamlessly fund their wallets and purchase airtime, data, and fund betting accounts, ensuring every single Naira is tracked and transactions are lightning-fast.
Why did I build this? I wanted to practice building a resilient, bank-grade backend architecture. I needed to learn how to handle real financial transactions, implement PostgreSQL row-level locking to prevent race conditions, and bridge an optimistic-UX frontend with a pessimistic-state backend.
When you open the app as a first-time user, you first see a secure onboarding screen powered by Clerk for authentication. After that, the next page asks you to set up a secure 4-digit transaction PIN. This PIN is hashed with bcrypt and acts as a strict gateway… you need it to authorize any future debit operations to keep your funds safe.
Next up is the Home Screen. The Home Screen has your real-time wallet balance at the top and quick-action buttons for all the VTU services. I integrated Paystack webhooks to handle the wallet funding.
Once a user deposits money, the backend verifies the webhook via HMAC, updates the database, and passes the new balance to the screen using Zustand for state management, instantly updating the UI.
The purchase pages have sections for Airtime, Data, and Betting. For data and airtime, users can visually pick their network and use smart amount shortcuts (₦100, ₦500, etc.). When a user hits buy, the custom backend intelligently routes the request to the most cost-effective provider (like Africa's Talking or CheapDataHub).
Because it uses a double-entry ledger, the wallet balance is a calculated sum of the transaction table, meaning money can't just "disappear"… every single credit and debit is logged.
I added a beautifully organized History screen where users can track all their past activity. It groups transactions by month and allows users to filter by service type or status. You can even click on a transaction to view a detailed receipt and share it directly using expo-sharing.
Lastly is the profile page, a beautifully designed page with details like Personal Information (name, email, phone number), Change Pin, Sign Out, Help and Support, Privacy Policy, Notifications.
Screenshots below 👇🏽
Day 110-111/365… Over the past few weeks I indulged myself in Mobile App development (iOS and Android), I’ve been building a lot of projects in private to practice and improve my skills further
What pushed me to learn this ?… I’ve lost a lot of jobs in the past due to the fact that I am not a mobile app developer, i decided to take a break completely off the most distracting social media app in my arsenal (WhatsApp) and completely focus on learning app development, it was very very hard but i did it, and I no longer have the urge to even use the app.
So over the past few weeks I’ve been building a total of 4 projects… and I’ll be posting all of them today.