# CBC Student Exam Management System
A comprehensive web application for managing CBC (Competency-Based Curriculum) student records, exams, and academic performance, built with a Django backend and a React frontend.
## Features
### 🎓 Student Management
- Complete student registration with photo upload
- Auto-generated admission numbers (YYYY-NNNN format)
- Personal, academic, and guardian information tracking
- Flexible search by name, admission number, or guardian
- Student photo management
- Transfer and promotion history tracking
### 👨🏫 Teacher Management
- Teacher registration with TSC number validation
- Contact information and employment history
- Subject and class assignments
- Years of service tracking
### 📚 Academic Management
- Class and stream organization
- Subject management with grade level specifications
- Exam creation and management
- Score entry and grade calculation
- Student performance tracking
### 📊 Transfer & Promotion System
- Individual student transfers between classes/streams
- Batch promotion functionality
- Complete history tracking
- AJAX-powered dynamic stream loading
### 💯 Grading System
- Exam score entry and management
- Automatic grade calculation (A-E scale)
- Student report generation
- Performance analytics
## Technology Stack
- **Backend**: Django 5.2+, Python 3.13+, Django REST Framework
- **Frontend**: React, TypeScript, Vite, Tailwind CSS, shadcn/ui
- **Database**: PostgreSQL
- **Authentication**: Django Allauth + DJ-REST-Auth + SimpleJWT
- **Import/Export**: django-import-export
- **Image Processing**: Pillow
## Installation & Setup
### Prerequisites
- Python 3.13+
- PostgreSQL
- Node.js & npm
### Local Development Setup
1. **Clone the repository**
```bash
git clone
cd skooltrack_pro
```
2. **Setup Backend**
- Create and activate a virtual environment:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
- Install Python dependencies:
```bash
pip install -r re …