# prathyushh/weatherapplication architecture

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

- Interactive diagram: https://gitdiagram.com/prathyushh/weatherapplication
- Repository: https://github.com/prathyushh/weatherapplication

## Overview

This appears to be a Spring application for authentication, city management, and weather lookup. The tree identifies API controllers, services, provider abstractions, repositories, and domain entities, but the README is empty and no source excerpts were supplied. The graph therefore maps the identifiable product areas without asserting call paths, storage technology, or external-service wiring that the available evidence cannot confirm.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_auth_controller["Auth controller"]
  node_city_controller["City controller"]
  node_weather_controller["Weather controller"]
end

subgraph group_identity["Identity and security"]
  node_auth_service["Auth service<br/>[AuthService.java]"]
  node_jwt_service["JWT service<br/>[JwtService.java]"]
  node_user_details["User details"]
  node_jwt_filter["JWT filter"]
  node_security_config["Security config"]
end

subgraph group_weather["Weather and location"]
  node_weather_service["Weather service"]
  node_weather_provider["Weather provider"]
  node_weather_provider_service["Weather provider service"]
  node_location_provider["Location provider"]
  node_location_provider_service["Location provider service"]
end

subgraph group_cities["City management"]
  node_city_service["City service<br/>[CityService.java]"]
end

subgraph group_data["Domain and persistence"]
  node_city_repository["City repository"]
  node_user_repository["User repository"]
  node_audit_service["Audit service<br/>[AuditService.java]"]
  node_audit_repository["Audit repository"]
  node_entities["Domain entities"]
end

node_user(("API user"))

click node_auth_controller "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/controller/AuthController.java"
click node_city_controller "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/controller/CityController.java"
click node_weather_controller "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/controller/WeatherController.java"
click node_auth_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/AuthService.java"
click node_jwt_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/JwtService.java"
click node_user_details "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/CustomUserDetailsService.java"
click node_jwt_filter "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/security/JwtAuthenticationFilter.java"
click node_security_config "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/config/SecurityConfig.java"
click node_weather_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/WeatherService.java"
click node_weather_provider "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/WeatherProvider.java"
click node_weather_provider_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/WeatherProviderService.java"
click node_location_provider "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/LocationProvider.java"
click node_location_provider_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/LocationProviderService.java"
click node_city_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/CityService.java"
click node_city_repository "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/repository/CityRepository.java"
click node_user_repository "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/repository/UserRepository.java"
click node_audit_service "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/AuditService.java"
click node_audit_repository "https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/repository/AuditRepository.java"
click node_entities "https://github.com/prathyushh/weatherapplication/tree/main/src/main/java/com/example/demo/entity"

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_auth_controller,node_city_controller,node_weather_controller,node_user toneBlue
class node_auth_service,node_jwt_service,node_user_details,node_jwt_filter,node_security_config toneAmber
class node_weather_service,node_weather_provider,node_weather_provider_service,node_location_provider,node_location_provider_service toneMint
class node_city_service toneRose
class node_city_repository,node_user_repository,node_audit_service,node_audit_repository,node_entities toneIndigo
```

## Components

### HTTP API

- [Auth controller](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/controller/AuthController.java): `src/main/java/com/example/demo/controller/AuthController.java`
- [City controller](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/controller/CityController.java): `src/main/java/com/example/demo/controller/CityController.java`
- [Weather controller](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/controller/WeatherController.java): `src/main/java/com/example/demo/controller/WeatherController.java`

### Identity and security

- [Auth service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/AuthService.java): `src/main/java/com/example/demo/service/AuthService.java`
- [JWT service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/JwtService.java): `src/main/java/com/example/demo/service/JwtService.java`
- [User details](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/CustomUserDetailsService.java): `src/main/java/com/example/demo/service/CustomUserDetailsService.java`
- [JWT filter](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/security/JwtAuthenticationFilter.java): `src/main/java/com/example/demo/security/JwtAuthenticationFilter.java`
- [Security config](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/config/SecurityConfig.java): `src/main/java/com/example/demo/config/SecurityConfig.java`

### Weather and location

- [Weather service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/WeatherService.java): `src/main/java/com/example/demo/service/WeatherService.java`
- [Weather provider](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/WeatherProvider.java): `src/main/java/com/example/demo/service/WeatherProvider.java`
- [Weather provider service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/WeatherProviderService.java): `src/main/java/com/example/demo/service/WeatherProviderService.java`
- [Location provider](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/LocationProvider.java): `src/main/java/com/example/demo/service/LocationProvider.java`
- [Location provider service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/LocationProviderService.java): `src/main/java/com/example/demo/service/LocationProviderService.java`

### City management

- [City service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/CityService.java): `src/main/java/com/example/demo/service/CityService.java`

### Domain and persistence

- [City repository](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/repository/CityRepository.java): `src/main/java/com/example/demo/repository/CityRepository.java`
- [User repository](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/repository/UserRepository.java): `src/main/java/com/example/demo/repository/UserRepository.java`
- [Audit service](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/service/AuditService.java): `src/main/java/com/example/demo/service/AuditService.java`
- [Audit repository](https://github.com/prathyushh/weatherapplication/blob/main/src/main/java/com/example/demo/repository/AuditRepository.java): `src/main/java/com/example/demo/repository/AuditRepository.java`
- [Domain entities](https://github.com/prathyushh/weatherapplication/tree/main/src/main/java/com/example/demo/entity): `src/main/java/com/example/demo/entity`

### Other components

- **API user**
