Skip to content

Latest commit

ย 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Submitly

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.


โœจ Features

๐Ÿ‘จโ€๐ŸŽ“ Student

  • 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

  • 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

๐Ÿ” Authentication & Authorization

  • 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

๐Ÿ“Ž File Management

Students can submit:

  • PDF
  • DOC
  • DOCX
  • PPT
  • PPTX
  • TXT

Faculty can attach reference materials using the same supported formats.

File uploads are limited to 10 MB.

๐ŸŽจ UI/UX

  • 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

๐Ÿ”„ Assignment Workflow

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

๐Ÿ› ๏ธ Tech Stack

Backend

  • Python
  • Django 5.2
  • Django ORM
  • Gunicorn

Frontend

  • Django Templates
  • HTML5
  • CSS3
  • JavaScript

Database

  • PostgreSQL
  • SQLite for local development when PostgreSQL is not configured

Deployment & Infrastructure

  • Render
  • Supabase PostgreSQL
  • WhiteNoise
  • Git & GitHub

๐Ÿ—๏ธ Project Structure

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

๐Ÿš€ Getting Started

1. Clone the repository

git clone https://github.com/Mdsahil01/submitly.git
cd submitly

2. Create a virtual environment

Windows

python -m venv .venv
.venv\Scripts\activate

macOS / Linux

python3 -m venv .venv
source .venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Configure environment variables

Create a .env file in the project root if required by your environment.

Example:

SECRET_KEY=your-secret-key
DEBUG=True
DATABASE_URL=your-database-url

For local development without PostgreSQL, Submitly can use SQLite through the Django database configuration.

5. Apply migrations

python manage.py migrate

6. Create an administrator

python manage.py createsuperuser

Follow Django's prompts to create the administrator account.

7. Start the development server

python manage.py runserver

Open:

http://127.0.0.1:8000/

๐Ÿ‘ค User Roles

Submitly currently supports two application roles.

Student

Students can:

Register
   โ†“
Login
   โ†“
Browse Courses
   โ†“
Request Enrollment
   โ†“
Wait for Faculty Approval
   โ†“
Access Course
   โ†“
View Assignment
   โ†“
Submit Work
   โ†“
Receive Marks & Feedback

Faculty

Faculty can:

Login
   โ†“
Create Course
   โ†“
Approve Students
   โ†“
Create Assignment
   โ†“
Publish Assignment
   โ†“
Receive Submissions
   โ†“
Review Work
   โ†“
Assign Marks & Feedback

๐Ÿงช Testing

Submitly includes automated tests covering authentication, authorization, courses, enrollments, assignments, submissions, evaluation, and student results.

Run the complete test suite:

python manage.py test

Current status:

Ran 90 tests

OK

90/90 tests passing.


๐Ÿ”’ Security & Access Control

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.


๐Ÿ“ Supported Uploads

Assignment Reference Files

Faculty can attach:

.pdf
.doc
.docx
.ppt
.pptx
.txt

Student Submissions

Students can upload:

.pdf
.doc
.docx
.ppt
.pptx
.txt

Maximum file size:

10 MB

๐Ÿ—„๏ธ Database

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.


โ˜๏ธ Deployment

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 migrate

The application starts with:

gunicorn config.wsgi:application

๐Ÿงญ Current Application Flow

Student

Login / Register
       โ†“
Student Dashboard
       โ†“
Courses
       โ†“
Enrollment Request
       โ†“
Approved Course
       โ†“
Assignments
       โ†“
Assignment Details
       โ†“
Submit Assignment
       โ†“
Submission Status
       โ†“
Result & Feedback

Faculty

Login
  โ†“
Faculty Dashboard
  โ†“
Courses
  โ†“
Enrollment Requests
  โ†“
Approve / Reject
  โ†“
Create Assignment
  โ†“
Publish
  โ†“
View Submissions
  โ†“
Review Submission
  โ†“
Marks & Feedback

๐Ÿ“Œ Project Status

Submitly has completed its planned core MVP workflow.

Completed

  • 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

Test Status

90 / 90 tests passing

๐ŸŽฏ Project Goals

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

๐Ÿ”ฎ Future Improvements

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.


๐Ÿ‘จโ€๐Ÿ’ป Author

Mohammed Sahil

B.Tech Computer Science Engineering โ€” AI & ML

GitHub: @Mdsahil01


๐Ÿ“„ License

This project is currently developed as an academic/project application.

About

Assignment submission and evaluation platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages