π¨ Original work by Nicolette Mashaba (nickimash)
All UI/UX, code, and design are handcrafted and proudly owned.
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.
- π 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
- ποΈ 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
- 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
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
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
- .NET 6.0 SDK or later
- Visual Studio 2022 or VS Code
- MongoDB Community Server (for local development)
- MongoDB Compass (GUI tool)
-
Clone the repository
git clone https://github.com/nickimash/BookReviewApp.git cd BookReviewApp -
Restore dependencies
dotnet restore
-
Setup MongoDB
- Local Setup: Install MongoDB Community Server and start the service
- Atlas Setup: Follow the MongoDB Setup Guide for cloud configuration
-
Configure database connection
- Edit
BookReviewApp.Web/appsettings.json - Set
UseAtlas: falsefor local MongoDB - Set
UseAtlas: truefor MongoDB Atlas
- Edit
-
Run the application
cd BookReviewApp.Web dotnet run -
Open in browser
π https://localhost:7036
Local MongoDB (Default)
{
"MongoDbSettings": {
"UseAtlas": false,
"LocalConnectionString": "mongodb://localhost:27017/BookReviewApp",
"DatabaseName": "BookReviewApp"
}
}MongoDB Atlas (Cloud)
{
"MongoDbSettings": {
"UseAtlas": true,
"ConnectionString": "mongodb+srv://username:[email protected]/BookReviewApp",
"DatabaseName": "BookReviewApp"
}
}Modern analytics dashboard with interactive charts and key metrics
Elegant book grid with advanced search and filtering capabilities
Professional author management with rich profiles and photo support
Intuitive rating system with detailed feedback collection
- 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
- 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
- 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
# Unit tests
dotnet test BookReviewApp.Tests/
# Integration tests
dotnet test BookReviewApp.IntegrationTests/Adding New Features
- Create domain model in
Domainlayer - Add repository interface and implementation
- Implement service layer logic
- Create controller and views
- Update navigation and UI
Styling Customization
:root {
--primary-color: #667eea;
--secondary-color: #764ba2;
--accent-color: #f093fb;
}Development (Local MongoDB)
dotnet run --environment DevelopmentProduction (MongoDB Atlas)
dotnet publish -c Release -o ./publish
dotnet ./publish/BookReviewApp.Web.dllDocker Deployment
FROM mcr.microsoft.com/dotnet/aspnet:6.0
COPY publish/ App/
WORKDIR /App
EXPOSE 80
ENTRYPOINT ["dotnet", "BookReviewApp.Web.dll"]- Development: Local MongoDB (Compass)
- Production: MongoDB Atlas (cloud)
- Flexible Schema: Document-based storage
- Collections: Books, Authors, Reviews, Users, Categories
- Primary: MongoDB Setup Guide - Complete setup instructions
- Configuration:
appsettings.json- Database connection settings
# Seed data (if needed)
dotnet run --project BookReviewApp.Web --seed
# Test database connection
dotnet run --project BookReviewApp.Web --test-db- 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
This project is licensed under the MIT License - see the LICENSE file for details.
Nicolette Mashaba (nickimash)
- GitHub: @nickimash
- LinkedIn: Nicolette Mashaba
Made with β€οΈ by Nicolette Mashaba