# salmanyuris/aplikasi-back-end-with-google-cloud architecture

> Architecture diagram of the GitHub repository salmanyuris/aplikasi-back-end-with-google-cloud, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/salmanyuris/aplikasi-back-end-with-google-cloud
- Repository: https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud

## Overview

SAHASTA is an Express REST API for user access and profiles, child records, growth tracking, and food-nutrition scans. The main workflow is an API client request entering the server, being dispatched through feature routes to a controller, and receiving a JSON result. Child records and growth history share in-memory state; controllers use calculator utilities for age and BMI. Nutrition scans accept an optional image or food name and select sample nutrition data. The shown controllers use in-memory/sample data rather than a persistent database or actual image-analysis integration; unsampled details are not inferred.

Main entry points: [`src/server.js`](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/server.js) (Express Server), [`src/controllers/growthController.js`](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/growthController.js) (Growth History), [`src/controllers/babyController.js`](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/babyController.js) (Baby Records), [`src/routes/authRoutes.js`](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/authRoutes.js) (Auth Routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API Entry"]
  node_server["Express Server<br/>[server.js]"]
end

subgraph group_identity["Identity"]
  node_auth_routes["Auth Routes<br/>[authRoutes.js]"]
  node_auth_controller["Auth &amp; Profile<br/>[authController.js]"]
  node_users_store[("User Memory<br/>[authController.js]")]
end

subgraph group_child["Child Health"]
  node_baby_routes["Baby Routes<br/>[babyRoutes.js]"]
  node_baby_controller["Baby Records<br/>[babyController.js]"]
  node_baby_state[("Baby &amp; Growth State<br/>[babyController.js]")]
  node_growth_routes["Growth Routes<br/>[growthRoutes.js]"]
  node_growth_controller["Growth History"]
  node_calculator["Age &amp; BMI<br/>[calculator.js]"]
end

subgraph group_nutrition["Nutrition Scan"]
  node_nutrition_routes["Nutrition Routes<br/>[nutritionRoutes.js]"]
  node_nutrition_controller["Nutrition Scan"]
end

node_client(("API Client"))

node_client -->|"sends request"| node_server
node_server -->|"mounts auth"| node_auth_routes
node_server -->|"mounts babies"| node_baby_routes
node_server -->|"mounts growth"| node_growth_routes
node_server -->|"mounts nutrition"| node_nutrition_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_auth_controller -->|"reads and writes"| node_users_store
node_baby_routes -->|"dispatches"| node_baby_controller
node_baby_controller -->|"reads and writes"| node_baby_state
node_baby_controller -->|"calculates age and BMI"| node_calculator
node_growth_routes -->|"dispatches"| node_growth_controller
node_growth_controller -->|"reads and writes"| node_baby_state
node_growth_controller -->|"imports shared state"| node_baby_controller
node_growth_controller -->|"calculates age and BMI"| node_calculator
node_nutrition_routes -->|"parses image and dispatches"| node_nutrition_controller

click node_server "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/server.js"
click node_auth_routes "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/authRoutes.js"
click node_auth_controller "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/authController.js"
click node_users_store "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/authController.js"
click node_baby_routes "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/babyRoutes.js"
click node_baby_controller "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/babyController.js"
click node_baby_state "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/babyController.js"
click node_growth_routes "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/growthRoutes.js"
click node_growth_controller "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/growthController.js"
click node_calculator "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/utils/calculator.js"
click node_nutrition_routes "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/nutritionRoutes.js"
click node_nutrition_controller "https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/nutritionController.js"

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_server,node_client toneBlue
class node_auth_routes,node_auth_controller,node_users_store toneAmber
class node_baby_routes,node_baby_controller,node_baby_state,node_growth_routes,node_growth_controller,node_calculator toneMint
class node_nutrition_routes,node_nutrition_controller toneRose
```

## Components

### API Entry

- [Express Server](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/server.js): `src/server.js`

### Identity

- [Auth Routes](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/authRoutes.js): `src/routes/authRoutes.js`
- [Auth & Profile](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/authController.js): `src/controllers/authController.js`
- [User Memory](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/authController.js): `src/controllers/authController.js`

### Child Health

- [Baby Routes](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/babyRoutes.js): `src/routes/babyRoutes.js`
- [Baby Records](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/babyController.js): `src/controllers/babyController.js`
- [Baby & Growth State](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/babyController.js): `src/controllers/babyController.js`
- [Growth Routes](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/growthRoutes.js): `src/routes/growthRoutes.js`
- [Growth History](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/growthController.js): `src/controllers/growthController.js`
- [Age & BMI](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/utils/calculator.js): `src/utils/calculator.js`

### Nutrition Scan

- [Nutrition Routes](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/routes/nutritionRoutes.js): `src/routes/nutritionRoutes.js`
- [Nutrition Scan](https://github.com/salmanyuris/aplikasi-back-end-with-google-cloud/blob/main/src/controllers/nutritionController.js): `src/controllers/nutritionController.js`

### Other components

- **API Client**

## Connections

- API Client → Express Server: sends request
- Express Server → Auth Routes: mounts auth
- Express Server → Baby Routes: mounts babies
- Express Server → Growth Routes: mounts growth
- Express Server → Nutrition Routes: mounts nutrition
- Auth Routes → Auth & Profile: dispatches
- Auth & Profile → User Memory: reads and writes
- Baby Routes → Baby Records: dispatches
- Baby Records → Baby & Growth State: reads and writes
- Baby Records → Age & BMI: calculates age and BMI
- Growth Routes → Growth History: dispatches
- Growth History → Baby & Growth State: reads and writes
- Growth History → Baby Records: imports shared state
- Growth History → Age & BMI: calculates age and BMI
- Nutrition Routes → Nutrition Scan: parses image and dispatches
