/Assessment360

Assessment360 aims to revolutionize assignment management by making it simple, efficient, and meaningful for all stakeholders. Our solution is designed to help educational institutions gain a competitive edge.

Primary LanguageHTMLMIT LicenseMIT

Assessment360

Assessment360 aims to revolutionize assignment management by making it simple, efficient, and meaningful for all stakeholders. Our solution is designed to help educational institutions gain a competitive edge.

Deployed live at : Assessment360

Installation

  1. Clone the repository:

    git clone https://github.com/Abhishek-Mallick/Assessment360.git
    cd Assessment360
  2. Set up MongoDB:

    • Make sure MongoDB is installed and running on your machine or you can use my mongo db test url.

    • Create a .env file in the root directory with the following content:

      MONGO_URL=mongodb://localhost:27017/Assessment360

      or

      MONGO_URL = "mongodb+srv://<username>:<password>@<clusterName>.<clusterID>.mongodb.net/?retryWrites=true&w=majority"
      
  3. Set up Enviornment Variables

    • Create a .env file on the base of the directory. On the .env file add the variables:
      MONGO_URL=""
      MAIL_SERVER="" (eg: smtp.gmail.com)
      MAIL_PORT=465
      MAIL_USERNAME=""mallickabhishek.64@gmail.com""
      MAIL_PASSWORD=""
      O_AUTH_CLIENT_ID=""
      

Running the Application

  1. Setting up Virtual Enviornment (venv)
 python -m venv venv
 ./venv/Scripts/activate
  1. Installing dependencies
 pip install -r "requirements.txt"
  1. Creating super_user
 python manage.py createsuperuser"
  1. Running the Application
 python manage.py makemigrations
 python manage.py migrate 
 python manage.py runserver

Default Logins and Passwords

Type UserId Password
Faculty 202 pass@123
Student 402 pass@123

Endpoints

Admin (super_user)

Method Endpoint Description Request Body Response Body
POST /admin/register Register a new Admin JSON: {name,priority} JSON: {token,user,admin_id}
GET /admin/:id Get Admin details NULL JSON: {admin}

Tasks

Method Endpoint Description Query Headers Request Body Response Body
GET /student/assignment Get all Assignemnts of the Student of all courses priority, status, due_date, page, limit Authorization: student_id N/A JSON: {docs,totalDocs,page,limit,totalPages}
POST /student/update-assign Create a new Assignment for Student under a Course N/A Authorization: student_id JSON: {title,description,due_date,pdf_location} JSON: {task,assign_id}
DELETE /api/task/:task_id Soft Delete Assignment for Student N/A Authorization: student_id N/A JSON: {task,assign_id}

Sub Tasks

Method Endpoint Description Query Headers Request Body Response Body
GET /discussion Get all Discussion of the User task_id Authorization: stud_id N/A JSON: {subTasks}
GET /tests Get all tests allocated to the User stud_id Authorization: stud_id N/A JSON: {subTasks}
POST /tests/update Create a new submit for test by Student under Course N/A Authorization: stud_id JSON: {task_id} JSON: {subTask,test_id}
DELETE /tests/:test_id Delete test for student by faculty stud_id Authorization: stud_id N/A JSON: {subTask,test_id}

Webapp Preview

img1

img2

img3

img4

Screenshot 2024-02-04 104010

Screenshot 2024-02-04 104858

Screenshot 2024-02-04 104822

Screenshot 2024-02-04 104143

Screenshot 2024-02-04 104506

Screenshot 2024-02-04 105123

Screenshot 2024-02-04 105454

Screenshot 2024-02-04 110142