The backend for the Assignment Review System (ARS) is built using Django and Django REST Framework (DRF). It provides a robust API for managing users, assignments, and reviews. Daphne is used to handle WebSockets for real-time updates, and PostgreSQL serves as the database.
- Authentication & Authorization:
- Traditional username-password authentication
- Channel I OAuth and Google OAuth
- Role-based access control (Admin, Reviewer, Reviewee)
- Assignment Management:
- Create, edit, and allocate assignments.
- Add sub-tasks and attach files (PDFs, DOCXs, images, links, etc.).
- Multi-iteration review process with comments.
- Review & Feedback:
- Multiple reviewers can assess assignments.
- Real-time notifications via WebSockets.
- Team Submissions:
- Enables group submissions for assignments.
- User Profiles:
- Reviewers can view their review history and pending reviews.
- Reviewees can track submission status and progress.
- Real-Time Updates:
- Uses Daphne and Django Channels for WebSockets.
- Live notifications and chat system.
- Gamification & Reminders:
- Gamify the platform to encourage timely submissions.
- Automated assignment reminders.
- Django + Django REST Framework (DRF): Backend framework for APIs.
- PostgreSQL: Database for storing structured data.
- Daphne + Django Channels: WebSockets for real-time communication.
- Celery + Redis: Handles background tasks like notifications.
Ensure you have the following installed:
- Python (latest version)
- PostgreSQL
- Redis (for background tasks)
- Virtualenv (optional but recommended)
- Clone the repository:
git clone https://github.com/yourusername/ars-backend.git cd ars-backend - Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Configure
.envfile for database and secrets:DATABASE_URL=postgres://youruser:yourpassword@localhost:5432/yourdb SECRET_KEY=your-secret-key REDIS_URL=redis://localhost:6379
- Apply migrations:
python manage.py migrate
- Run the development server:
python manage.py runserver
- Start Daphne for WebSockets:
daphne -b 0.0.0.0 -p 8001 ars.asgi:application
Contributions are welcome! Feel free to fork the repository and submit pull requests.
This project is licensed under the MIT License.
For any inquiries or contributions, reach out at [[email protected]].