This is a simple scoreboard web application that allows users to submit flags and view their ranking on the scoreboard. It was designed to be used as a tryout for CPTC competition, but it's functionality can be extended to any platform where flags are submitted for points.
- Account registration and login
- SQLite database for storing user information
- SHA-256 hashing for storing passwords
express-session
for session management and user authentication
- Flag submission, validation, and scoring system
- Submitted flags are checked against a list of valid flags
- Points are awarded for each valid flag submitted
- Duplicate flags are not accepted
- Report and writeup file upload
- Users can upload a report and writeup file to explain methodology
- Files are stored in the
uploads
directory, organized by user ID
- Scoreboard with user ranking, points, and number of flags submitted
- Countdown for when the competition ends
- When the competition ends, the scoreboard is frozen and no more flags can be submitted
- Clone the repository
- Install dependencies with
npm install
- Start the server with
npm start
- Navigate to
http://localhost:3000
in your browser
- Modify
scoring.js
to include your own flags and point values - Modify
scoring.js
to change the competition end date