A .NET 8 Web API for tracking learning progress with spaced repetition and analytics.
- JWT-based user authentication
- Manage learning items (e.g., videos, articles) across platforms
- Track study sessions with comprehension scores
- Spaced repetition using SM-2 algorithm
- Analytics for progress, streaks, and platform/category breakdowns
- Swagger API documentation
- .NET 8 SDK
- PostgreSQL
- Visual Studio or VS Code
- Postman (for testing)
git clone <repository-url>
cd MicroLearningAPIdotnet restore- Create PostgreSQL database:
CREATE DATABASE microlearning_dev;- Copy
appsettings.example.jsontoappsettings.jsonand update:
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=microlearning_dev;Username=your_username;Password=your_password"
},
"Jwt": {
"Key": "your-super-secret-key-at-least-32-chars",
"Issuer": "MicroLearningAPI",
"Audience": "MicroLearningUsers"
}
}dotnet ef migrations add InitialCreate
dotnet ef database updatedotnet build
dotnet runAccess Swagger UI at:
https://localhost:<port>/swagger
POST /api/Auth/registerPOST /api/Auth/login
GET /api/Analytics
GET /api/LearningItemsPOST /api/LearningItemsGET /api/LearningItems/{id}PUT /api/LearningItems/{id}DELETE /api/LearningItems/{id}PUT /api/LearningItems/{id}/completePUT /api/LearningItems/{id}/incompleteGET /api/LearningItems/category/{category}GET /api/LearningItems/platform/{platform}
GET /api/SpacedRepetition/duePOST /api/SpacedRepetitionPOST /api/SpacedRepetition/{id}/reviewGET /api/SpacedRepetition/learning-item/{learningItemId}
GET /api/StudySessionsPOST /api/StudySessionsGET /api/StudySessions/learning-item/{learningItemId}
All routes except for Auth require Bearer Token authentication.
- .NET 8
- Entity Framework Core
- PostgreSQL
- JWT Authentication
- Swagger