{"repo":"thehimel/learning-platform-api","free":true,"listed":false,"github":"https://github.com/thehimel/learning-platform-api","clone":"git clone https://github.com/thehimel/learning-platform-api.git","description":"Learning platform API with FastAPI, PostgreSQL, and JWT auth. Courses, enrollments, ratings, and role-based access (student, instructor, admin).","language":"Python","stars":37,"topics":["asyncio","fastapi","jwt","learning-platform","postgresql","python","rest-api","sqlalchemy"],"license":null,"category":"api-integrations-sdks","readme_excerpt":"Learning Platform API A learning platform API built with FastAPI. Supports courses, enrollments, ratings, and role-based access (student, instructor, admin). Tech Stack - Framework: FastAPI - Database: PostgreSQL (async via asyncpg) - ORM: SQLAlchemy 2.0 (async) - Auth: fastapi-users (JWT) - Rate limiting: slowapi Features - Auth — Register, login (JWT), password update - Users — GET/PATCH /me ; admin CRUD for users - Courses — CRUD, list with pagination and filters ( published , q for title search) - Enrollments — Enroll/unenroll in courses - Ratings — Rate courses (1–5); aggregate recomputed asynchronously - Visibility — Unauthenticated: published only; instructor: published + own unpublished; admin: all Prerequisites - Python 3.14+ - PostgreSQL - Docker (optional, for running PostgreSQL) Quick Start 1. Clone and install 2. Configure environment Copy .env.example to .env and set required variables: Required: POSTGRES USER , POSTGRES PASSWORD , POSTGRES DB , JWT SECRET KEY , AUTH RESET PASSWORD TOKEN SECRET , AUTH VERIFICATION TOKEN SECRET . Generate secrets with openssl rand -hex 32 . 3. Start PostgreSQL 4. Run migrations 5. Start the API API: http://localhost:8000 Docs: http://localhost:8000/docs Commands Command Purpose --------- --------- uv sync Install dependencies (from pyproject.toml) uv run uvicorn app.main:app --reload Run API (dev) alembic upgrade head Apply migrations alembic revision --autogenerate -m \"message\" Create migration pytest Run tests pytest -n auto Ru","default_branch":null,"files":null,"tree":[],"storefront":"/r/thehimel","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/thehimel/learning-platform-api/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}