{"id":29040401,"url":"https://github.com/nickimash17/bookreviewapp","last_synced_at":"2026-04-02T02:02:10.713Z","repository":{"id":292513558,"uuid":"980611662","full_name":"NickiMash17/BookReviewApp","owner":"NickiMash17","description":"Advanced Book Review Application with ASP.NET Core and EF Core","archived":false,"fork":false,"pushed_at":"2025-08-16T17:59:30.000Z","size":1397,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-16T19:27:32.175Z","etag":null,"topics":["asp-net-core","aspnet-mvc","bootstrap","dotnet","efcore","entity-framework","mongodb","sql-server"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NickiMash17.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-09T12:17:36.000Z","updated_at":"2025-08-16T17:59:34.000Z","dependencies_parsed_at":"2025-08-16T19:11:56.585Z","dependency_job_id":"116f49b5-b7a6-449a-a657-590860a2b228","html_url":"https://github.com/NickiMash17/BookReviewApp","commit_stats":null,"previous_names":["nickimash17/bookreviewapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NickiMash17/BookReviewApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickiMash17%2FBookReviewApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickiMash17%2FBookReviewApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickiMash17%2FBookReviewApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickiMash17%2FBookReviewApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NickiMash17","download_url":"https://codeload.github.com/NickiMash17/BookReviewApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickiMash17%2FBookReviewApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","aspnet-mvc","bootstrap","dotnet","efcore","entity-framework","mongodb","sql-server"],"created_at":"2025-06-26T14:05:12.040Z","updated_at":"2026-04-02T02:02:10.702Z","avatar_url":"https://github.com/NickiMash17.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Book Review App\n\n\u003cdiv align=\"center\"\u003e\n\n![Original Work](https://img.shields.io/badge/Handcrafted%20by-Nicolette%20Mashaba-blueviolet?style=for-the-badge)\n![.NET](https://img.shields.io/badge/.NET-6.0-blue?style=for-the-badge\u0026logo=.net)\n![ASP.NET Core](https://img.shields.io/badge/ASP.NET%20Core-6.0-purple?style=for-the-badge\u0026logo=aspnet)\n![MongoDB](https://img.shields.io/badge/MongoDB-5.0-green?style=for-the-badge\u0026logo=mongodb)\n![Bootstrap](https://img.shields.io/badge/Bootstrap-5.0-blue?style=for-the-badge\u0026logo=bootstrap)\n![License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)\n\n\u003c/div\u003e\n\n\u003e **🎨 Original work by Nicolette Mashaba (nickimash)**  \n\u003e *All UI/UX, code, and design are handcrafted and proudly owned.*\n\n## 🌟 About\n\nA 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.\n\n**Perfect for demonstrating full-stack development skills to potential employers.**\n\n---\n\n## 🎯 Features\n\n### ✨ Core Functionality\n- **📖 Book Management**: Complete CRUD operations with cover image support\n- **👨‍💼 Author Management**: Detailed author profiles with biographies and photos\n- **⭐ Review System**: Interactive 5-star rating system with detailed comments\n- **🔍 Smart Search**: Real-time search and filtering across all content\n- **📱 Responsive Design**: Mobile-first design that works seamlessly on all devices\n\n### 🚀 Advanced Features\n- **🗄️ Dual Database Support**: MongoDB Atlas (cloud) and local MongoDB (Compass)\n- **📊 Analytics Dashboard**: Interactive charts and comprehensive statistics\n- **⚡ Real-time Search**: Instant search results with advanced filtering\n- **🎨 Visual Ratings**: Beautiful star rating displays with average calculations\n- **🖼️ Image Management**: Robust image handling with automatic fallbacks\n- **🔗 Data Relationships**: Sophisticated database relationships and optimized queries\n\n### 🎨 UI/UX Excellence\n- **Modern Aesthetics**: Clean, professional interface with smooth gradients and animations\n- **Interactive Elements**: Engaging hover effects, transitions, and overlays\n- **Consistent Iconography**: Bootstrap Icons throughout for visual consistency\n- **Accessibility First**: WCAG compliant with semantic HTML and ARIA labels\n- **Performance Optimized**: Fast loading with proper error handling and user feedback\n\n---\n\n## 🏗️ Architecture\n\n### 📁 Project Structure\n```\nBookReviewApp/\n├── 📦 BookReviewApp.Domain/          # Domain models and interfaces\n├── 🗄️ BookReviewApp.Data/           # Data access, repositories, and MongoDB context\n├── ⚙️ BookReviewApp.Services/        # Business logic and services\n├── 🌐 BookReviewApp.Web/            # Web application and controllers\n└── 🧪 BookReviewApp.Tests/          # Unit and integration tests\n```\n\n### 🔧 Technology Stack\n\n**Backend**\n- ASP.NET Core 6.0\n- MongoDB.Driver (latest)\n- Repository Pattern with MongoDB support\n- Dependency Injection\n- Clean Architecture principles\n\n**Database**\n- MongoDB (local and Atlas support)\n- MongoDB Compass (GUI tool)\n- Flexible schema design\n- BSON document storage\n\n**Frontend**\n- Bootstrap 5\n- JavaScript ES6+\n- Chart.js for analytics\n- Bootstrap Icons\n- CSS3 with custom properties\n\n**Development**\n- Clean Architecture\n- SOLID Principles\n- Async/Await patterns\n- Comprehensive error handling\n- MongoDB best practices\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n- [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet/6.0) or later\n- [Visual Studio 2022](https://visualstudio.microsoft.com/) or [VS Code](https://code.visualstudio.com/)\n- [MongoDB Community Server](https://www.mongodb.com/try/download/community) (for local development)\n- [MongoDB Compass](https://www.mongodb.com/try/download/compass) (GUI tool)\n\n### 🔧 Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/nickimash/BookReviewApp.git\n   cd BookReviewApp\n   ```\n\n2. **Restore dependencies**\n   ```bash\n   dotnet restore\n   ```\n\n3. **Setup MongoDB**\n   - **Local Setup**: Install MongoDB Community Server and start the service\n   - **Atlas Setup**: Follow the [MongoDB Setup Guide](MONGODB_SETUP.md) for cloud configuration\n\n4. **Configure database connection**\n   - Edit `BookReviewApp.Web/appsettings.json`\n   - Set `UseAtlas: false` for local MongoDB\n   - Set `UseAtlas: true` for MongoDB Atlas\n\n5. **Run the application**\n   ```bash\n   cd BookReviewApp.Web\n   dotnet run\n   ```\n\n6. **Open in browser**\n   ```\n   🌐 https://localhost:7036\n   ```\n\n### 🗄️ Database Configuration\n\n**Local MongoDB (Default)**\n```json\n{\n  \"MongoDbSettings\": {\n    \"UseAtlas\": false,\n    \"LocalConnectionString\": \"mongodb://localhost:27017/BookReviewApp\",\n    \"DatabaseName\": \"BookReviewApp\"\n  }\n}\n```\n\n**MongoDB Atlas (Cloud)**\n```json\n{\n  \"MongoDbSettings\": {\n    \"UseAtlas\": true,\n    \"ConnectionString\": \"mongodb+srv://username:password@cluster.mongodb.net/BookReviewApp\",\n    \"DatabaseName\": \"BookReviewApp\"\n  }\n}\n```\n\n---\n\n## 📸 Application Preview\n\n### 🏠 Dashboard Overview\n*Modern analytics dashboard with interactive charts and key metrics*\n\n### 📚 Books Library\n*Elegant book grid with advanced search and filtering capabilities*\n\n### 👥 Author Profiles\n*Professional author management with rich profiles and photo support*\n\n### ⭐ Review System\n*Intuitive rating system with detailed feedback collection*\n\n---\n\n## 🎨 Key Highlights\n\n### 💻 Technical Excellence\n- **Clean Architecture**: Proper separation of concerns with layered approach\n- **MongoDB Integration**: Flexible NoSQL database with dual deployment options\n- **Async Operations**: Non-blocking operations throughout the application\n- **Robust Error Handling**: Comprehensive exception handling and logging\n- **Input Validation**: Both client-side and server-side validation\n- **Security Best Practices**: Anti-forgery tokens and input sanitization\n\n### 🎯 User Experience\n- **Intuitive Navigation**: Logical user flow and clear information architecture\n- **Visual Feedback**: Loading states, success messages, and error notifications\n- **Mobile-First Design**: Optimized for all screen sizes and touch interactions\n- **Fast Performance**: Optimized database queries and efficient rendering\n- **Accessibility**: WCAG guidelines compliance with semantic markup\n\n### 📊 Data Management\n- **Complete CRUD**: Full Create, Read, Update, Delete operations\n- **Flexible Schema**: MongoDB document-based storage for easy schema evolution\n- **Advanced Search**: Multi-criteria search with real-time results\n- **Flexible Sorting**: Multiple sorting options across all data\n- **Scalable Design**: Ready for pagination and advanced filtering\n\n---\n\n## 🛠️ Development\n\n### 🧪 Running Tests\n```bash\n# Unit tests\ndotnet test BookReviewApp.Tests/\n\n# Integration tests\ndotnet test BookReviewApp.IntegrationTests/\n```\n\n### 🎨 Customization\n\n**Adding New Features**\n1. Create domain model in `Domain` layer\n2. Add repository interface and implementation\n3. Implement service layer logic\n4. Create controller and views\n5. Update navigation and UI\n\n**Styling Customization**\n```css\n:root {\n  --primary-color: #667eea;\n  --secondary-color: #764ba2;\n  --accent-color: #f093fb;\n}\n```\n\n### 🚀 Deployment Options\n\n**Development (Local MongoDB)**\n```bash\ndotnet run --environment Development\n```\n\n**Production (MongoDB Atlas)**\n```bash\ndotnet publish -c Release -o ./publish\ndotnet ./publish/BookReviewApp.Web.dll\n```\n\n**Docker Deployment**\n```dockerfile\nFROM mcr.microsoft.com/dotnet/aspnet:6.0\nCOPY publish/ App/\nWORKDIR /App\nEXPOSE 80\nENTRYPOINT [\"dotnet\", \"BookReviewApp.Web.dll\"]\n```\n\n---\n\n## 🗄️ Database\n\n### MongoDB Configuration\n- **Development**: Local MongoDB (Compass)\n- **Production**: MongoDB Atlas (cloud)\n- **Flexible Schema**: Document-based storage\n- **Collections**: Books, Authors, Reviews, Users, Categories\n\n### Setup Documentation\n- **Primary**: [MongoDB Setup Guide](MONGODB_SETUP.md) - Complete setup instructions\n- **Configuration**: `appsettings.json` - Database connection settings\n\n### Migration Commands\n```bash\n# Seed data (if needed)\ndotnet run --project BookReviewApp.Web --seed\n\n# Test database connection\ndotnet run --project BookReviewApp.Web --test-db\n```\n\n---\n\n## 📚 Additional Resources\n\n- [MongoDB Documentation](https://docs.mongodb.com/)\n- [MongoDB Atlas Documentation](https://docs.atlas.mongodb.com/)\n- [MongoDB .NET Driver](https://docs.mongodb.com/drivers/csharp/)\n- [ASP.NET Core with MongoDB](https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mongo-app)\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 👤 Author\n\n**Nicolette Mashaba (nickimash)**\n- GitHub: [@nickimash](https://github.com/nickimash)\n- LinkedIn: [Nicolette Mashaba](https://www.linkedin.com/in/nicolette-mashaba/)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Made with ❤️ by Nicolette Mashaba**\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickimash17%2Fbookreviewapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickimash17%2Fbookreviewapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickimash17%2Fbookreviewapp/lists"}