Simple, robust, and mobile-friendly check in system for hackathons and other events. Capable of handling many concurrent events and displaying updates in real-time.
Originally designed and built for HackGT events.
The check in interface is divided into several sections that can be switched between from the flyout side menu:
- Main check in interface (shown above)
- Choose check in tag (integrated into the menu)
- Import users
- Delete check in tag (integrated into the menu)
- Manage and configure users
Check in status is kept synchronized across multiple open instances in real-time using WebSockets.
Installation and Deployment
A Dockerfile is provided for convenience.
npm install # Install required dependencies npm run build # Compile npm test # Optional: run tests npm start
|PORT||The port the check in system should run on (default:
|MONGO_URL||The URL to the MongoDB server including the database (default:
On first start up, the server will automatically generate a default user with which to log in and add users and print the credentials to STOUT. Make sure to delete this user or change its password from the default once you are done.
Because the server is not configured to serve over HTTPS, you'll want to set up some kind of reverse-proxy server like Nginx in production.
This project is using Mocha for unit testing. Currently, the tests only cover the server and the API.
The unit tests require a locally running MongoDB server. The tests are designed to and should leave the database unaffected after completion and succeed even with the presence of existing data. Please file a new issue if this behavior is not observed. Running on an production database is still strongly discouraged, however.
To run the tests (from the project's root directory):
npm install # Install required dependencies (including development dependencies) npm install -g typescript # Install the TypeScript compiler npm test # Compile and run the unit tests
If adding or changing API endpoints (see the Contributing section below), please write new tests or edit existing tests to retain 100% coverage.
Development is organized using Git Flow. All development work should occur on the
develop branch and merged into
master and tagged with the version when production ready. Only ready-to-ship code should be merged into the
Try to follow existing coding styles and conventions. For example, use TypeScript's type annotations whenever possible and Promises for asyncronous operations in conjunction with ES7 async/await (TypeScript's transpilation allows for the use of these features even on platforms that don't support or entirely support ES6 and ES7).
Strict null-checking is enabled in the
Copyright © 2017 HackGT. Released under the MIT license. See LICENSE for more information.