A web storefront for video games built with ASP.NET MVC 5 targeting .NET Framework 4.8. GameHub lets users browse and search game listings, view details and screenshots, add games to a wishlist/library, and manage games from an admin UI. This repository contains the MVC web app (server-rendered Razor views, Entity Framework models, and MVC controllers).
Status: DRAFT — review configuration, secrets, and deployment before publishing to production.
- Features
- Tech stack
- Prerequisites
- Quick local run
- Database
- Authentication & Google OAuth
- Security notes
- Project structure (relevant)
- Publishing & deployment
- What was removed from earlier drafts
- Contributing
- Roadmap
- License
- Contact
- Game catalog with genres and filters
- Product detail pages with screenshots and metadata
- Search and pagination for large catalogs
- Wishlist / library management for users
- User registration and login
- Admin CRUD for games, discounts, and users
- Entity Framework for data access (EF6 — Database-first or Code-first)
- OWIN middleware for external authentication (Google OAuth)
- Backend / UI: ASP.NET MVC 5 on .NET Framework 4.8
- ORM: Entity Framework 6
- Authentication: Session-based auth and optional OWIN Google OAuth
- Database: SQL Server / LocalDB
- Frontend: Razor views, Bootstrap, jQuery
- Dev tooling: Visual Studio 2019 / 2022, NuGet
- Visual Studio 2019 or 2022 (ASP.NET workload)
- .NET Framework 4.8 installed
- SQL Server or LocalDB instance
- NuGet package restore enabled
- Clone the repository:
git clone https://github.com/Abdul-Rafy2005/-GameHub-store.git
cd GameHub-store- Restore NuGet packages: open the solution in Visual Studio (NuGet restore runs automatically), or:
nuget restore <YourSolution>.sln- Update the connection string in
Web.configto point to your SQL Server or LocalDB instance. The project's EF connection string is namedGameManagementMISEntities. Example snippet (replace placeholders):
<connectionStrings>
<add name="GameManagementMISEntities"
connectionString="metadata=res://*/Models.GameModel.csdl|res://*/Models.GameModel.ssdl|res://*/Models.GameModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=GameHubDb;Integrated Security=True;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>- Build & run:
- In Visual Studio: set the web project as the Startup Project, choose Debug or Release, press F5 (IIS Express) or Ctrl+F5.
- The app will run under the IIS Express URL shown in Visual Studio.
- Entity Framework models live in the
Modelsfolder. The connection string name isGameManagementMISEntities. - If using Database-First: ensure the database schema exists and matches the EDMX/model metadata.
- If using Code-First: apply EF migrations or use your preferred seeding approach to create and seed the database.
- Provide SQL seed scripts or EF seed logic when convenient for dev onboarding.
- OWIN Google OAuth is configured in
App_Start/Startup.cs. - For local development you may temporarily store Google client ID/secret in
Web.config(appSettings) — do NOT commit secrets to source control. - For production, use environment variables / IIS App Settings to keep secrets out of source control.
- Callback path:
/signin-google— register this URI in the Google Cloud Console for both local and production redirect URIs.
- Avoid known vulnerable packages (review NuGet advisories). For example, evaluate any old Microsoft.AspNet.Identity.* or OWIN packages and update or minimize usage.
- Never commit secrets (Google client secret, DB passwords) to the repository.
- Use HTTPS in production and set cookies as
SecureandHttpOnly. - Review password hashing implementation; ensure modern hashing (bcrypt/argon2) or confirm the framework's secure approach. The project currently uses a
PasswordHashfield — audit before production. - Keep NuGet packages updated and monitor advisories.
- Controllers/ — Games, Discounts, Account, Admin, etc.
- Models/ — Entity Framework models and DbContext (EDMX or Code-First classes)
- Views/ — Razor views and shared layouts
- Content/ — CSS, images, cover art, banners
- Scripts/ — client-side scripts (jQuery, Bootstrap)
- App_Start/ — OWIN Startup, routing, bundles
- Global.asax — application lifecycle events
- Web.config — site configuration, app settings and connection strings
-
Build in Release configuration.
-
Publish the web project (Visual Studio → Publish → File System or Web Deploy).
-
Deploy the publish output to IIS; ensure you include:
- bin/ (assemblies)
- Views/
- Content/ (CSS, images)
- Global.asax
- Web.config (apply transforms for production; set compilation debug="false")
-
IIS configuration:
- App Pool: .NET CLR v4.0, Integrated pipeline
- Provide connection strings and Google client secrets via environment variables or IIS App Settings (avoid Web.config secrets)
-
Register production redirect URIs in Google Cloud Console (e.g.,
https://yourdomain.com/signin-google).
- Node / React / Sequelize / Postgres instructions (not part of this repo)
- Docker / docker-compose steps (not included here)
- Node-specific environment variables and package.json scripts
If you later add a separate frontend or an API microservice, add dedicated docs for those components.
- Fork → create a feature branch → open a pull request.
- Keep secrets out of commits.
- Include tests for non-trivial changes where possible.
- Harden authentication flows and secret management
- Add unit & integration tests
- Add CI for build and basic tests
- Audit and update NuGet packages to resolve advisories
Maintainer: Abdul-Rafy2005 — https://github.com/Abdul-Rafy2005
For issues or feature requests, please open an issue in this repository.