{"id":51109127,"url":"https://github.com/ednanf/game-journal","last_synced_at":"2026-06-24T16:01:23.855Z","repository":{"id":306533200,"uuid":"1026329454","full_name":"ednanf/game-journal","owner":"ednanf","description":"Game Journaling built using the MERN stack.","archived":false,"fork":false,"pushed_at":"2026-02-12T13:08:03.000Z","size":1808,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-12T21:56:24.690Z","etag":null,"topics":["bcryptjs","gaming-website","jwt","mern-stack","mongodb","nodejs","typescript"],"latest_commit_sha":null,"homepage":"https://journal.frizzera.dev/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ednanf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-25T17:39:01.000Z","updated_at":"2026-02-12T13:08:07.000Z","dependencies_parsed_at":"2025-07-26T09:53:46.971Z","dependency_job_id":"08c02bf3-d0a2-4d78-89f5-f18740bd65c8","html_url":"https://github.com/ednanf/game-journal","commit_stats":null,"previous_names":["ednanf/game-journal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ednanf/game-journal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednanf%2Fgame-journal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednanf%2Fgame-journal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednanf%2Fgame-journal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednanf%2Fgame-journal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ednanf","download_url":"https://codeload.github.com/ednanf/game-journal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednanf%2Fgame-journal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34739426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bcryptjs","gaming-website","jwt","mern-stack","mongodb","nodejs","typescript"],"created_at":"2026-06-24T16:01:22.528Z","updated_at":"2026-06-24T16:01:23.783Z","avatar_url":"https://github.com/ednanf.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"134\" height=\"134\" alt=\"app-icon\" src=\"https://github.com/user-attachments/assets/84578ae2-25b7-45f6-907e-5b502b532119\" /\u003e\n\n# Game Journal\n\n## Notes\n\n- The backend is hosted on Render and takes a moment to wake up after periods\n  of inactivity. Please allow time for the server to respond on your first request.\n- Currently, the auth token is stored in local storage instead of cookies to\n  avoid CORS complications, particularly with WebKit on iOS.\n\n## About Me\n\n- **Author**: Ednan Rogério Frizzera Filho\n- [GitHub](https://github.com/ednanf) • [LinkedIn](https://www.linkedin.com/in/ednanrff/)\n- Additional contact info available on my GitHub profile.\n\n## Objective\n\nThis project is a personal game journal application that allows users to track their gaming journey by logging\nactivities with dates and ratings. It's designed to be a simple, intuitive platform—no frills, just a quick way to\ndocument your gaming experiences.\n\nThe application is built using TypeScript and the MERN stack (MongoDB, Express, React, Node.js). The backend implements\nJWT authentication and bcrypt password hashing. Security follows best practices including input validation,\nsanitization, rate limiting, and CORS configuration.\n\nThe application is a PWA (Progressive Web App), allowing users to install it on their devices for a\nnative-like experience.\n\n## Live Application\n\n🚀 **[View Live Demo](https://game-journal.frizzera.dev/)**\n\n_Note: First load may take a moment as the backend wakes up on Render's free tier._\n\n## API Documentation\n\n- For an in-depth look at the API data flow, please refer to\n  this [report](https://github.com/ednanf/game-journal/blob/master/docs/BACKEND_REPORT.md).\n- See the API documentation\n  at [Scalar](https://registry.scalar.com/@ednan-frizzera-dev-team/apis/game-journal-api/latest).\n\n## Main Technologies\n\n### Languages\n\n- TypeScript\n- HTML\n- CSS\n\n### Backend\n\n- Node.js\n- Express\n- MongoDB\n- JWT\n- bcrypt\n\n### Frontend\n\n- React\n- Axios\n\n### Hosting\n\n- Backend: [Render](https://render.com/)\n- Frontend: [Vercel](https://vercel.com)\n\n## Dependencies\n\n### Backend\n\n```plaintext\ngame-journal-backend\n├── bcryptjs ^3.0.2\n├── cors ^2.8.5\n├── express ^5.1.0\n├── express-rate-limit ^8.0.1\n├── express-xss-sanitizer ^2.0.0\n├── helmet ^8.1.0\n├── http-status-codes ^2.3.0\n├── jsonwebtoken ^9.0.2\n├── mongoose ^8.16.5\n├── morgan ^1.10.1\n├── ms ^2.1.3\n├── validator ^13.15.15\n├── zod ^4.0.14\n├── @types/axios ^0.9.36 (dev)\n├── @types/cors ^2.8.19 (dev)\n├── @types/express ^5.0.3 (dev)\n├── @types/express-xss-sanitizer ^2.0.0 (dev)\n├── @types/jsonwebtoken ^9.0.10 (dev)\n├── @types/mongoose ^5.11.96 (dev)\n├── @types/morgan ^1.9.10 (dev)\n├── @types/node ^24.1.0 (dev)\n├── @types/validator ^13.15.2 (dev)\n├── @typescript-eslint/eslint-plugin ^7.18.0 (dev)\n├── @typescript-eslint/parser ^7.18.0 (dev)\n├── eslint ^8.57.1 (dev)\n├── eslint-config-airbnb-base ^15.0.0 (dev)\n├── eslint-config-airbnb-typescript ^18.0.0 (dev)\n├── eslint-config-prettier ^10.1.8 (dev)\n├── eslint-plugin-import ^2.32.0 (dev)\n├── prettier ^3.6.2 (dev)\n├── tsx ^4.20.3 (dev)\n└── typescript ~5.5.0 (dev)\n```\n\n### Frontend\n\n```plaintext\ngame-journal-frontend\n├── axios ^1.11.0\n├── react ^19.1.0\n├── react-dom ^19.1.0\n├── react-icons ^5.5.0\n├── react-router-dom ^7.7.1\n├── react-toastify ^11.0.5\n├── @eslint/js ^9.30.1 (dev)\n├── @types/react ^19.1.8 (dev)\n├── @types/react-dom ^19.1.6 (dev)\n├── @types/react-router-dom ^5.3.3 (dev)\n├── @vitejs/plugin-react ^4.6.0 (dev)\n├── eslint ^9.30.1 (dev)\n├── eslint-plugin-react-hooks ^5.2.0 (dev)\n├── eslint-plugin-react-refresh ^0.4.20 (dev)\n├── globals ^16.3.0 (dev)\n├── prettier ^3.6.2 (dev)\n├── typescript ~5.8.3 (dev)\n├── typescript-eslint ^8.35.1 (dev)\n├── vite-plugin-pwa: ^1.0.2 (dev)\n└── vite ^7.0.4 (dev)\n```\n\n## Legal\n\n[![CC BY\\-NC\\-ND 4\\.0](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n\nThis work is licensed under\na [Creative Commons Attribution–NonCommercial–NoDerivatives 4\\.0 International License](https://creativecommons.org/licenses/by-nc-nd/4.0/).  \nSee the full text in `LICENSE` or\nat [https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fednanf%2Fgame-journal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fednanf%2Fgame-journal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fednanf%2Fgame-journal/lists"}