Codart is the flagship event conducted by ACM VIT Student Chapter Every Year. This year 1st round was conducted on Hackerearth and 2nd round was conducted on portal developed by ACM VIT Student Chapter.
This repository holds the backend tree of the Portal develpoed by ACM VIT Student Chapter.
- Admin Controller
- Login/Logout
- Question Controller
- Create Question
- Emit Question (Real Time : Socket.io) (- Admin)
- Skip Question (Emit Score : Real Time : Socket.io) (With Penalty)
- User Controller
- Login
- Post Response (Auto Testing : Emit Score : Real Time : Socket.io) (Hackerrank API)
- Leaderboard
- Get Score Of Individual Team
NOTE:
Whenever a team uploads the source code file, Test Cases for the particular question along with the source code file is tested for the output using Hackerrank api, Once the output is matched score is emitted, and based on the dart socer another question is emitted for that particular user using Web Sockets (socket.io)
Other Features:
There are 3 levels of difficulty Easy, Medium and Hard and also 2 buffer questions which cannot be skipped. A Random question of easy difficulty is given and for other difficulties questions are given in order. A person cannot skip more than 2 questions consecutively, on successful submission skip counter is reset.
Scoring Scheme:
Successful Submission:
Easy += 50
Medium += 50
Hard += 50
Skip Penalty:
Easy -= 20
Medium -= 15
Hard -= 10
- bcrypt-nodejs
...Why?
- Hashing Passwords
- jsonwebtoken
...Why?
- Stateless Authentication
- hacken
...Why?
- Utility
- Socket.io
...Why?
- Real Time Events
Codart 3.0 Portal Was a big project to make sure everything wokrs fine when integrated with frontend and when taken into production, App was Dockerized.
Dockerfile:
Dockerfile is used to build the image of this api.
docker-compose.yml
docker-compose.yml is used to deploy the stack (Sails API && MongoDb) in docker swarm when taken into production (DigitalOcean Cloud)