How toshmatovdeveloper/geodelivery works
GeoDelivery is a .NET modular-monolith food-delivery backend. The visible customer-facing workflow is HTTP requests for restaurant, category, and dish management or browsing, routed through controllers and MediatR into Catalog application workflows and, where sampled, Catalog persistence. The tree also documents authentication and caching; their implementation wiring is only partly visible, so those branches are shown conservatively. The README describes PostgreSQL/EF Core, but the sampled source does not expose database configuration details.
Main entry points: Program.cs Web startup · CategoriesController.cs Category API · DishesControllers.cs Dish API · CatalogDbContext.cs Catalog EF context
Components 21
Web API
- Web startup
GeoDelivery/Web/Program.cs - Restaurant API
GeoDelivery/Catalog/Controllers/RestaurantsController.cs - Category API
GeoDelivery/Catalog/Controllers/CategoriesController.cs - Dish API
GeoDelivery/Catalog/Controllers/DishesControllers.cs - MediatR dispatcher
- Exception handlers
GeoDelivery/Web/Middlewares/Exceptions
Catalog
- Restaurant workflows
GeoDelivery/Catalog/Application/Features/Restaurant - Category workflows
GeoDelivery/Catalog/Application/Features/Category - Dish workflows
GeoDelivery/Catalog/Application/Features/Dish - Catalog entities and DTOs
GeoDelivery/Catalog/Domain - Request validation
GeoDelivery/Catalog/Application/Validation - Query cache behavior
GeoDelivery/Catalog/Application/Caching/CachingBehavior.cs
Authentication
- User registration
GeoDelivery/Auth/Application/Features/UserRegisterCommand.cs - Token provider
GeoDelivery/Auth/Application/Features/TokenProvider.cs - User and roles
GeoDelivery/Auth/Domain
Persistence and cache
- Catalog EF context
GeoDelivery/Catalog/Infrastructure/CatalogDbContext.cs - Catalog database
- Auth EF context
GeoDelivery/Auth/Infrastructure/AuthDbContext.cs - Redis cache service
GeoDelivery/Catalog/Infrastructure/Caching/RedisCacheService.cs
Other components
- API client
- Redis
Connections 20
- API client → Restaurant API: sends requests
- API client → Category API: sends requests
- API client → Dish API: sends requests
- Web startup → Restaurant API: maps controllers
- Web startup → Category API: maps controllers
- Web startup → Dish API: maps controllers
- Web startup → Exception handlers: configures handling
- Restaurant API → MediatR dispatcher: sends queries
- Category API → MediatR dispatcher: sends commands
- Category API → MediatR dispatcher: sends queries
- Dish API → MediatR dispatcher: sends commands
- Dish API → MediatR dispatcher: sends queries
- MediatR dispatcher → Restaurant workflows: dispatches requests
- MediatR dispatcher → Category workflows: dispatches requests
- MediatR dispatcher → Dish workflows: dispatches requests
- Restaurant workflows → Catalog EF context: queries data
- Category workflows → Catalog EF context: queries data
- Dish workflows → Catalog EF context: queries data
- Catalog EF context → Catalog database: persists entities
- Redis cache service → Redis: reads and writes