A comprehensive platform for managing trainees, courses, and assessments while facilitating effective communication and collaboration among trainees, mentors, and administrators.
- User Management (Trainees, Mentors, Administrators)
- Course Management and Progress Tracking
- Assessment and Evaluation System
- Real-time Communication via WebSockets
- Role-based Access Control
- Soft Delete Support
- Background Task Processing
- Python (v3.12.x)
- Django & Django REST Framework
- JWT Authentication
- Django Channels (WebSocket Support)
- Django Softdelete
- PostgreSQL (Database)
- Redis (Cache & Message Broker)
- Docker & Docker Compose
- Python 3.12 or higher
- PostgreSQL
- Redis (for WebSocket and background tasks)
- Docker and Docker Compose (optional)
-
Clone the repository
git clone <repository-url> cd <project-directory>
-
Create and activate virtual environment
python3 -m venv venv source venv/bin/activate # Linux/macOS # or .\venv\Scripts\activate # Windows
-
Install dependencies
pip install -r requirements.txt
-
Environment Setup
cp .env.example .env # Update .env with your configuration
-
Database Setup
python manage.py migrate python manage.py setup_permissions python manage.py setup_roles
-
Run Development Server
Standard Django Server:
python manage.py runserver
With WebSocket Support:
daphne -b 0.0.0.0 -p 8000 core.asgi:application
-
Build the Image
docker build -t core-app .
-
Run the Container
docker run -d -p 8000:8000 --name core-app-container core-app
-
Start Services
docker-compose up --build
-
Run Migrations
docker-compose exec web python manage.py migrate docker-compose exec web python manage.py setup_permissions docker-compose exec web python manage.py setup_roles
Comprehensive API documentation is available on Postman: API Documentation
Writing the test case in under beta
# Run all tests
pytest
# Run specific test file
pytest tests/test_file.py
# Run with coverage report
pytest --cov=.
-
Database Connection Issues
- Verify PostgreSQL is running
- Check database credentials in .env
- Ensure database exists
-
WebSocket Connection Issues
- Verify Redis is running
- Check Redis connection settings
- Ensure proper ASGI setup
This project is licensed under the MIT License - see the LICENSE.rst file for details.