# jesusho22/stockia-platform-os architecture

> Architecture diagram of the GitHub repository jesusho22/stockia-platform-os, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jesusho22/stockia-platform-os
- Repository: https://github.com/jesusho22/stockia-platform-os

## Overview

StockIA is a restaurant inventory and demand-forecasting REST API. Its main workflow is restaurant/team access, managing supply lots and recipes, recording sales, then using forecasts and alerting to support operational decisions; dashboard queries aggregate those results. The README describes the bounded contexts and their ACL/event boundaries, while sampled code directly verifies the dashboard’s calls to stock, sales, alerts, and forecasting facades and its weekly-savings calculation. Most other context internals were not sampled, so their internal call paths are not asserted here.

Main entry points: [`src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java) (Dashboard composition), [`src/main/java/com/databit/stockia/platform/recipesmanagement/interfaces/rest/RecipesController.java`](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/interfaces/rest/RecipesController.java) (Recipes and sales), [`src/main/java/com/databit/stockia/platform/mlrecommendations/interfaces/rest/DemandForecastsController.java`](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/interfaces/rest/DemandForecastsController.java) (Forecasts and recommendations), [`src/main/java/com/databit/stockia/platform/notificationsmessaging/interfaces/rest/AlertsController.java`](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/notificationsmessaging/interfaces/rest/AlertsController.java) (Alerts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and setup"]
  node_restaurant_api["Restaurant setup"]
  node_iam_api["Identity and roles"]
  node_user_model["User accounts<br/>[User.java]"]
  node_subscription_api["Plans and billing"]
end

subgraph group_operations["Restaurant operations"]
  node_stock_api["Inventory lots"]
  node_stock_model["Stock allocation"]
  node_recipe_api["Recipes and sales"]
  node_recipe_model["Recipe model<br/>[Recipe.java]"]
  node_sale_model["Sale model<br/>[Sale.java]"]
end

subgraph group_intelligence["Forecasting and advice"]
  node_ml_api["Forecasts and recommendations"]
  node_forecast_model["Demand forecast"]
  node_recommendation_model["Purchase and menu advice"]
  node_onnx["ONNX demand model"]
  node_weather["Weather forecast"]
end

subgraph group_insights["Alerts and analytics"]
  node_alerts_api["Alerts"]
  node_alert_model["Alert policy and state<br/>[Alert.java]"]
  node_dashboard_api["Dashboard"]
  node_dashboard_service["Dashboard composition"]
  node_savings_calculator["Weekly savings"]
  node_dashboard_summary["Dashboard KPIs"]
  node_weekly_savings["Savings results<br/>[WeeklySavings.java]"]
end

subgraph group_platform["Shared platform"]
  node_shared["Shared kernel"]
end

node_restaurant_user(("Restaurant team"))
node_weather_service["Open-Meteo"]

node_restaurant_user -->|"registers restaurant"| node_restaurant_api
node_restaurant_user -->|"signs in"| node_iam_api
node_restaurant_user -->|"manages subscription"| node_subscription_api
node_restaurant_user -->|"manages stock"| node_stock_api
node_restaurant_user -->|"records sales"| node_recipe_api
node_restaurant_user -->|"requests forecasts"| node_ml_api
node_restaurant_user -->|"manages alerts"| node_alerts_api
node_restaurant_user -->|"views metrics"| node_dashboard_api
node_iam_api -.->|"authenticates users"| node_user_model
node_recipe_api -.->|"manages recipes"| node_recipe_model
node_recipe_api -.->|"records sales"| node_sale_model
node_ml_api -.->|"serves forecasts"| node_forecast_model
node_ml_api -.->|"serves recommendations"| node_recommendation_model
node_forecast_model -.->|"uses model"| node_onnx
node_weather -.->|"fetches forecasts"| node_weather_service
node_alerts_api -.->|"manages alerts"| node_alert_model
node_dashboard_api -.->|"queries dashboard"| node_dashboard_service
node_dashboard_service -->|"reads inventory"| node_stock_api
node_dashboard_service -->|"reads sales"| node_recipe_api
node_dashboard_service -->|"counts pending alerts"| node_alerts_api
node_dashboard_service -->|"reads latest forecast"| node_ml_api
node_dashboard_service -->|"builds summary"| node_dashboard_summary
node_dashboard_service -->|"calculates savings"| node_savings_calculator
node_dashboard_service -->|"returns savings"| node_weekly_savings

click node_restaurant_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/restaurantregistration/interfaces/rest/RestaurantRegistrationsController.java"
click node_iam_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/iam/interfaces/rest/AuthenticationController.java"
click node_user_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/iam/domain/model/aggregates/User.java"
click node_subscription_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/subscriptionpayments/interfaces/rest/SubscriptionsController.java"
click node_stock_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/stockmanagement/interfaces/rest/InventoryItemsController.java"
click node_stock_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/stockmanagement/domain/services/StockAllocationService.java"
click node_recipe_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/interfaces/rest/RecipesController.java"
click node_recipe_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/domain/model/aggregates/Recipe.java"
click node_sale_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/domain/model/aggregates/Sale.java"
click node_ml_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/interfaces/rest/DemandForecastsController.java"
click node_forecast_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/domain/model/aggregates/DemandForecast.java"
click node_recommendation_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/domain/model/aggregates/Recommendation.java"
click node_onnx "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/infrastructure/machinelearning/OnnxDemandModel.java"
click node_weather "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/infrastructure/weather/OpenMeteoWeatherService.java"
click node_alerts_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/notificationsmessaging/interfaces/rest/AlertsController.java"
click node_alert_model "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/notificationsmessaging/domain/model/aggregates/Alert.java"
click node_dashboard_api "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/interfaces/rest/DashboardController.java"
click node_dashboard_service "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java"
click node_savings_calculator "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/services/WeeklySavingsCalculator.java"
click node_dashboard_summary "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/model/valueobjects/DashboardSummary.java"
click node_weekly_savings "https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/model/valueobjects/WeeklySavings.java"
click node_shared "https://github.com/jesusho22/stockia-platform-os/tree/develop/src/main/java/com/databit/stockia/platform/shared"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_restaurant_api,node_iam_api,node_user_model,node_subscription_api toneBlue
class node_stock_api,node_stock_model,node_recipe_api,node_recipe_model,node_sale_model toneAmber
class node_ml_api,node_forecast_model,node_recommendation_model,node_onnx,node_weather toneMint
class node_alerts_api,node_alert_model,node_dashboard_api,node_dashboard_service,node_savings_calculator,node_dashboard_summary,node_weekly_savings toneRose
class node_shared,node_restaurant_user,node_weather_service toneIndigo
```

## Components

### Identity and setup

- [Restaurant setup](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/restaurantregistration/interfaces/rest/RestaurantRegistrationsController.java): `src/main/java/com/databit/stockia/platform/restaurantregistration/interfaces/rest/RestaurantRegistrationsController.java`
- [Identity and roles](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/iam/interfaces/rest/AuthenticationController.java): `src/main/java/com/databit/stockia/platform/iam/interfaces/rest/AuthenticationController.java`
- [User accounts](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/iam/domain/model/aggregates/User.java): `src/main/java/com/databit/stockia/platform/iam/domain/model/aggregates/User.java`
- [Plans and billing](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/subscriptionpayments/interfaces/rest/SubscriptionsController.java): `src/main/java/com/databit/stockia/platform/subscriptionpayments/interfaces/rest/SubscriptionsController.java`

### Restaurant operations

- [Inventory lots](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/stockmanagement/interfaces/rest/InventoryItemsController.java): `src/main/java/com/databit/stockia/platform/stockmanagement/interfaces/rest/InventoryItemsController.java`
- [Stock allocation](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/stockmanagement/domain/services/StockAllocationService.java): `src/main/java/com/databit/stockia/platform/stockmanagement/domain/services/StockAllocationService.java`
- [Recipes and sales](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/interfaces/rest/RecipesController.java): `src/main/java/com/databit/stockia/platform/recipesmanagement/interfaces/rest/RecipesController.java`
- [Recipe model](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/domain/model/aggregates/Recipe.java): `src/main/java/com/databit/stockia/platform/recipesmanagement/domain/model/aggregates/Recipe.java`
- [Sale model](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/recipesmanagement/domain/model/aggregates/Sale.java): `src/main/java/com/databit/stockia/platform/recipesmanagement/domain/model/aggregates/Sale.java`

### Forecasting and advice

- [Forecasts and recommendations](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/interfaces/rest/DemandForecastsController.java): `src/main/java/com/databit/stockia/platform/mlrecommendations/interfaces/rest/DemandForecastsController.java`
- [Demand forecast](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/domain/model/aggregates/DemandForecast.java): `src/main/java/com/databit/stockia/platform/mlrecommendations/domain/model/aggregates/DemandForecast.java`
- [Purchase and menu advice](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/domain/model/aggregates/Recommendation.java): `src/main/java/com/databit/stockia/platform/mlrecommendations/domain/model/aggregates/Recommendation.java`
- [ONNX demand model](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/infrastructure/machinelearning/OnnxDemandModel.java): `src/main/java/com/databit/stockia/platform/mlrecommendations/infrastructure/machinelearning/OnnxDemandModel.java`
- [Weather forecast](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/mlrecommendations/infrastructure/weather/OpenMeteoWeatherService.java): `src/main/java/com/databit/stockia/platform/mlrecommendations/infrastructure/weather/OpenMeteoWeatherService.java`

### Alerts and analytics

- [Alerts](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/notificationsmessaging/interfaces/rest/AlertsController.java): `src/main/java/com/databit/stockia/platform/notificationsmessaging/interfaces/rest/AlertsController.java`
- [Alert policy and state](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/notificationsmessaging/domain/model/aggregates/Alert.java): `src/main/java/com/databit/stockia/platform/notificationsmessaging/domain/model/aggregates/Alert.java`
- [Dashboard](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/interfaces/rest/DashboardController.java): `src/main/java/com/databit/stockia/platform/analyticsdashboard/interfaces/rest/DashboardController.java`
- [Dashboard composition](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java): `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`
- [Weekly savings](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/services/WeeklySavingsCalculator.java): `src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/services/WeeklySavingsCalculator.java`
- [Dashboard KPIs](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/model/valueobjects/DashboardSummary.java): `src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/model/valueobjects/DashboardSummary.java`
- [Savings results](https://github.com/jesusho22/stockia-platform-os/blob/develop/src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/model/valueobjects/WeeklySavings.java): `src/main/java/com/databit/stockia/platform/analyticsdashboard/domain/model/valueobjects/WeeklySavings.java`

### Shared platform

- [Shared kernel](https://github.com/jesusho22/stockia-platform-os/tree/develop/src/main/java/com/databit/stockia/platform/shared): `src/main/java/com/databit/stockia/platform/shared`

### Other components

- **Restaurant team**
- **Open-Meteo**

## Connections

- Restaurant team → Restaurant setup: registers restaurant
- Restaurant team → Identity and roles: signs in
- Restaurant team → Plans and billing: manages subscription
- Restaurant team → Inventory lots: manages stock
- Restaurant team → Recipes and sales: records sales
- Restaurant team → Forecasts and recommendations: requests forecasts
- Restaurant team → Alerts: manages alerts
- Restaurant team → Dashboard: views metrics
- Identity and roles → User accounts: authenticates users
- Recipes and sales → Recipe model: manages recipes
- Recipes and sales → Sale model: records sales
- Forecasts and recommendations → Demand forecast: serves forecasts
- Forecasts and recommendations → Purchase and menu advice: serves recommendations
- Demand forecast → ONNX demand model: uses model
- Weather forecast → Open-Meteo: fetches forecasts
- Alerts → Alert policy and state: manages alerts
- Dashboard → Dashboard composition: queries dashboard
- Dashboard composition → Inventory lots: reads inventory (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
- Dashboard composition → Recipes and sales: reads sales (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
- Dashboard composition → Alerts: counts pending alerts (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
- Dashboard composition → Forecasts and recommendations: reads latest forecast (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
- Dashboard composition → Dashboard KPIs: builds summary (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
- Dashboard composition → Weekly savings: calculates savings (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
- Dashboard composition → Savings results: returns savings (evidence: `src/main/java/com/databit/stockia/platform/analyticsdashboard/application/internal/queryservices/DashboardQueryServiceImpl.java`)
