A web application for managing student curriculum, progress tracking, assignments, and grading. Built with FastAPI, SQLAlchemy, and Jinja2.
- Course Management: Create and organize courses with modules and lessons
- Student Enrollment: Register students and manage course enrollments
- Progress Tracking: Track lesson completion with visual progress bars
- Assignments & Grading: Create assignments, submit and view grades
- Role-Based Access: Admin, Instructor, and Student roles with appropriate permissions
- Web UI: Clean, responsive interface using Pico CSS
- Python 3.10+
- uv package manager
- Docker (for PostgreSQL)
# Clone the repo
git clone https://github.com/yourusername/student-curriculum-manager.git
cd student-curriculum-manager
# Copy environment file
cp .env.example .env
# Start PostgreSQL
docker compose up -d
# Install dependencies
uv sync
# Seed the database with sample data
uv run python scripts/seed_data.py
# Start the server
uv run python main.py- Web UI: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
| Role | Password | |
|---|---|---|
| Admin | [email protected] | admin123 |
| Instructor | [email protected] | teach123 |
| Student | [email protected] | student123 |
| Student | [email protected] | student123 |
| Student | [email protected] | student123 |
- Backend: FastAPI, SQLAlchemy 2.0, Pydantic v2
- Database: PostgreSQL
- Auth: JWT (python-jose) + bcrypt (passlib)
- Frontend: Jinja2 templates + Pico CSS
- Package Manager: uv + Hatchling