BookCat is a full-stack ASP.NET Core MVC web application for discovering, reviewing, and cataloging books. It integrates server-side rendering, clean REST-style endpoints, and responsive front-end design.
- Create an account and browse the catalog.
- Add books from local or external sources (Google Books API).
- Write and edit reviews, rate titles, and view other users’ profiles.
This project was built under a tight timeline, but here are some things I’d like to revisit:
- Refine the repository pattern (consider leaner abstractions or direct DbContext queries).
- Implement true pagination in the repos to avoid unnecessarily loading navigation properties into memory.
- Add moderation tools leveraging existing role flags.
- Improve CSS naming and modularity for more reusable components.
Special thanks to my buddy JK_Bizcuits:
I shit talked my friend's project until he fixed it.
| Layer | Technologies |
|---|---|
| Backend | ASP.NET Core 9, C#, Entity Framework Core |
| Database | SQL Server Express |
| Frontend | Razor Views, HTML5, CSS3, JavaScript |
| Auth | ASP.NET Identity |
| External APIs | Google Books API |
| Image Handling | ImageSharp |
- ASP.NET Core MVC for the presentation and controller layer.
- Entity Framework Core as ORM for database interaction (SQL Server).
- Repository pattern to abstract data access.
- Identity for user authentication, authorization, and account management.
- Dependency Injection for service and repository registration.
- DTOs and ViewModels to cleanly separate domain and UI data models.
- SQL Server Express, managed through Entity Framework Migrations.
- Relational structure: Users ↔ Reviews ↔ Books.
- Book data integrated with the Google Books API to support search and cataloging of new titles.
- Each user can add books, write reviews, and maintain personalized profile data.
- Server-rendered Razor Views with custom HTML/CSS (No Bootstrap).
- Responsive layout built with Flexbox and media queries for adaptive design.
- Client-side interactivity using vanilla JavaScript (e.g., star-rating system).
- Validation via Unobtrusive jQuery Validation.
- Cookie-based authentication managed through ASP.NET Identity.
- CSRF protection with [ValidateAntiForgeryToken].
- Custom Middleware that validates user existence and automatically signs out deleted accounts.
- User profile images uploaded via form and resized on the server using ImageSharp before storage.
- Optimized storage structure with unique filenames for automatic cache busting.
- Account registration, login, and profile management.
- Book catalog browsing and search integration with external API.
- User-generated reviews and ratings.
- Responsive UI with mobile support.
Prerequisites: .NET 9 SDK, SQL Server Express, and a Google Books API key.
git clone git@github.com:holypeachy/BookCat.git
cd BookCat/BookCat.Site/
dotnet user-secrets set GoogleBooks:ApiKey YOUR_API_KEY_HERE
dotnet user-secrets set Db:ConnectionString YOUR_CONNECTION_STRING_HERE
dotnet runCredentials for admin:
Email: testadmin@gmail.com
Password: Admin123!