A modern, full-stack web application connecting customers with professional home service providers. Built with Clean Architecture principles using .NET 9.0 Web API and Angular 18.
- 🔍 Browse Services: Search and filter home services by category
- 👨🔧 Find Assemblers: View professional profiles with ratings and reviews
- 📅 Book Services: Easy calendar-based booking system
- ⭐ Rate & Review: Leave feedback for completed services
- 💬 Real-time Chat: Communicate with service providers
- 📱 Mobile Responsive: Works perfectly on all devices
- 👤 Professional Profiles: Create detailed service provider profiles
- 📊 Availability Management: Set working hours and availability
- 📋 Service Management: Add and manage offered services
- 📅 Booking Management: View and manage customer bookings
- 💰 Pricing Control: Set competitive service prices
- 📈 Performance Tracking: Monitor ratings and reviews
- 🏗️ Clean Architecture: Maintainable and scalable codebase
- 🔒 Secure Authentication: Safe user registration and login
- 📊 Comprehensive Data: Rich seed data for testing
- 🚀 High Performance: Optimized database queries and caching
- 📱 Responsive Design: Beautiful UI that works on all devices
- 🔄 Real-time Updates: Live notifications and chat
- .NET 9.0 - Latest .NET framework
- ASP.NET Core Web API - RESTful API development
- Entity Framework Core - Object-relational mapping
- SQL Server - Relational database
- Swagger/OpenAPI - API documentation
- Clean Architecture - Maintainable code structure
- Angular 18 - Modern web framework
- TypeScript - Type-safe JavaScript
- SCSS - Advanced CSS preprocessing
- RxJS - Reactive programming
- Angular Material - UI component library
- Responsive Design - Mobile-first approach
- Azure SQL Database - Cloud database hosting
- Azure App Service - Cloud application hosting
- GitHub - Version control and CI/CD
- Docker - Containerization support
git clone https://github.com/your-username/the-assemblers.git
cd the-assemblerscd AssemblersApi
dotnet restore
dotnet ef database update
dotnet runThe API will be available at:
- API: http://localhost:5161
- Swagger Documentation: http://localhost:5161/swagger
cd /Users/airm2/the-assemblers1
npm install
ng serveThe frontend will be available at:
- Application: http://localhost:4200
Open your browser and navigate to http://localhost:4200 to start using the application.
the-assemblers/
├── AssemblersApi/ # .NET Web API Backend
│ ├── Application/ # Application Layer
│ │ ├── DTOs/ # Data Transfer Objects
│ │ ├── Interfaces/ # Service Interfaces
│ │ └── Services/ # Application Services
│ ├── Domain/ # Domain Layer
│ │ ├── Entities/ # Domain Models
│ │ └── Interfaces/ # Repository Interfaces
│ ├── Infrastructure/ # Infrastructure Layer
│ │ └── Repositories/ # Data Access Implementations
│ ├── Data/ # Data Access Layer
│ ├── Controllers/ # API Controllers
│ └── Program.cs # Application Entry Point
├── src/ # Angular Frontend
│ ├── app/
│ │ ├── core/ # Core Services & Models
│ │ ├── features/ # Feature Modules
│ │ ├── shared/ # Shared Components
│ │ └── assets/ # Static Assets
│ └── environments/ # Environment Configurations
├── docs/ # Documentation
└── README.md # This file
The application uses a comprehensive database schema with the following entities:
- Users: Customer and assembler accounts
- Assemblers: Service provider profiles
- Categories: Service categories
- Services: Offered services
- Bookings: Service appointments
- Reviews: Customer feedback
- DayAvailabilities: Provider schedules
- ✅ Soft Delete: Non-destructive data removal
- ✅ Audit Trail: Automatic timestamp tracking
- ✅ Foreign Key Constraints: Data integrity
- ✅ Optimized Indexes: Fast query performance
- ✅ Seed Data: Comprehensive test data
- Users:
/api/users- User management - Assemblers:
/api/assemblers- Service provider profiles - Services:
/api/services- Available services - Bookings:
/api/bookings- Service appointments - Reviews:
/api/reviews- Customer feedback - Categories:
/api/categories- Service categories
- ✅ RESTful Design: Standard HTTP methods
- ✅ Comprehensive CRUD: Full data operations
- ✅ Search & Filter: Advanced querying
- ✅ Pagination: Efficient data loading
- ✅ Error Handling: Proper HTTP status codes
- ✅ Validation: Input validation and sanitization
- Mobile-First: Responsive design for all devices
- Accessibility: WCAG 2.1 compliance
- Performance: Fast loading and smooth interactions
- User Experience: Intuitive navigation and workflows
- Landing Page: Service discovery and search
- Service Listings: Filtered service browsing
- Provider Profiles: Detailed assembler information
- Booking System: Calendar-based appointment scheduling
- Review System: Rating and feedback management
- Chat Interface: Real-time communication
- Password Hashing: SHA256 secure password storage
- CORS Protection: Controlled cross-origin access
- Input Validation: Server-side data validation
- SQL Injection Prevention: Parameterized queries
- XSS Protection: Output encoding and sanitization
- HTTPS Support: Secure data transmission
- Database Indexing: Optimized query performance
- Lazy Loading: Efficient data loading strategies
- Caching: Reduced database load
- Compression: Minimized data transfer
- CDN Integration: Fast asset delivery
- Code Splitting: Optimized bundle sizes
- Unit Tests: Service and repository testing
- Integration Tests: API endpoint testing
- Database Tests: Migration and data integrity testing
- Component Tests: Angular component testing
- Service Tests: API integration testing
- E2E Tests: End-to-end user workflow testing
The application is configured for Azure deployment:
- Azure SQL Database: Cloud database hosting
- Azure App Service: Web application hosting
- GitHub Actions: Automated CI/CD pipeline
- Azure DevOps: Deployment management
- Docker Support: Containerized development
- Hot Reload: Fast development iteration
- Environment Configuration: Flexible settings management
- Application Insights: Performance monitoring
- Error Tracking: Comprehensive error logging
- Usage Analytics: User behavior tracking
- Performance Metrics: Response time monitoring
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Clean Architecture principles
- Write comprehensive tests
- Update documentation
- Follow coding standards
- Ensure mobile responsiveness
This project is licensed under the MIT License - see the LICENSE file for details.
- Clean Architecture principles by Robert C. Martin
- Angular team for the excellent framework
- Microsoft for .NET and Azure platform
- Community contributors and feedback
For support and questions:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: [email protected]
- Mobile App: React Native or Flutter
- Payment Integration: Stripe/PayPal
- Real-time Notifications: Push notifications
- Advanced Analytics: Business intelligence
- Multi-language Support: Internationalization
- AI Recommendations: Smart service matching
- Microservices: Service decomposition
- Event Sourcing: Advanced data patterns
- GraphQL: Flexible API queries
- WebSocket: Real-time communication
- Machine Learning: Predictive analytics
Built with ❤️ using Clean Architecture principles
The Assemblers - Connecting customers with professional home service providers