Checkmate Express is the backend API for a chess tournament management application, developed as part of the professional training at Technifutur.
This API manages users, tournaments, and match pairings, providing a secure and scalable architecture for chess organizers.
The project is built with Node.js (ES Modules) and uses the following key libraries:
- Framework: Express 5
- Database & ORM: PostgreSQL with Sequelize
- Data Validation: Zod
- Security: Authentication via JSON Web Token (JWT) and password hashing with Bcrypt
- Documentation: Swagger UI (via
swagger-jsdoc) - Utilities: Day.js (date manipulation), Nodemailer (email services), Morgan (HTTP request logging)
A front-end application is currently under development in the https://github.com/Dranhoc/Checkmate_Angular repository. In the meantime, you can test all features directly through this API.
git clone https://github.com/Dranhoc/Checkmate_Express
cd Checkmate_Expressnpm installRename '.env.example' in '.env' and fill the 'XXX' with your credentials
Runs the server with nodemon for automatic restarts on file changes
npm run devTo populate the database with initial data
npm run seedOnce the server is running you can explore and test the API endpoints via the interactive Swagger documentation at : http://localhost:3000/api-docs (Default port)
- src/index.js - Application entry point.
- src/database/ - Sequelize configuration, models, and seeders.
- src/routes/ - API route definitions.
- src/controllers/ - Business logic and request handling.
- src/middleware/ - Auth guards, Zod validation, and error handling.