Open Video Game Data aggregates curated video game lists from journalists, critics, and the community into a single ranked dataset.
- Goal: collect curated lists in one platform.
- Contribution: users can submit their own lists or transcribe reputable ranked source lists.
- Ranking: the site computes aggregate rankings for each final list or category.
- Frontend: React + Vite in
client/ - Backend: ASP.NET Core Web API (.NET 8)
- Database: PostgreSQL
- Authentication: Google Identity Services + JWT Bearer
- External API: IGDB
- Hosting: Render for the API, GitHub Pages or custom domain for the frontend
- Clone the repository.
git clone https://github.com/YOUR_USERNAME/OpenVideoGameData.git cd OpenVideoGameData - Install .NET 8 SDK and Node.js 20+.
- Configure backend environment variables in
Properties\launchSettings.jsonor in your shell:PGSQL_CONNECTIONIGDB_CLIENTIDIGDB_CLIENTSECRETGOOGLE_CLIENT_IDJWT_SECRET
- Build and run the backend:
dotnet build dotnet run
- Install and run the frontend:
cd client npm install npm run dev
Backend default local URL: https://localhost:5124
Frontend default local URL: http://localhost:5173
Create client/.env.development with:
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_API_BASE_URL=https://localhost:5124- The React frontend opens the Google sign-in popup.
- Google returns an ID token to the frontend.
- The frontend sends the token to
POST /api/auth/google. - The backend validates the Google token and issues its own JWT.
- The frontend stores the JWT and sends it in
Authorization: Bearer <token>. - The frontend can verify the current authenticated identity through
GET /api/auth/me.
If you plan to modify the schema:
dotnet tool install --global dotnet-ef
dotnet ef migrations add YourMigrationName
dotnet ef database update- Must represent a journalist or critic opinion, not a personal list.
- Must be enumerated and ranked.
- Must not be based on another aggregate list.
- Maximum of 15 games per list. If the source has fewer than 15, include the full list.
- Fork the repository.
- Create a branch for your change.
- Commit and push.
- Open a pull request with a clear summary.
This project is licensed under the MIT License.