Incognito is an envisioned Training Management System for business organizations, with its initial version as a realtime infotainment quizzing platform, built as a solution for hackerflow.io hosted by Survey Sparrow.
- Problem Statement
- Scope of Ideation
- Vision
- Utilize application
- Technologies
- Application Features
- API Contracts
- Local Deployment
- Test Run
- How To Contribute
- Licensing
Due to the use of Google signin for authentication which requires an SSL certificate we couldnt host frontend of the application in account to lack of time. Please use local deployment for visualization.
It has been mandatory and habitual for all modern ventures, be it big or small, to practice onboarding or continual training for their employees as a guidance and evaluation technique. Extrapolating an existing game based learning platform to an extensible Training Management system surfaced upon noticing its requirement even in our company, where training assessments and its analysis is still highly tedious and pricey. Even in unpredictable scenarios, as we are facing now, remote learning should be engaging enough to plug in individuals through virtual interactions. Recreating Kahoot is our first step towards automating this Knowledge Transfer in organizations.
Fig 1: Ideas that lead to IncognitoIncognito is designed as a culmination of a live requirement of Training Management System in our organization with all the idea proposals suggested by hackerflow.io team including recreation of an application, log analysis platform and a real time feed application.
Incognito is envisioned to be extrapolated to an automated Training Management System for organizations capable of :
- Maintaining multiple roles within the firm including trainers, trainees, admins and superusers.
- Supporting the management of batches of trainees who get acquianted periodically.
- Providing educational content which could be specific to organiation or in integration to popular online education platforms.
- Hosting assessments, that are of non textual content as well (Images, audio, video), with multiple criterias for trainees belonging to certain training groups.
- Monitoring status and evaluating performance of trainees against assessments.
- Batchwise and invidiual performace visualization techniques.
- Feedback for trainers and superiors
-
MERN Stack
- MongoDB
- Express
- React
- Node.js
-
Communication
- Websocket
-
Deployment
- Docker
- Jenkins
- AWS EC2
-
Log Analysis
- File Beat + ELK (Elasticsearch, Logstash, Kibana)
- Basic Features
- Google account based authentication and role based authorization for Host and Player.
- 3 fold format : Group of questions forms a Kahoot, a live kahoot becomes a Game and a set of kahoots is termed as a Collection in Incognito. This format is specifically designed to escalate the platform to handle training where assessments could be categorized or segmented.
- A kahoot can exist individually as well, without being part of a collection.
- An authenticated host is authorised to create, update and delete questions within quizzes and quizzes as a whole.
- A player can use a unique PIN generated during hosting to login to a hosted.
- A persisted Kahoot can be hosted multiple times with different PINs.
- Number of players can be limited within a game as well as the host can choose whether or not to lock player entries once the game has begun.
- Quiz Features
- Incognito_v1 is built to support Multiple Choice and Yes/No questions with textual content.
- Host screen will be displayed with questions and corresponding choices, while player screens will be prompted with just the choices to opt from.
- Scoring Quizzes
- Scoring of individual questions is based on the correctness and the time taken to answer it.
- A ranking based leaderboard is calculated realtime from the persisted scores during a game.
View detailed API contracts for Incognito_v1.0 at Backend API Contract Documentation
- Start MongoDB database
docker run -d -p 27017:27017 -v ./db:/data/db --name mongodb mongo
- Start Backend service
cd ./backend-service (Expecting your current directory is root directory of git repo)
npm install / yarn install (One time command)
npm start / yarn start
Health Check: (http://localhost:3000) http Method(GET)
- Start Frontend app
cd ./frontend-service (Expecting your current directory is root directory of git repo)
npm install / yarn install (One time command)
npm start / yarn start
- To initiate Unit Test
cd backend-service/
npm run unit-test
- To initiate Integrated Test
cd backend-service/
npm run integration-test
View detailed coverage report in backend-service/coverage/lcov-report/index.html
Incognito_v1.0 has the following dev pattern where main branch functions as the master with child branches assigned for both backend and frontend of the application. Every feature of Incognito from these two aspects have been developed and merged using independetly assigned branches. Fixes associated with different features were also worked upon individually to follow strict and standard development pattern.
Fig 3: Dev pattern of IncognitoTo contribute:
- Fork this repository to get your copy on GitHub.
- Clone the project to your own machine.
- Work on features and commit changes to your own branch.
- Push your work back up to your fork.
- Submit a Pull Request so that we can review your changes.
View Incognito licensing at LICENSE