A social gaming platform for tracking, reviewing, and sharing your gaming experiences. Think Letterboxd, but for video games.
- Game Discovery - Browse 500K+ games from IGDB with search, filters, and sorting
- Reviews & Ratings - Write reviews, rate games (1-5 stars), view community ratings
- Game Status Tracking - Mark games as Played, Playing, or Want to Play
- Custom Lists - Create curated game lists with descriptions
- User Profiles - Public profiles with reviews, lists, and stats
- Like Reviews - Like/unlike reviews from other users
- List Comments - Discuss and comment on game lists
- Members Discovery - Browse and discover other users
- Mobile Responsive - Hamburger menu, collapsible filters, optimized layouts
- Real-time Updates - Instant UI updates for likes, comments, and status changes
- Next.js 16 - React framework with App Router
- Tailwind CSS - Utility-first styling
- Lucide React - Icon library
- Axios - API requests
- Node.js + Express - REST API server
- MongoDB + Mongoose - Database and ODM
- JWT - Authentication
- bcrypt - Password hashing
- IGDB - Game database (covers, metadata, ratings)
- Node.js 18+
- MongoDB (local or Atlas)
- IGDB API credentials (Twitch Developer)
- Clone the repository
git clone https://github.com/yourusername/hitbox.git
cd hitbox- Setup Backend
cd backend
npm installCreate .env file:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/hitbox
JWT_SECRET=your_jwt_secret
TWITCH_CLIENT_ID=your_twitch_client_id
TWITCH_CLIENT_SECRET=your_twitch_client_secret- Setup Frontend
cd ../frontend
npm installCreate .env.local file:
NEXT_PUBLIC_API_URL=http://localhost:5000/api- Run the Application
Backend:
cd backend
npm run devFrontend (new terminal):
cd frontend
npm run devVisit http://localhost:3000
hitbox/
├── backend/
│ ├── src/
│ │ ├── config/ # Database config
│ │ ├── middleware/ # Auth middleware
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # API routes
│ │ ├── utils/ # IGDB, mappers
│ │ └── index.js # Entry point
│ └── package.json
│
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js pages
│ │ ├── components/ # Reusable components
│ │ ├── context/ # Auth context
│ │ └── utils/ # API utility
│ └── package.json
│
└── README.md
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/signup |
Register user |
| POST | /api/auth/login |
Login user |
| GET | /api/auth/me |
Get current user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/games |
Browse games |
| GET | /api/games/:id |
Game details |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/reviews/game/:id |
Get game reviews |
| POST | /api/reviews |
Create review |
| PUT | /api/reviews/:id |
Update review |
| DELETE | /api/reviews/:id |
Delete review |
| POST | /api/reviews/:id/like |
Like review |
| DELETE | /api/reviews/:id/like |
Unlike review |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/lists/discover |
Browse lists |
| GET | /api/lists/:id |
List details |
| POST | /api/lists |
Create list |
| PUT | /api/lists/:id |
Update list |
| DELETE | /api/lists/:id |
Delete list |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/comments/list/:id |
Get list comments |
| POST | /api/comments/list/:id |
Add comment |
| DELETE | /api/comments/:id |
Delete comment |
Add screenshots of your application here
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is for educational purposes.
Built with 💚 by Mayank Pillai