A modern, full-stack web app built with ASP.NET Core 9.0 that helps gamers track, manage, and visualise their personal gaming backlog.
- Game Management: Add, edit, and delete games from your backlog
- Status Tracking: Track games as Wishlist, Playing, Completed, On Hold, or Dropped
- Rating System: Rate completed games on a 1-10 scale with visual star display
- Platform Support: Organize games by platform (PC, PlayStation, Xbox, Nintendo Switch, etc.)
- Progress Tracking: Automatic date tracking for when games are added and completed
- Smart Search: Search games by title or description
- Advanced Filtering: Filter by status, platform, and rating
- Flexible Sorting: Sort by title, platform, status, rating, or date added
- Real-time Results: Instant filtering and sorting without page reloads
- Game Database: Mock IGDB-style API for game information
- Auto-populate: Automatically fill game details from database search
- Rich Metadata: Cover images, descriptions, genres, and release dates
- Visual Search: Image-rich search results for easy game identification
- Statistics Overview: View total games, wishlist count, currently playing, and completed
- Recent Activity: See recently added and completed games
- Visual Progress: Progress tracking with status badges and completion stats
- Professional Aesthetic: Modern pink and lilac cosy gaming theme
- Clean Typography: Professional Poppins and Inter fonts for excellent readability
- Responsive Design: Fully responsive layout that works on all devices
- Glassmorphism Effects: Beautiful backdrop blur and transparency effects
- Smooth Animations: Hover effects and transitions for enhanced user experience
- Accessibility: High contrast text and readable font choices
- .NET 9.0 SDK
- A code editor like Visual Studio Code or Visual Studio
-
Clone the repository
git clone <repository-url> cd GamingBacklogWebApp
-
Navigate to the project directory
cd GamingBacklogWebApp -
Restore dependencies
dotnet restore
-
Build the project
dotnet build
-
Run the application with hot reload (recommended for development)
dotnet watch run
Or run normally:
dotnet run
-
Open your browser Navigate to
http://localhost:5097to start using the app!
When using dotnet watch run, the application supports hot reload for rapid development:
- CSS changes: Automatically applied without restart
- Razor page changes: Instantly reflected in the browser
- C# code changes: Application restarts automatically
- Manual refresh: Press
Ctrl+Rin the terminal to force restart
Simply save your files and refresh the browser to see changes!
- Click "Add Game" in the navigation or on the home page
- Search the database for existing games or add manually
- Select a game from search results to auto-populate details
- Fill in additional information like platform and status
- Save to add to your backlog
- View All Games: Navigate to "My Games" to see your entire collection
- Filter Games: Use the filter bar to find specific games by status, platform, or search term
- Edit Games: Click "Edit" on any game card to modify details
- Update Status: Change game status as you progress through your backlog
- Rate Games: Add ratings to completed games for future reference
- Dashboard Stats: View your gaming statistics on the home page
- Status Management: Move games through different stages of your backlog
- Completion Tracking: Automatic date tracking when games are marked as completed
GamingBacklogWebApp/
โโโ Data/
โ โโโ GamingBacklogContext.cs # Entity Framework context
โโโ Models/
โ โโโ Game.cs # Game entity model
โโโ Pages/
โ โโโ Games.cshtml(.cs) # Main games list page
โ โโโ AddGame.cshtml(.cs) # Add new game page
โ โโโ EditGame.cshtml(.cs) # Edit existing game page
โ โโโ Index.cshtml(.cs) # Home page with dashboard
โ โโโ Shared/
โ โโโ _Layout.cshtml # Shared layout template
โโโ Services/
โ โโโ GameDataService.cs # Mock API service for game data
โโโ wwwroot/ # Static files (CSS, JS, images)
โโโ Program.cs # Application startup configuration
- Backend: ASP.NET Core 9.0 with Razor Pages
- Database: Entity Framework Core with In-Memory Database
- Frontend: Bootstrap 5, HTML5, CSS3, JavaScript
- Typography: Google Fonts (Poppins, Inter) for professional readability
- Icons: Font Awesome 6.0
- Styling: Custom CSS with glassmorphism effects and smooth animations
- Hot Reload: Enabled for rapid development and testing
- Development: C# 12.0, .NET 9.0
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />The home page provides an overview of your gaming statistics and quick access to main features.
Browse your entire game collection with advanced filtering and sorting options.
Search for games in the database or add them manually with rich metadata support.
The application currently uses an in-memory database for demonstration purposes. To use a persistent database:
-
Update
Program.csto use SQL Server:builder.Services.AddDbContext<GamingBacklogContext>(options => options.UseSqlServer(connectionString));
-
Add connection string to
appsettings.json:{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=GamingBacklogDb;Trusted_Connection=true;" } } -
Run Entity Framework migrations:
dotnet ef migrations add InitialCreate dotnet ef database update
To integrate with a real game database API (like IGDB):
- Replace
MockGameDataServicewith a real API implementation - Add API credentials to configuration
- Implement proper error handling and rate limiting
dotnet run --environment Developmentdotnet publish -c Release -o ./publishCreate a Dockerfile for containerized deployment:
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
COPY ["GamingBacklogWebApp.csproj", "."]
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "GamingBacklogWebApp.dll"]- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Professional Design System - Modern pink/lilac cozy gaming aesthetic
- Clean Typography - Poppins and Inter fonts for excellent readability
- Hot Reload Development - Rapid development with automatic refresh
- Responsive Layout - Mobile-friendly design with glassmorphism effects
- Enhanced UX - Smooth animations and hover effects
- Real IGDB API Integration - Connect to actual game database
- User Authentication - Multi-user support with individual backlogs
- Achievement Tracking - Track game achievements and trophies
- Play Time Tracking - Log hours spent playing games
- Wishlist Price Tracking - Monitor price changes for wishlist games
- Social Features - Share completed games and reviews
- Mobile App - Native mobile applications
- Export/Import - Backup and restore game collections
- Advanced Analytics - Detailed gaming statistics and trends
- Game Recommendations - AI-powered game suggestions
- Dark Mode Toggle - Optional dark theme for different preferences
This project is licensed under the MIT License - see the LICENSE file for details.
Built with โค๏ธ by Laura Norwood @codermumuk for gamers who love organising their gaming adventures!
Build Errors with CreateAppHost
If you encounter file locking issues during build, add this to your .csproj:
<UseAppHost>false</UseAppHost>Port Already in Use If port 5097 is busy, the app will automatically select another port. Check the console output for the correct URL.
Missing Dependencies
Ensure you have .NET 9.0 SDK installed and run dotnet restore to install all packages.
- Check the Issues page for common problems
- Create a new issue if you encounter bugs
- Refer to ASP.NET Core documentation for framework-specific questions
Happy Gaming! ๐ฎ