/Engage-Client

Primary LanguageJavaScript

Engage-21

Task: Build a functional prototype of a platform that gives students an array of digital academic and social tools to stay engaged with their studies, peers and broader university community during pandemic.

The Engage Classroom

“The Engage Classroom” is a project regarding online submissions. Using this tool, the faculty can distribute assignments, and upon receiving submissions from the students - analyze, and grade assignments.

Offer autograded programming assignments to your students..

  • This helps professors to teach students and test them on their programming skills
  • This helps college students who are preparing for their coding exams.
  • This helps the students to run and compile their codes for various test cases without any IDE setup on their systems.
  • They can access this website and solve their college problems from anywhere in the world on time.
  • This platform can also be used for college programming competitions.
  • As all the submissions will be made online directly on our portal so it will be an environment friendly approach saving a lot of paper work.

Features

  • Authentication and Authorization.
  • [Teacher] Create a new classroom for a new course. Share the classCode to your students.
  • [Teacher] Set up an assignment.
  • [Teacher] Create Coding Problems in assignment.
  • The coding problems have specific test cases, time limit and memory limit ensuring that only efficient solution can pass the test cases.
  • [Teacher] Check the submissions made by students.
  • [Teacher] My profile page with the classes you created.
  • [Student] My profile page with the classes you joined.
  • [Student] Join in classes with the class Code your professor shared.
  • [Teacher & Student] Filter problems based on tags
  • [Teacher & Student] Search problems by name
  • [Student] Run & Submit the code in the language you choose.
  • Results shows Time (Sec) and Memory (MB) using JDoodle Compiler API.
  • Verdicts
    • Time Limit Exceeded (TLE)
    • Memory Limit Exceeded (MLE)
    • Compilation Error (CE)
    • Runtime Error (RTE)
    • Wrong Answer (WA)
    • Accepted (AC)
  • [Student] See your submissions
  • 404 Error Route

Supported Languages

  • C
  • C++ 17
  • Java
  • Python 3

Technical Aspects:

  1. ReactJS
  2. NodeJS
  3. Express
  4. MongoDB Atlas
  5. Microsoft Azure for Deployment
  6. JSDocs Style documentation
  7. JEST framework for Unit Testing
  8. JDoodle Compiler API.
  9. Github Actions for CI/CD Implementation

Client Hosted at: http://engage-submission.centralus.cloudapp.azure.com:3000/

Server Hosted at: http://engage-submission.centralus.cloudapp.azure.com:5000/

How to Setup Locally?

  1. Clone this repository.
  2. Make sure you have @node16.13.0 and @npm8.1.4 on your local system.
  3. SERVER:
  4. cd inside the folder.
  5. npm install to load all the necessary packages.
  6. Create .env file in the root of server Engage-Server with the following keys:
PORT = 5000
JWT_SECRET = <Your_JWT_Token>
ATLAS_URI = <Your_MongoDB_Atlas_Connection String>
ATLAS_URI_TEST = <Your_MongoDB_Atlas_Connection String for Test Database>
  1. npm start to start the server.
  2. npm run test to test.
  3. CLIENT:
  4. cd inside the folder.
  5. npm install to load all the necessary packages.

In Engage-Client/src/config/config.js

Change BACK_SERVER_URL to "http://localhost:< PORT>"

  1. npm start to start.
  2. You will now be able to visit http://localhost:3000/ URL and see your application up and running.