My project started as my Bachelor’s thesis. Two years later, it’s still one of the projects I’m most proud of — and the one that taught me the most about mobile development.
Here’s an honest look at building a real app with Ionic, Angular, and Firebase.
The Idea connects Romanian farmers directly with consumers. Farmers can list their products, manage orders, and track analytics. Consumers can browse local produce, place orders, and find producers on an interactive map.
Simple idea. Complex execution. The Tech Stack
– Frontend: Ionic 7 + Angular 17
– Backend: Firebase (Firestore, Authentication, Cloud Messaging)
– Maps: Leaflet.js with custom circular photo pins
– Hosting: Firebase Hosting
What Worked Well
Firebase made real-time data sync trivially easy. Firestore’s reactive data model fits perfectly with Angular’s RxJS-based architecture — data flows naturally from the database to the UI without manual refresh logic.
Ionic’s component library saved hundreds of hours of UI work. The ion-card, ion-list, and modal components look native on both iOS and Android with minimal customization.
What Was Harder Than Expected
Cross-platform styling is deceptively tricky. Angular’s ViewEncapsulation means global SCSS changes don’t always reach Ionic components the way you’d expect. I spent more time than I’d like to admit debugging why a CSS rule applied on Android but not iOS.
Firebase’s free tier limits also became a real constraint as the app grew. Firestore read operations add up fast when you have real-time listeners on multiple collections.
Features I’m Most Proud Of
The producer map was genuinely fun to build. Each farmer has a circular photo pin on the map — tap it and you get a preview card with the option to navigate directly to their farm via Google Maps.
The discount and loyalty system uses Firestore’s transaction API to safely apply promo codes and track loyalty history without race conditions.
What’s Next
I’m currently integrating a Dialogflow CX AI agent to help consumers find products through natural language, and adding Firebase Cloud Messaging for push notifications.
The Lesson
Build for real users, even in a thesis project. The moment you treat your project as a real product — with real edge cases, real data, and real UI — you learn things no tutorial can teach you.
Leave a Reply