How varelamateo/agropeso works
AgroPeso is a weighing-ticket and supplier-management application. Its principal workflow is a client submitting a weighing ticket to the FastAPI API, which routes the request through ticket rules and persistence; tickets can be listed, retrieved, and closed by recording gross weight. Supplier listing and creation form a separate branch. The frontend and product model are included as documented/source-index capabilities, but their runtime connections are not fully evidenced in the excerpts; those links are therefore omitted or marked unverified.
Main entry points: database.py DB sessions · ticket_router.py Ticket routes · supplier_router.py Supplier routes · ticket_model.py Ticket model
Components 17
Client
- Web interface
frontend/js/app.js
API
- FastAPI app
backend/main.py - Ticket routes
backend/routers/ticket_router.py - Supplier routes
backend/routers/supplier_router.py - Ticket schemas
backend/schemas/ticket_schema.py - Supplier schemas
backend/schemas/supplier_schema.py
Domain Services
- Ticket rules
backend/services/ticket_service.py - Supplier service
backend/services/supplier_service.py - Ticket errors
backend/utils/exceptions.py
Persistence
- Ticket repository
backend/repository/ticket_repository.py - Supplier repository
backend/repository/supplier_repository.py - Ticket model
backend/models/ticket_model.py - Supplier model
backend/models/suppliers.py - Product model
backend/models/products.py - DB sessions
backend/config/database.py
Other components
- Operator / client
- MySQL database
Connections 23
- Operator / client → Web interface: uses
- Web interface → FastAPI app: calls API
- FastAPI app → Ticket routes: registers routes
backend/main.py - FastAPI app → Supplier routes: registers routes
backend/main.py - Ticket routes → Ticket schemas: validates / responds
backend/routers/ticket_router.py - Supplier routes → Supplier schemas: validates / responds
backend/routers/supplier_router.py - Ticket routes → Ticket rules: dispatches
backend/routers/ticket_router.py - Ticket routes → Ticket repository: constructs
backend/routers/ticket_router.py - Supplier routes → Supplier service: dispatches
backend/routers/supplier_router.py - Supplier routes → Supplier repository: constructs
backend/routers/supplier_router.py - Ticket routes → DB sessions: gets session
backend/routers/ticket_router.py - Supplier routes → DB sessions: gets session
backend/routers/supplier_router.py - Ticket rules → Ticket repository: calls
backend/services/ticket_service.py - Supplier service → Supplier repository: calls
backend/services/supplier_service.py - Ticket rules → Ticket errors: raises
backend/services/ticket_service.py - Ticket repository → Ticket model: maps / persists
backend/repository/ticket_repository.py - Supplier repository → Supplier model: maps / persists
backend/repository/supplier_repository.py - Ticket model → DB sessions: uses ORM base
backend/models/ticket_model.py - Supplier model → DB sessions: uses ORM base
backend/models/suppliers.py - Product model → DB sessions: uses ORM base
backend/models/products.py - Ticket model → Supplier model: relates supplier
backend/models/ticket_model.py - Ticket model → Product model: relates product
backend/models/ticket_model.py - DB sessions → MySQL database: connects
backend/config/database.py