Back to projects

Macrocon: Nigerian Macroeconomic Insights App

Android·2024
Macrocon: Nigerian Macroeconomic Insights App

A native Android app that turns Nigeria's macroeconomic data (GDP, inflation, unemployment) into animated charts, a currency calculator, a searchable World Bank database, and a GPT-3.5 AI explainer. My BSc final-year project.

Technologies:

AndroidJavaFirebaseMPAndroidChartOpenAI

Details:

Macrocon was my final-year project at Babcock University: a native Android app that makes Nigeria's economic data approachable for non-economists. Instead of asking users to read raw World Bank spreadsheets, it surfaces the key indicators (GDP, inflation and unemployment) as animated charts, plain-language summaries, and an on-demand AI explainer.

Core features include a swipeable onboarding carousel, Firebase email/password and Google sign-in (with remember-me and auto-login), and a home dashboard of auto-scrolling indicator cards with live line charts and semantic colour coding (green for good, red for bad). Each indicator has a dedicated detail page with a collapsing toolbar and full metadata (definition, methodology, limitations). The app also includes a real-time searchable database of World Bank indicators for Nigeria, a currency-exchange calculator covering 50+ currencies via a live FX API, and a GPT-3.5-powered chatbot that explains why an indicator rose or fell.

Tech stack: written primarily in Java (with Kotlin interop) on classic Activity/Fragment Android, targeting Android 5.0+ for near-universal device coverage. It uses Firebase (Auth, Realtime Database, Storage), Retrofit and OkHttp for networking, MPAndroidChart for visualisation, and Glide for image loading, with polish from Facebook Shimmer skeleton loaders and Lottie micro-animations. A Chaquopy Python runtime was embedded for on-device data processing.

One design decision worth highlighting is the data-sourcing strategy. Rather than calling the World Bank API live, I pre-exported the datasets to static JSON files hosted for free on GitHub Pages and fetched them over HTTPS. This gave zero backend cost, fast loads, and no rate limits. The trade-off is that the data is a frozen 2022 snapshot that has to be refreshed manually. For a student project with no budget, it was a pragmatic, resourceful choice.

The project demonstrates a broad range of Android techniques: asynchronous networking three different ways (Retrofit, OkHttp, and HttpURLConnection), data visualisation with custom cubic-Bézier-smoothed charts, federated authentication with Google OAuth token exchange, session persistence with SharedPreferences, and modern Material UI throughout. The interface uses bottom navigation, ViewPager2 carousels, collapsing toolbars, bottom sheets and pull-to-refresh, all wrapped in considered UX details.

As my first major Android project, it also taught me a lot about engineering maturity. Given the chance to rebuild it today, I would move networking and parsing out of the Activities into an MVVM architecture with a Repository and ViewModels, replace the deprecated AsyncTask with Kotlin coroutines, parse the source JSON by series code into typed models instead of brittle array indices, and route all third-party API calls through a small backend proxy rather than the client. Those refactors are exactly the lessons the project surfaced.