Flexible and extensible backend for My Games using TypeScript, Express.js, and MongoDB. User management, file uploads, API integration.
Category
Backend
Status
Completed
GitHub Stats
Created
Mar 24, 2024
Last Updated
Jan 27, 2026
In this project, I developed an Express.js and MongoDB-based backend service for the My Games application.
For an application that maintains a game archive, a frontend alone is insufficient. Backend functionalities such as user authentication, role management, screenshot uploads, email flows, and fetching game data from external APIs needed to be consolidated on the backend.
I structured the backend using TypeScript on top of Express, dividing the folder structure into controller, service, repository, middleware, and model layers. For data persistence, I utilized MongoDB and Mongoose. For authentication, I used JWT and bcryptjs. For file uploads, I implemented Multer, and for screenshot sharing, AWS S3. For email flows, I incorporated Nodemailer and Mailgen. I added a flow suitable for fetching game data via the IGDB API and made the membership side more controlled with a role system.
The outcome is a backend that supports the My Games frontend, closer to real-world application needs. I transitioned from the old Firebase-based structure to a more flexible, service-oriented, and extensible architecture.
TypeScript, Node.js, Express.js, MongoDB, Mongoose, JWT, bcryptjs, AWS S3, Multer, Nodemailer, Mailgen, IGDB API, dotenv, nodemon