08 / 24Next →
Native Android learning platform2024

Learning Hub

A native Android app in Kotlin and Jetpack Compose for discovering courses and campuses, enrolling and paying, with an admin workspace for users, courses and branches.

ContextNIBM
Year2024
TypeMobile
StatusCompleted
RoleAndroid application development

Project media coming soon

Screenshots and demo videos for this case study will appear here.

Overview

Learning Hub connects learners with courses across categories and campus locations. Users register, verify their email, explore course details, find campuses on Google Maps, enrol through a payment step and manage their profile. Administrators maintain users, courses and branches from their own dashboard.

KotlinJetpack ComposeAndroidFirebaseGoogle MapsMaterial 3
Challenge

The data model had to represent courses offered at several campuses and turn that relationship into a simple mobile flow covering discovery, enrolment and payment, with separate learner and admin experiences.

Approach

I built the app in Kotlin with Jetpack Compose and Material 3. Navigation Compose handles screen flow, Firebase Authentication handles accounts, Cloud Firestore stores the data, and Maps Compose shows campus locations. A shared ViewModel carries the selected course and user through the multi-screen enrolment flow.

Outcome

The completed app demonstrates end-to-end native Android development with cloud-backed data and role-specific interfaces, across 78 commits.

Engineering decisions
01

One ViewModel owns the data layer

Every Firestore read and write for users, courses and branches goes through a shared ViewModel, including campus coordinates stored as GeoPoints for the map. Composables never touch Firestore directly, and the multi-step enrolment flow (course details, personal details, then payment) reads its selection from the same place.

02

Fetch once, filter locally

Fetched collections are cached in small in-memory stores, so switching categories and filtering courses on the home screen happens instantly without another network round trip.

What I built
01Registration, login, email verification and profile management
02Course categories, course details, campus branches and enrolment with a payment step
03Google Maps Compose view of campus locations
04Enrolment acknowledgement email after a successful enrolment
05Admin tools for creating and maintaining users, courses and branches
Next projectStripe Payment Gateway Microservice →