CodePath WEB103 Final Project
Designed and developed by: Rashad, Jing, Rahat
🔗 Link to deployed app: https://gamilist-frontend.onrender.com

Similar to myAnimelist, Gamilist is a way for you to see game recommendations based off what you have played.
Frontend: React, React Router, Vite, CSS3
Backend: Node.js, Express.js, PostgreSQL, Passport.js (GitHub OAuth), IGDB API (via Twitch)
Before running the project, install:
- Node.js 18+ (20 recommended)
- npm
- Access to:
- A Postgres database (Render Postgres)
- A Twitch Developer App (to access the IGDB API)
git clone <repo-url>
cd gamilist_code
npm installnpm start Starts Express backend
npm run dev Starts Vite frontend
npm run build Builds production bundle
npm run preview Serves built frontend
Discover games by searching or browsing through different platforms (Console, PC, Mobile) and genres
Organize games into custom lists: "Completed", "Playing", and "Plan to Play"
Rate games on a scale and write detailed reviews to share your experience with the community
Get smart game recommendations based on your completed games, ratings, and favorite genres
Discuss games, share tips, and connect with other gamers through topic-based forum discussions
Earn trophies and unlock achievements by completing milestones like finishing games, writing reviews, or reaching rating goals
Showcase your gaming identity with a profile displaying your stats, favorite games, earned trophies, and gaming history
Create a .env file in the gamilist_code directory with the following variables:
DATABASE_URL=your_postgres_connection_string
TWITCH_CLIENT_ID=your_twitch_client_id
TWITCH_CLIENT_SECRET=your_twitch_client_secret
SESSION_SECRET=your_session_secret
GITHUB_CLIENT_ID=your_github_oauth_client_id (optional, for GitHub OAuth)
GITHUB_CLIENT_SECRET=your_github_oauth_client_secret (optional, for GitHub OAuth)
GITHUB_CALLBACK_URL=http://localhost:10000/api/auth/github/callbackInitialize the database with seed data:
cd gamilist_code
# The database will be automatically initialized on first run
# Or manually reset using: curl -X POST http://localhost:10000/api/resetOpen two terminal windows:
Terminal 1 - Backend:
cd gamilist_code
npm start
# Backend will run on http://localhost:10000Terminal 2 - Frontend:
cd gamilist_code
npm run dev
# Frontend will run on http://localhost:5173- Frontend:
http://localhost:5173 - Backend API:
http://localhost:10000
Default test accounts (if using seed data):
- Username:
guest/ Password:password123
Or sign in with GitHub OAuth.





