How mariiakolisnykshi2025-pixel/farmapp works
This is a Spring Boot REST API for managing farm, field, and storage records, transferring workers between records, and calculating net profit. Requests enter through the type-parameterized controller and are dispatched by the Facade to the matching repository or transfer service. JPA repositories persist the domain entities in H2; the entities provide profit and cost behavior. A statistics-printing interface is also present, but the sampled code does not show it wired into the API. The README is empty, and unsampled entity/repository details are inferred only from the tree and sampled code.
Main entry points: Facade.java Facade · TransferService.java Worker transfer · TypeController.java Type controller · FarmRepository.java Farm repository
Components 15
REST API
- Type controller
src/main/java/Controller/TypeController.java - Spring Boot app
src/main/java/Main.java
Application Services
- Facade
src/main/java/Service/Facade.java - Worker transfer
src/main/java/Service/TransferService.java - Statistics printing
src/main/java/Service/StatisticsFunctions.java
Farm Domain
- Shared type model
src/main/java/Entities/Type.java - Farm
src/main/java/Entities/Farm.java - Field
src/main/java/Entities/Field.java - Storage
src/main/java/Entities/Storage.java
Persistence
- Farm repository
src/main/java/Repository/FarmRepository.java - Field repository
src/main/java/Repository/FieldRepository.java - Storage repository
src/main/java/Repository/StorageRepository.java - Data source config
src/main/java/Config/AppConfig.java - H2 database
Other components
- API client
Connections 17
- API client → Type controller: HTTP requests
- Type controller → Facade: dispatches
- Facade → Farm repository: CRUD/query
- Facade → Field repository: CRUD/query
- Facade → Storage repository: CRUD/query
- Facade → Worker transfer: delegates transfer
- Worker transfer → Farm repository: loads/saves
- Worker transfer → Field repository: loads/saves
- Worker transfer → Storage repository: loads/saves
- Farm repository → H2 database: persists
- Field repository → H2 database: persists
- Storage repository → H2 database: persists
- Data source config → H2 database: configures connection
- Farm → Shared type model: extends
- Field → Shared type model: extends
- Storage → Shared type model: extends
- Spring Boot app → Type controller: starts app