Problem
Traditional digital learning platforms often provide the same learning path to every student. A learner who already understands a concept may be forced through material they don't need, while another learner struggling with a fundamental concept may continue to more advanced material without receiving enough support.
For learners in Uganda, this challenge is compounded by mobile-first usage, inconsistent connectivity, limited data availability, and significant differences in students' existing knowledge.
LearnHub was designed around a simple question:
What if a learning platform could continuously understand what a student knows, identify where they are struggling, and adapt what they teach next?
The goal was to build a learning experience that is personalized, mobile-first, and capable of continuing to work even when connectivity is limited.
Solution
LearnHub uses an adaptive learning engine to continuously evaluate learner performance. The system builds a continuously changing picture of the learner's knowledge.
Features
- Authentication
- Email/password
- Google authentication
- Profile
- Learning goals
- Skill level
- Courses
- Course catalogue
- Categories
- Search
- Course details
- Lessons
- Video/text content
- Interactive exercises
- Assessments
- Multiple choice
- Coding questions
- Short answers
- Timed assessments
- Practice exercises
- Progress Course Progress 72% Completed lessons 18/25 Exercises 74 Assessments 8 Current streak 12 days
- Personalized learning
- Recommended lessons
- Recommended exercises
- Difficulty adjustment
- Weak-topic detection
- Revision recommendations
- Learning path generation
Engineering decisions
Why React Native + Expo + TypeScript?
LearnHub is mobile-first and needs to support Android devices while maintaining a development workflow that allows rapid iteration. React Native provides cross-platform development while TypeScript provides stronger type safety across the application.
NestJS + TypeScript?
The backend contains several distinct domains—users, courses, assessments, progress, recommendations, and synchronization. NestJS provides a structured architecture that makes these domains easier to isolate and test.
Discussion0 comments
No comments yet. Start the discussion.