https://github.com/ednanf/game-journal
Game Journaling built using the MERN stack.
https://github.com/ednanf/game-journal
bcryptjs gaming-website jwt mern-stack mongodb nodejs typescript
Last synced: 16 days ago
JSON representation
Game Journaling built using the MERN stack.
- Host: GitHub
- URL: https://github.com/ednanf/game-journal
- Owner: ednanf
- License: other
- Created: 2025-07-25T17:39:01.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2026-02-12T13:08:03.000Z (5 months ago)
- Last Synced: 2026-02-12T21:56:24.690Z (5 months ago)
- Topics: bcryptjs, gaming-website, jwt, mern-stack, mongodb, nodejs, typescript
- Language: TypeScript
- Homepage: https://journal.frizzera.dev/
- Size: 1.72 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Game Journal
## Notes
- The backend is hosted on Render and takes a moment to wake up after periods
of inactivity. Please allow time for the server to respond on your first request.
- Currently, the auth token is stored in local storage instead of cookies to
avoid CORS complications, particularly with WebKit on iOS.
## About Me
- **Author**: Ednan RogΓ©rio Frizzera Filho
- [GitHub](https://github.com/ednanf) β’ [LinkedIn](https://www.linkedin.com/in/ednanrff/)
- Additional contact info available on my GitHub profile.
## Objective
This project is a personal game journal application that allows users to track their gaming journey by logging
activities with dates and ratings. It's designed to be a simple, intuitive platformβno frills, just a quick way to
document your gaming experiences.
The application is built using TypeScript and the MERN stack (MongoDB, Express, React, Node.js). The backend implements
JWT authentication and bcrypt password hashing. Security follows best practices including input validation,
sanitization, rate limiting, and CORS configuration.
The application is a PWA (Progressive Web App), allowing users to install it on their devices for a
native-like experience.
## Live Application
π **[View Live Demo](https://game-journal.frizzera.dev/)**
_Note: First load may take a moment as the backend wakes up on Render's free tier._
## API Documentation
- For an in-depth look at the API data flow, please refer to
this [report](https://github.com/ednanf/game-journal/blob/master/docs/BACKEND_REPORT.md).
- See the API documentation
at [Scalar](https://registry.scalar.com/@ednan-frizzera-dev-team/apis/game-journal-api/latest).
## Main Technologies
### Languages
- TypeScript
- HTML
- CSS
### Backend
- Node.js
- Express
- MongoDB
- JWT
- bcrypt
### Frontend
- React
- Axios
### Hosting
- Backend: [Render](https://render.com/)
- Frontend: [Vercel](https://vercel.com)
## Dependencies
### Backend
```plaintext
game-journal-backend
βββ bcryptjs ^3.0.2
βββ cors ^2.8.5
βββ express ^5.1.0
βββ express-rate-limit ^8.0.1
βββ express-xss-sanitizer ^2.0.0
βββ helmet ^8.1.0
βββ http-status-codes ^2.3.0
βββ jsonwebtoken ^9.0.2
βββ mongoose ^8.16.5
βββ morgan ^1.10.1
βββ ms ^2.1.3
βββ validator ^13.15.15
βββ zod ^4.0.14
βββ @types/axios ^0.9.36 (dev)
βββ @types/cors ^2.8.19 (dev)
βββ @types/express ^5.0.3 (dev)
βββ @types/express-xss-sanitizer ^2.0.0 (dev)
βββ @types/jsonwebtoken ^9.0.10 (dev)
βββ @types/mongoose ^5.11.96 (dev)
βββ @types/morgan ^1.9.10 (dev)
βββ @types/node ^24.1.0 (dev)
βββ @types/validator ^13.15.2 (dev)
βββ @typescript-eslint/eslint-plugin ^7.18.0 (dev)
βββ @typescript-eslint/parser ^7.18.0 (dev)
βββ eslint ^8.57.1 (dev)
βββ eslint-config-airbnb-base ^15.0.0 (dev)
βββ eslint-config-airbnb-typescript ^18.0.0 (dev)
βββ eslint-config-prettier ^10.1.8 (dev)
βββ eslint-plugin-import ^2.32.0 (dev)
βββ prettier ^3.6.2 (dev)
βββ tsx ^4.20.3 (dev)
βββ typescript ~5.5.0 (dev)
```
### Frontend
```plaintext
game-journal-frontend
βββ axios ^1.11.0
βββ react ^19.1.0
βββ react-dom ^19.1.0
βββ react-icons ^5.5.0
βββ react-router-dom ^7.7.1
βββ react-toastify ^11.0.5
βββ @eslint/js ^9.30.1 (dev)
βββ @types/react ^19.1.8 (dev)
βββ @types/react-dom ^19.1.6 (dev)
βββ @types/react-router-dom ^5.3.3 (dev)
βββ @vitejs/plugin-react ^4.6.0 (dev)
βββ eslint ^9.30.1 (dev)
βββ eslint-plugin-react-hooks ^5.2.0 (dev)
βββ eslint-plugin-react-refresh ^0.4.20 (dev)
βββ globals ^16.3.0 (dev)
βββ prettier ^3.6.2 (dev)
βββ typescript ~5.8.3 (dev)
βββ typescript-eslint ^8.35.1 (dev)
βββ vite-plugin-pwa: ^1.0.2 (dev)
βββ vite ^7.0.4 (dev)
```
## Legal
[](https://creativecommons.org/licenses/by-nc-nd/4.0/)
This work is licensed under
a [Creative Commons AttributionβNonCommercialβNoDerivatives 4\.0 International License](https://creativecommons.org/licenses/by-nc-nd/4.0/).
See the full text in `LICENSE` or
at [https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).