RE
red-arachnid/Games_DashBoard
A modern CLI Game Library Manager built with .NET and Spectre.Console, featuring real-time game data fetching from the IGDB API and secure user authentication.
Games_DashBoard
A robust, console-based Game Library Manager built with .NET and Spectre.Console. This application allows users to manage their personal game collection by fetching real-time data from the IGDB API.
โจ Key Features
- Real-Time Data Fetching: Integrates with the IGDB API to search for games, retrieve metadata (developers, genres, DLCs).
- Rich CLI Interface: Uses
Spectre.Consolefor an immersive terminal experience, including spinners, tables, and interactive prompts. - User Authentication: Secure login and registration system using BCrypt for password hashing.
- Library Management:
- Add games to your personal collection.
- Rate games on multiple metrics (Gameplay, Story, Visuals, Audio, Creativity).
- Sort library by Name or Date Added.
- Data Persistence: Asynchronous JSON file storage ensures user data is saved securely without blocking the UI.
๐ ๏ธ Technical Highlights
This project demonstrates modern C# best practices:
- Asynchronous Programming: Fully async/await implementation for File I/O and Network calls to prevent UI blocking.
- Dependency Management: Separation of concerns between UI, Services, and Data layers.
- Security: Passwords are never stored in plain text; User Secrets are used for API keys.
๐ง What I Learned
- HTTP & API Integration: This project was my primary focus for mastering
HttpClient. I learned how to manage request headers for authentication, handle JSON serialization/deserialization, and interact with a professional REST API (IGDB). - Connection Management: I learned the importance of reusing
HttpClientinstances to prevent socket exhaustion in .NET applications. - Architecture Refinement: While I had previous experience with
Spectre.Consoleand layered architecture, building this application reinforced those concepts and helped me practice applying the Service-Repository pattern in a more complex, real-world scenario.
๐ Installation
Option 1: Quick Start (Pre-built Release)
Best for users who just want to run the app without coding.
- Go to the Releases tab on this repository.
- Download the latest
.zipfile (Windows only). - Extract the folder.
- Important: Open
appsettings.jsonin a text editor and add your IGDB Keys (Get the keys from twitch developer portal):{ "IGDB": { "ClientId": "YOUR_CLIENT_ID_HERE", "Token": "YOUR_ACCESS_TOKEN_HERE" } } - Double-click
Games_DashBoard.exeto launch!
Option 2: Build from Source
Best for developers who want to modify the code.
- Clone the repository
git clone https://github.com/red-arachnid/Games_Dashboard.git
- Configure API Keys (User Secrets)
cd Games_Dashboard dotnet user-secrets init dotnet user-secrets set "IGDB:ClientId" "YOUR_CLIENT_ID_HERE" dotnet user-secrets set "IGDB:Token" "YOUR_ACCESS_TOKEN_HERE"
- Build and Run
dotnet run
๐ Project Structure
Games_Dashboard/
โโโ Data/ # JSON Repository & Storage Logic
โโโ Model/ # Data Models (User, Game, IGDB schemas)
โโโ Services/ # Business Logic (Auth, IGDB API, Game Management)
โโโ UI/ # Spectre.Console Screens & Interactions
โโโ Program.cs # Entry point & Dependency Injection
๐บ Demo
On this page
Languages
C#100.0%
Contributors
Latest Release
v0.0.1January 29, 2026MIT License
Created January 23, 2026
Updated January 29, 2026
