A full-featured ASP.NET Core MVC application for managing a book catalog, built with ASP.NET Core Identity, Entity Framework Core, SQL Server, Bootstrap 5, and Chart.js. Includes role-based authorization, audit logging, page-view analytics, an admin user manager, a REST API, and a dark/light theme toggle.
- Book CRUD via SQL Server stored procedures (
BookViewAll,BookViewById,BookAdd/Edit/AddOrEdit,BookDeleteById,BookSearchByTitle). - Identity & roles — register/login/logout, password reset, profile, user
management;
AdminandMemberroles withMemberOnly/AdminOnlypolicies. - Audit trail — global
AuditActionFilter+PageViewFilterrecord writes and page views with retention cleanup, exposed via a paged admin log + CSV export. - Analytics / KPI dashboard — daily traffic and login charts (Chart.js, theme-aware) computed from local DB data (no third-party analytics).
- REST API —
/api/restJSON endpoints for books (MemberOnly). - IIS / Windows Server deployment ready — framework-dependent publish, SQL auth user, env-var configuration, graceful startup seeding.
See docs/README.md for the complete set of guides:
| Doc | Covers |
|---|---|
| 01 — Project Overview | Features, tech stack, high-level flow |
| 02 — Architecture | Solution layout, startup pipeline, filters |
| 03 — Database | booksDb schema, migrations, stored procedures, seed |
| 04 — Security & Identity | Auth, roles, policies, audit filters |
| 05 — REST API & Reports | /api/rest endpoints and analytics reports |
| 06 — Deployment (IIS) | Publishing, env overrides, SQL login |
| 07 — Frontend & Theming | Layout, theme toggle, Chart.js |
| 08 — Troubleshooting | Issues hit and their fixes |
# run EF migrations to create Identity / Audit / PageView tables
dotnet ef database update --project mvc
# apply the book schema, seed data, and stored procedures
# - mvc/SQL/books.sql
# - mvc/SQL/Book*.sql and mvc/Scripts/BookSearchByTitle.sql
dotnet run --project mvcOpen http://localhost:<port>, register (or use the seeded admin), and manage books.
- .NET 8 · ASP.NET Core MVC + Razor
- ASP.NET Core Identity (
IdentityUser/IdentityRole), cookie auth - EF Core + SQL Server (retry-on-failure), stored-procedure data access
- Bootstrap 5, jQuery validation, Chart.js
- Hosted on IIS (Windows Server)