Skip to content

Logos-Payment-Solution/LaundryService

Repository files navigation

Pizza Bakery Hackathon Template

This is a template for a pizza bakery webshop hackathon project. The project follows a microservices architecture with Domain-Driven Design principles.

Project Structure

The solution consists of the following components:

Core Services (Pre-built)

  • Frontend: Blazor Server application for the web interface
  • Gateway: API Gateway for routing requests to microservices
  • Webhooks: Worker service for handling webhook events
  • Menu: Complete microservice for managing the pizza menu

Hackathon Services (To be built)

  • Orders: Service for handling pizza orders
  • Production: Service for managing pizza production
  • Delivery: Service for handling pizza delivery

Architecture

The project follows these architectural patterns:

  • Onion Architecture
  • Microservices
  • Gateway Pattern
  • Domain-Driven Design (DDD)

Service Structure

Each microservice follows this structure:

  • [ServiceName].Api: ASP.NET API (read-only)
  • [ServiceName].ApiClient: Auto-generated Swagger client
  • [ServiceName].Worker: ASP.NET Worker (write-only)
  • [ServiceName].Messages: Library for message contracts
  • [ServiceName].Core: Library for core business logic
  • [ServiceName].Infrastructure: Library for infrastructure concerns
  • [ServiceName].Domain: Library for domain models
  • [ServiceName].Migrations: Library for database migrations

Infrastructure

The project uses:

  • PostgreSQL for data storage
  • RabbitMQ for message brokering
  • MassTransit for message handling
  • Entity Framework Core for data access

Getting Started

  1. Clone the repository
  2. Install the required tools:
    • .NET 9.0 SDK
    • Docker Desktop (for PostgreSQL and RabbitMQ)
  3. Run the infrastructure:
    docker-compose up -d
  4. Build and run the solution:
    dotnet build
    dotnet run

Development Guidelines

  1. Follow DDD principles when designing domain models
  2. Use CQRS pattern for separating read and write operations
  3. Implement proper error handling and logging
  4. Write unit tests for core business logic
  5. Document API endpoints using Swagger

Contributing

  1. Create a feature branch for your changes
  2. Implement your changes following the architecture guidelines
  3. Submit a pull request for review

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors