SmartLearn is a modern, interactive learning platform built with Django, offering structured exams, real-time question solving, and intelligent session tracking. It's designed to help users practice, track progress, and learn through smart feedback.
🚀 Built using Django + Tailwind CSS + CKEditor + PostgreSQL
On every push and pull request, the CI pipeline automatically runs:
| Step | Tool | Purpose |
|---|---|---|
| Format check | Black | Enforces consistent code style |
| Linting | Ruff | Catches common bugs, unused imports, naming issues |
| Type check | mypy | Validates type hints for runtime safety |
| Tests | pytest | Runs the test suite (model tests, fixture-based) |
| Docker build | Docker | Verifies the image builds without errors |
The CI workflow is defined in .github/workflows/ci.yml.
- 📚 Categorized exams with subjects & questions
- ✅ Multiple choice questions with explanations
- 🧠 Sessions to simulate real test experiences
- 📊 Track correct/incorrect/skipped answers
- 🔁 Reuse question banks across exams and subjects
- ✏️ Admin-friendly with CKEditor5 integration
- 🧩 Modular structure for scalability
- Backend: Django, Django ORM, PostgreSQL
- Frontend: Django Templates + Tailwind CSS
- Rich Text: django-ckeditor-5
- Authentication: Django built-in User model
- Media: Questions with optional images and explanations
Category→ Organizes subjects/exams hierarchicallyExam→ A test composed of questions in a categorySubject→ Ties questions to topicsQuestion→ Multiple choice questions with optional figure/explanationChoice→ Choices related to each question (one is correct)Session→ Simulates a user exam attempt with trackingAnswer→ User responses with correctness trackingSource→ Tracks question origins or referencesIssue→ Users can report issues with questionsTestCategory/TestRow→ For representing lab test-style reference tables (optional)
- User starts a session for a selected exam
- Questions are loaded and shuffled
- User answers each question
- After each answer, counts are updated:
- ✅ Correct
- ❌ Incorrect
- ⏭ Skipped
- Session is marked complete when all questions are answered
git clone https://github.com/mookamal/smartlearn.git
cd smartlearn
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver