A full-stack MERN app that lets users search games, manage collections/wishlists, write reviews, and authenticate via Google or email/password.
Fast React frontend, clean Express backend, and MongoDB for persistence.
- 🔍 Game search with genre, platform, sorting, and text filters
- 👤 User accounts (Google OAuth + email/password)
- 🎮 Collections & wishlists (add/remove games)
- 📝 Review system with rating, comment, author
- 👥 Friends system (add/remove, list other users)
- 🔐 JWT authentication
- 🗄️ MongoDB models: Login, User, Review
- React + TypeScript
- Vite
- Chakra UI
- Axios
- Node.js + Express
- MongoDB + Mongoose
- Passport.js (Google OAuth)
- bcrypt
- JSON Web Tokens
- CORS
GameFinder/
│
├── client/ # Frontend (React + Vite)
│ ├── src/
│ └── ...
│
├── server/ # Backend (Express, MongoDB)
│ ├── models/
│ ├── auth/
│ ├── server.cjs
│ ├── secret.js
│ └── ...
│
└── README.md
GET /auth/google → Google OAuth login
POST /signup → Create account
POST /login → Email/password login
GET /userByToken/:token → Fetch logged-in user
GET /allUsers/:userId → Get all users except self/friends
POST /changeFriendStatus → Add/remove friends
GET /gameStatus?userId&gameId → Collection/wishlist status
POST /changeGameStatus → Add/remove from collection/wishlist
GET /reviews/:gameId → Get reviews for a game
POST /addReview → Add review
POST /deleteReview → Delete review
Create a secret.js inside /server:
module.exports = {
MONGO_DB_URL: "your-connection-string-here",
jwt_secret: "your-secret-here"
};cd server
npm install
node server.cjscd client
npm install
npm run dev

