https://github.com/nickimash17/bookreviewapp
Advanced Book Review Application with ASP.NET Core and EF Core
https://github.com/nickimash17/bookreviewapp
asp-net-core aspnet-mvc bootstrap dotnet efcore entity-framework mongodb sql-server
Last synced: 3 months ago
JSON representation
Advanced Book Review Application with ASP.NET Core and EF Core
- Host: GitHub
- URL: https://github.com/nickimash17/bookreviewapp
- Owner: NickiMash17
- Created: 2025-05-09T12:17:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-16T17:59:30.000Z (10 months ago)
- Last Synced: 2025-08-16T19:27:32.175Z (10 months ago)
- Topics: asp-net-core, aspnet-mvc, bootstrap, dotnet, efcore, entity-framework, mongodb, sql-server
- Language: C#
- Homepage:
- Size: 1.33 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ Book Review App






> **๐จ Original work by Nicolette Mashaba (nickimash)**
> *All UI/UX, code, and design are handcrafted and proudly owned.*
## ๐ About
A sophisticated, full-stack web application for managing books, authors, and reviews. Built with modern .NET technologies and featuring MongoDB integration for flexible data storage. The application supports both local MongoDB and MongoDB Atlas cloud deployment, showcasing professional development practices and clean architecture principles.
**Perfect for demonstrating full-stack development skills to potential employers.**
---
## ๐ฏ Features
### โจ Core Functionality
- **๐ Book Management**: Complete CRUD operations with cover image support
- **๐จโ๐ผ Author Management**: Detailed author profiles with biographies and photos
- **โญ Review System**: Interactive 5-star rating system with detailed comments
- **๐ Smart Search**: Real-time search and filtering across all content
- **๐ฑ Responsive Design**: Mobile-first design that works seamlessly on all devices
### ๐ Advanced Features
- **๐๏ธ Dual Database Support**: MongoDB Atlas (cloud) and local MongoDB (Compass)
- **๐ Analytics Dashboard**: Interactive charts and comprehensive statistics
- **โก Real-time Search**: Instant search results with advanced filtering
- **๐จ Visual Ratings**: Beautiful star rating displays with average calculations
- **๐ผ๏ธ Image Management**: Robust image handling with automatic fallbacks
- **๐ Data Relationships**: Sophisticated database relationships and optimized queries
### ๐จ UI/UX Excellence
- **Modern Aesthetics**: Clean, professional interface with smooth gradients and animations
- **Interactive Elements**: Engaging hover effects, transitions, and overlays
- **Consistent Iconography**: Bootstrap Icons throughout for visual consistency
- **Accessibility First**: WCAG compliant with semantic HTML and ARIA labels
- **Performance Optimized**: Fast loading with proper error handling and user feedback
---
## ๐๏ธ Architecture
### ๐ Project Structure
```
BookReviewApp/
โโโ ๐ฆ BookReviewApp.Domain/ # Domain models and interfaces
โโโ ๐๏ธ BookReviewApp.Data/ # Data access, repositories, and MongoDB context
โโโ โ๏ธ BookReviewApp.Services/ # Business logic and services
โโโ ๐ BookReviewApp.Web/ # Web application and controllers
โโโ ๐งช BookReviewApp.Tests/ # Unit and integration tests
```
### ๐ง Technology Stack
**Backend**
- ASP.NET Core 6.0
- MongoDB.Driver (latest)
- Repository Pattern with MongoDB support
- Dependency Injection
- Clean Architecture principles
**Database**
- MongoDB (local and Atlas support)
- MongoDB Compass (GUI tool)
- Flexible schema design
- BSON document storage
**Frontend**
- Bootstrap 5
- JavaScript ES6+
- Chart.js for analytics
- Bootstrap Icons
- CSS3 with custom properties
**Development**
- Clean Architecture
- SOLID Principles
- Async/Await patterns
- Comprehensive error handling
- MongoDB best practices
---
## ๐ Quick Start
### Prerequisites
- [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet/6.0) or later
- [Visual Studio 2022](https://visualstudio.microsoft.com/) or [VS Code](https://code.visualstudio.com/)
- [MongoDB Community Server](https://www.mongodb.com/try/download/community) (for local development)
- [MongoDB Compass](https://www.mongodb.com/try/download/compass) (GUI tool)
### ๐ง Installation
1. **Clone the repository**
```bash
git clone https://github.com/nickimash/BookReviewApp.git
cd BookReviewApp
```
2. **Restore dependencies**
```bash
dotnet restore
```
3. **Setup MongoDB**
- **Local Setup**: Install MongoDB Community Server and start the service
- **Atlas Setup**: Follow the [MongoDB Setup Guide](MONGODB_SETUP.md) for cloud configuration
4. **Configure database connection**
- Edit `BookReviewApp.Web/appsettings.json`
- Set `UseAtlas: false` for local MongoDB
- Set `UseAtlas: true` for MongoDB Atlas
5. **Run the application**
```bash
cd BookReviewApp.Web
dotnet run
```
6. **Open in browser**
```
๐ https://localhost:7036
```
### ๐๏ธ Database Configuration
**Local MongoDB (Default)**
```json
{
"MongoDbSettings": {
"UseAtlas": false,
"LocalConnectionString": "mongodb://localhost:27017/BookReviewApp",
"DatabaseName": "BookReviewApp"
}
}
```
**MongoDB Atlas (Cloud)**
```json
{
"MongoDbSettings": {
"UseAtlas": true,
"ConnectionString": "mongodb+srv://username:password@cluster.mongodb.net/BookReviewApp",
"DatabaseName": "BookReviewApp"
}
}
```
---
## ๐ธ Application Preview
### ๐ Dashboard Overview
*Modern analytics dashboard with interactive charts and key metrics*
### ๐ Books Library
*Elegant book grid with advanced search and filtering capabilities*
### ๐ฅ Author Profiles
*Professional author management with rich profiles and photo support*
### โญ Review System
*Intuitive rating system with detailed feedback collection*
---
## ๐จ Key Highlights
### ๐ป Technical Excellence
- **Clean Architecture**: Proper separation of concerns with layered approach
- **MongoDB Integration**: Flexible NoSQL database with dual deployment options
- **Async Operations**: Non-blocking operations throughout the application
- **Robust Error Handling**: Comprehensive exception handling and logging
- **Input Validation**: Both client-side and server-side validation
- **Security Best Practices**: Anti-forgery tokens and input sanitization
### ๐ฏ User Experience
- **Intuitive Navigation**: Logical user flow and clear information architecture
- **Visual Feedback**: Loading states, success messages, and error notifications
- **Mobile-First Design**: Optimized for all screen sizes and touch interactions
- **Fast Performance**: Optimized database queries and efficient rendering
- **Accessibility**: WCAG guidelines compliance with semantic markup
### ๐ Data Management
- **Complete CRUD**: Full Create, Read, Update, Delete operations
- **Flexible Schema**: MongoDB document-based storage for easy schema evolution
- **Advanced Search**: Multi-criteria search with real-time results
- **Flexible Sorting**: Multiple sorting options across all data
- **Scalable Design**: Ready for pagination and advanced filtering
---
## ๐ ๏ธ Development
### ๐งช Running Tests
```bash
# Unit tests
dotnet test BookReviewApp.Tests/
# Integration tests
dotnet test BookReviewApp.IntegrationTests/
```
### ๐จ Customization
**Adding New Features**
1. Create domain model in `Domain` layer
2. Add repository interface and implementation
3. Implement service layer logic
4. Create controller and views
5. Update navigation and UI
**Styling Customization**
```css
:root {
--primary-color: #667eea;
--secondary-color: #764ba2;
--accent-color: #f093fb;
}
```
### ๐ Deployment Options
**Development (Local MongoDB)**
```bash
dotnet run --environment Development
```
**Production (MongoDB Atlas)**
```bash
dotnet publish -c Release -o ./publish
dotnet ./publish/BookReviewApp.Web.dll
```
**Docker Deployment**
```dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:6.0
COPY publish/ App/
WORKDIR /App
EXPOSE 80
ENTRYPOINT ["dotnet", "BookReviewApp.Web.dll"]
```
---
## ๐๏ธ Database
### MongoDB Configuration
- **Development**: Local MongoDB (Compass)
- **Production**: MongoDB Atlas (cloud)
- **Flexible Schema**: Document-based storage
- **Collections**: Books, Authors, Reviews, Users, Categories
### Setup Documentation
- **Primary**: [MongoDB Setup Guide](MONGODB_SETUP.md) - Complete setup instructions
- **Configuration**: `appsettings.json` - Database connection settings
### Migration Commands
```bash
# Seed data (if needed)
dotnet run --project BookReviewApp.Web --seed
# Test database connection
dotnet run --project BookReviewApp.Web --test-db
```
---
## ๐ Additional Resources
- [MongoDB Documentation](https://docs.mongodb.com/)
- [MongoDB Atlas Documentation](https://docs.atlas.mongodb.com/)
- [MongoDB .NET Driver](https://docs.mongodb.com/drivers/csharp/)
- [ASP.NET Core with MongoDB](https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mongo-app)
---
## ๐ค Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## ๐ค Author
**Nicolette Mashaba (nickimash)**
- GitHub: [@nickimash](https://github.com/nickimash)
- LinkedIn: [Nicolette Mashaba](https://www.linkedin.com/in/nicolette-mashaba/)
---
**Made with โค๏ธ by Nicolette Mashaba**