PyNerd is a robust EdTech platform designed for the Angolan and PALOP markets, focusing on providing high-quality technical education. This repository contains the MVP implementation of the backend API.
- User Management: Instructors, Students, and Admins with role-based access control.
- Course Management: Create, publish, and manage structured courses with modules and lessons.
- Learning Experience: Video lessons, documentation, and progress tracking.
- Engagement: Quizzes and certification upon course completion.
- Secure: JWT Authentication and secure password handling.
- Backend: Python, Django, Django REST Framework
- Database: PostgreSQL (Production), SQLite (Dev)
- Documentation: OpenAPI (Swagger/Redoc)
- Containerization: Docker & Docker Compose
- Testing: Pytest
- Docker and Docker Compose installed.
-
Clone the repository:
https://github.com/Emicy963/PyNerd-Academy-Backend cd pynerd-mvp -
Create a
.envfile inPyNerd-Academy-Backend/(see.env.example). -
Build and Run:
docker-compose up --build
-
Access the API:
- API Root: http://localhost:8000/api/
- Swagger UI: http://localhost:8000/api/schema/swagger-ui/
- Navigate to Backend dir:
cd PyNerd-Academy-Backend/ - Install dependencies:
uv pip install -r requirements.txt
- Run Migrations:
python manage.py migrate
- Run Server:
python manage.py runserver
.
├── .github/ # GitHub Actions workflows
├── apps/ # Django Apps
│ ├── accounts/ # User management & Auth
│ └── courses/ # Course content & progress
├── core/ # Project settings
├── docs/ # Documentation
├── docker-compose.yml # Docker services (DB, Web)
├── Dockerfile # Application container setup
├── manage.py # Django entry point
├── pytest.ini # Test configuration
└── requirements.txt # Dependencies
- API Guide - Detailed API usage.
- Changelog - Version history.
- Contributing - Guidelines for contributors.
We welcome contributions! Please check CONTRIBUTING.md for details.
This project is licensed under the MIT License - see the LICENSE file for details.
-
Anderson Cafurica - CEO/CTO - Main Developer
- GitHub: @Emicy963
- Email: andersonpaulo931@gmail.com
- LinkedIn: Anderson Cafurica
-
Sigeu Fortuna - Frontend Lead
- Heliand Fortuna - Design Lead
If you have any questions, suggestions, or want to contribute to the project, please contact us through GitHub or the contacts of the project leader listed above.