A web-based assignment submission and evaluation platform built with Django.
Submitly is a role-based academic platform designed to simplify the complete assignment lifecycle between faculty and students.
Faculty can create courses, publish assignments, attach reference materials, review submissions, assign marks, and provide feedback. Students can enroll in courses, view assignments, submit their work, and track evaluation results from a single dashboard.
- Student account registration
- Role-based authentication
- Student dashboard
- Browse available courses
- Request course enrollment
- View approved courses
- View published assignments
- View assignment instructions and due dates
- Download assignment reference materials
- Submit assignments
- Upload supported document formats
- Track submission status
- View marks and faculty feedback
- View personal profile
- Faculty authentication
- Faculty dashboard
- Create and manage courses
- Review student enrollment requests
- Approve or reject enrollment requests
- Create assignments
- Set assignment descriptions and due dates
- Set maximum marks
- Publish assignments
- Attach reference materials
- View student submissions
- Review submitted work
- Assign marks
- Provide feedback
- Track assignment submissions
- View faculty profile
- Custom Django user model
- Email-based authentication
- Student and Faculty roles
- Role-based dashboard redirection
- Role-based access control
- Protected faculty/student routes
- Secure logout
- Student registration
- Profile page
Students can submit:
- DOC
- DOCX
- PPT
- PPTX
- TXT
Faculty can attach reference materials using the same supported formats.
File uploads are limited to 10 MB.
- Submitly branding
- Consistent navigation
- Student and faculty-specific dashboards
- Responsive layout
- Modern card-based interface
- Consistent action buttons
- Assignment and submission status indicators
- Profile navigation
- Clean authentication pages
- Presentation-ready interface
Submitly follows a simple academic workflow:
Faculty
โ
โโโ Create Course
โ
โโโ Review Enrollment Requests
โ โโโ Approve
โ โโโ Reject
โ
โโโ Create Assignment
โ
โโโ Attach Reference Material
โ
โโโ Publish Assignment
โ
โผ
Student
โ
โโโ View Assignment
โ
โโโ Read Instructions
โ
โโโ Download Reference
โ
โโโ Submit Work
โ
โผ
Faculty
โ
โโโ Review Submission
โโโ Assign Marks
โโโ Provide Feedback
โ
โผ
Student
โ
โโโ View Result & Feedback
- Python
- Django 5.2
- Django ORM
- Gunicorn
- Django Templates
- HTML5
- CSS3
- JavaScript
- PostgreSQL
- SQLite for local development when PostgreSQL is not configured
- Render
- Supabase PostgreSQL
- WhiteNoise
- Git & GitHub
submitly/
โ
โโโ assignments/
โ โโโ migrations/
โ โโโ templates/
โ โโโ forms.py
โ โโโ models.py
โ โโโ urls.py
โ โโโ views.py
โ โโโ tests.py
โ
โโโ courses/
โ โโโ migrations/
โ โโโ templates/
โ โโโ forms.py
โ โโโ models.py
โ โโโ urls.py
โ โโโ views.py
โ โโโ tests.py
โ
โโโ submissions/
โ โโโ migrations/
โ โโโ templates/
โ โโโ forms.py
โ โโโ models.py
โ โโโ urls.py
โ โโโ views.py
โ โโโ tests/
โ
โโโ users/
โ โโโ migrations/
โ โโโ templates/
โ โโโ forms.py
โ โโโ models.py
โ โโโ urls.py
โ โโโ views.py
โ โโโ tests.py
โ
โโโ config/
โ โโโ settings.py
โ โโโ urls.py
โ โโโ wsgi.py
โ โโโ asgi.py
โ
โโโ static/
โ โโโ images/
โ โโโ submitly-logo.png
โ
โโโ templates/
โ โโโ base.html
โ
โโโ media/
โ
โโโ manage.py
โโโ requirements.txt
โโโ build.sh
โโโ PRD.md
โโโ AGENTS.md
โโโ README.md
โโโ .gitignore
git clone https://github.com/Mdsahil01/submitly.git
cd submitlypython -m venv .venv
.venv\Scripts\activatepython3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtCreate a .env file in the project root if required by your environment.
Example:
SECRET_KEY=your-secret-key
DEBUG=True
DATABASE_URL=your-database-urlFor local development without PostgreSQL, Submitly can use SQLite through the Django database configuration.
python manage.py migratepython manage.py createsuperuserFollow Django's prompts to create the administrator account.
python manage.py runserverOpen:
http://127.0.0.1:8000/
Submitly currently supports two application roles.
Students can:
Register
โ
Login
โ
Browse Courses
โ
Request Enrollment
โ
Wait for Faculty Approval
โ
Access Course
โ
View Assignment
โ
Submit Work
โ
Receive Marks & Feedback
Faculty can:
Login
โ
Create Course
โ
Approve Students
โ
Create Assignment
โ
Publish Assignment
โ
Receive Submissions
โ
Review Work
โ
Assign Marks & Feedback
Submitly includes automated tests covering authentication, authorization, courses, enrollments, assignments, submissions, evaluation, and student results.
Run the complete test suite:
python manage.py testCurrent status:
Ran 90 tests
OK
90/90 tests passing.
Submitly uses Django's authentication and authorization mechanisms to protect application functionality.
Examples include:
- Authentication-required dashboards
- Student-only functionality
- Faculty-only functionality
- Faculty ownership validation
- Course enrollment validation
- Assignment publication checks
- Submission ownership checks
- Protected evaluation pages
- File type validation
- File size validation
- CSRF protection through Django forms
Students cannot access faculty-only evaluation functionality, and faculty cannot access student-only dashboard functionality.
Faculty can attach:
.pdf
.doc
.docx
.ppt
.pptx
.txt
Students can upload:
.pdf
.doc
.docx
.ppt
.pptx
.txt
Maximum file size:
10 MB
Submitly uses Django's ORM and supports PostgreSQL for deployed environments.
The deployed architecture uses:
Submitly
โ
โโโ Django Application
โ
โโโ Gunicorn
โ
โโโ PostgreSQL
โ
โโโ Supabase
SQLite can be used for local development when a PostgreSQL database is not configured.
The application is configured for deployment using:
- Render for application hosting
- Supabase PostgreSQL for the production database
- Gunicorn as the application server
- WhiteNoise for static file serving
The deployment build process runs:
pip install -r requirements.txt
python manage.py collectstatic --no-input
python manage.py migrateThe application starts with:
gunicorn config.wsgi:applicationLogin / Register
โ
Student Dashboard
โ
Courses
โ
Enrollment Request
โ
Approved Course
โ
Assignments
โ
Assignment Details
โ
Submit Assignment
โ
Submission Status
โ
Result & Feedback
Login
โ
Faculty Dashboard
โ
Courses
โ
Enrollment Requests
โ
Approve / Reject
โ
Create Assignment
โ
Publish
โ
View Submissions
โ
Review Submission
โ
Marks & Feedback
Submitly has completed its planned core MVP workflow.
- Authentication
- Student registration
- Role-based access control
- Student dashboard
- Faculty dashboard
- Course management
- Student enrollment requests
- Faculty enrollment approval/rejection
- Assignment creation
- Assignment publishing
- Assignment reference attachments
- Student submissions
- File validation
- Faculty submission review
- Marks and feedback
- Student results
- Profile page
- Navigation and UI/UX polish
- Submitly branding
- Automated testing
90 / 90 tests passing
Submitly was built to demonstrate a complete Django web application rather than a collection of isolated features.
The project focuses on:
- Backend architecture with Django
- Database modeling and relationships
- Authentication and authorization
- Role-based application design
- CRUD operations
- File handling
- Form validation
- Automated testing
- PostgreSQL integration
- Production deployment
- UI/UX design
- Git and GitHub workflow
Potential future improvements include:
- Email notifications
- Password reset through email
- Assignment resubmission and version history
- Rich text assignment descriptions
- Advanced faculty analytics
- Submission filtering and sorting
- Cloud object storage for uploaded files
- More advanced profile management
- Improved mobile navigation
- Additional academic roles and workflows
These features are outside the current MVP scope.
Mohammed Sahil
B.Tech Computer Science Engineering โ AI & ML
GitHub: @Mdsahil01
This project is currently developed as an academic/project application.