KasaHub is a backend API built with ASP.NET Core (C#) for a multilingual learning app that helps children learn local Ghanaian languages (Twi, Ga, Ewe, Dagbani).
# KasaHubBackend
Clone the repository:
git clone
github.com
Open the project in Visual Studio or VS Code.
Configure your database connection in appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=YOUR_SERVER;Database=KasaHubDb;Trusted_Connection=True;"
}
}
Apply migrations to create the database:
dotnet ef database update
Run the project:
dotnet run
Test the API endpoints using Postman, Thunder Client, or your frontend app.
📂 API Endpoints Overview
User Management
POST /api/users — Create user profile
GET /api/progress/summary/{userName} — Get user progress
Lesson Management
GET /api/lessons — Get all lessons
GET /api/lessons/by-language/{languageCode} — Get lessons by language
POST /api/lessons — Add new lesson
PUT /api/lessons/{id} — Update lesson
DELETE /api/lessons/{id} — Delete lesson
Media Upload
POST /api/media/upload/audio — Upload lesson audio
Progress Tracking
POST /api/progress/complete-lesson — Mark lesson as completed & record quiz score
GET /api/progress/summary/{userName} — User progress summary
Admin (Analytics)
GET /api/admin/user-stats — User progress overview
GET /api/admin/badge-stats — Badge statistics
GET /api/admin/lesson-stats — Lesson completion stats
🗂 Project Structure
KasaHubBackend/
├── Controllers/ # API endpoints
├── Models/ # Data models (Lesson, UserProgress, Language, Badge)
├── Data/ # Database context & migrations
├── wwwroot/uploads/ # Media files (audio, images, videos)
├── Program.cs # Entry point
└── appsettings.json # Configuration
🔮 Future Plans
Role-based authentication (Admin vs Learner)
Admin dashboard to view detailed analytics
Cloud media storage (S3) for scalable file handling
Multi-language quiz hints & interactive learning features
⚡ Technologies Used
ASP.NET Core 7
Entity Framework Core
SQL Server / LocalDB
C#