Games DB is a comprehensive games database web application built using Next.js, leveraging the IGDB API to fetch a vast collection of video game information. Users can search for games, filter results based on platforms and themes, view game details including screenshots, trailers, average ratings, release dates, and more. Registered users can also save their favorite games to a personalized Favorites list.
- Search: Quickly find games using the persistent search bar.
- Categories: Narrow down games by platforms or themes.
- Game Details: View extensive information about each game, including screenshots, trailers and ratings.
- Favorites List: Save and manage a list of your favorite games.
- Responsive Design: Use on either desktop or your phone.
- User Authentication: Create an account with your email and manage your favorites list.
- Modern, dynamic UI: Made with love and care.
Follow these instructions to set up Games DB locally for development.
- Node.js version >= 16.14
- IGDB API client ID and authorization token
- A Vercel PostgreSQL database (for managing users and favorites)
- An OpenAI API key for the AI game suggestions feature
-
Clone this project locally:
git clone <repository-url> cd <repository-folder>
-
Install dependencies:
npm install
-
Set up environment variables: Copy the .env.example file to a new file named .env.development.local, and fill in the required API keys and database credentials.
-
Run the app in development mode:
npm run dev
The app will be accessible at http://localhost:3000.
React - UI Library
React-DOM - Client-side navigation
Next.js 13.5.6 - API routing and integration with Vercel services
Vercel Postgres - Plays nicely with Next.js, easy deployment
bcrypt.js - Password hashing and verification
cookie - Secure cookies for authentication
jose - JWT Signing and Authentication
Tailwind CSS - Styling
HeadlessUI - Combobox for the Search bar
LightGallery.js - Lightbox for images and videos
FontAwesome - Icons
- Does not yet have the ability to refresh the JWT token for the logged in state.
- Game information is sourced from the IGDB API and is read-only - it cannot be added to or modified.
- Game data is user-submitted and may vary in completeness. However, a majority of the widely popular games have extensive information available.
Thanks to the creators of IGDB for providing the extensive game database, and to the creators of all dependency packages listed above. Big thanks to our mentors at Lighthouse Labs for being there to guide us at numerous points in our journey.