Skip to content

A .NET 8 Web API for tracking learning progress across platforms with SM-2 spaced repetition and analytics. Features JWT authentication, study session tracking, and detailed progress insights.

Notifications You must be signed in to change notification settings

saikat455/micro_learning_progress_api

Repository files navigation

Micro-Learning Progress API

A .NET 8 Web API for tracking learning progress with spaced repetition and analytics.


Features

  • 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

Prerequisites


Setup

1. Clone Repository

git clone <repository-url>
cd MicroLearningAPI

2. Install Dependencies

dotnet restore

3. Configure Database

  • Create PostgreSQL database:
CREATE DATABASE microlearning_dev;
  • Copy appsettings.example.json to appsettings.json and 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"
  }
}

4. Apply Migrations

dotnet ef migrations add InitialCreate
dotnet ef database update

Running the Project

dotnet build
dotnet run

Access Swagger UI at:
https://localhost:<port>/swagger


API Endpoints

Auth

  • POST /api/Auth/register
  • POST /api/Auth/login

Analytics

  • GET /api/Analytics

LearningItems

  • GET /api/LearningItems
  • POST /api/LearningItems
  • GET /api/LearningItems/{id}
  • PUT /api/LearningItems/{id}
  • DELETE /api/LearningItems/{id}
  • PUT /api/LearningItems/{id}/complete
  • PUT /api/LearningItems/{id}/incomplete
  • GET /api/LearningItems/category/{category}
  • GET /api/LearningItems/platform/{platform}

SpacedRepetition

  • GET /api/SpacedRepetition/due
  • POST /api/SpacedRepetition
  • POST /api/SpacedRepetition/{id}/review
  • GET /api/SpacedRepetition/learning-item/{learningItemId}

StudySessions

  • GET /api/StudySessions
  • POST /api/StudySessions
  • GET /api/StudySessions/learning-item/{learningItemId}

All routes except for Auth require Bearer Token authentication.


Technologies

  • .NET 8
  • Entity Framework Core
  • PostgreSQL
  • JWT Authentication
  • Swagger

About

A .NET 8 Web API for tracking learning progress across platforms with SM-2 spaced repetition and analytics. Features JWT authentication, study session tracking, and detailed progress insights.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages