Complete E-Commerce application to rent products (toys) as well as manage the logistics of delivering and picking up the products (toys). Multi-tenanted.
This is a monorepo containing:
- Angular Frontend (
src/KidsToyHive..App/projects/kids-toy-hive) - Customer-facing web application - .NET Backend (
src/KidsToyHive.Api) - RESTful API - Core Domain (
src/KidsToyHive.Core) - Business logic and domain models - Infrastructure (
src/KidsToyHive.Infrastructure) - Data access and external services - Domain (
src/KidsToyHive.Domain) - Domain entities
- Angular (Standalone Components)
- Angular Material
- TypeScript
- SCSS
- RxJS
-
Navigate to the Angular app directory:
cd src/KidsToyHive..App -
Install dependencies:
npm install
-
Start the development server:
ng serve kids-toy-hive
-
Open your browser to
http://localhost:4200
ng build kids-toy-hive --configuration=production- Product browsing and rental
- Customer registration and authentication
- Booking management with date/time selection
- Payment processing
- Profile management
- Responsive design for mobile and desktop
- ASP.NET Core
- Entity Framework Core
- MediatR (CQRS pattern)
- SQL Server
-
Navigate to the API directory:
cd src/KidsToyHive.Api -
Update database connection string in
appsettings.Development.json -
Run the API:
dotnet run
Reset database:
.\resetdb.ps1- Frontend tests use Jest
- Backend tests use xUnit
Run frontend tests:
cd src/KidsToyHive..App
ng test kids-toy-hiveRun backend tests:
dotnet testThe application follows Clean Architecture principles with clear separation of concerns:
- Presentation Layer: Angular SPA
- Application Layer: API Controllers, MediatR Handlers
- Domain Layer: Business logic, entities, and domain services
- Infrastructure Layer: Data persistence, external services
Licensed under the MIT License. See LICENSE file for details.