How lucas-t-neves/kawztatto works
Kawz Tattoo is studio-management software: a tattoo artist uses the frontend to manage clients and their health/preferences, develop projects and contracts, schedule sessions and follow-ups, and track finances and reference images. The frontend’s feature view models call repositories over a shared HTTP layer; the backend exposes REST endpoints, applies domain services, and persists data. Documented integrations generate contract PDFs, store images, and sync session events with a calendar. The graph captures documented capabilities, but several subsystem internals are unsampled, so their detailed call relationships are omitted.
Main entry points: controller REST API · ProjetoService.java Project domain · SessaoService.java Session domain · ContratoService.java Contracts and PDFs
Components 25
Client management
- Client records
frontend/src/features/clients - Client domain
backend/src/main/java/com/kawz/tattoo/domain/service/ClienteService.java - Health and preferences
backend/src/main/java/com/kawz/tattoo/domain/service
Projects and contracts
- Project workflow
frontend/src/features/projects - Project domain
backend/src/main/java/com/kawz/tattoo/domain/service/ProjetoService.java - Contracts and PDFs
backend/src/main/java/com/kawz/tattoo/domain/service/ContratoService.java - PDF provider
backend/src/main/java/com/kawz/tattoo/integration/ApiTemplateClient.java - Image storage
backend/src/main/java/com/kawz/tattoo/integration/CloudinaryClient.java - Budgets and contracts UI
frontend/src/features
Scheduling and finance
- Agenda and sessions
frontend/src/features/agenda - Session domain
backend/src/main/java/com/kawz/tattoo/domain/service/SessaoService.java - Calendar provider
backend/src/main/java/com/kawz/tattoo/integration/NylasCalendarClient.java - Finance management
frontend/src/features/finance - Financial domain
backend/src/main/java/com/kawz/tattoo/domain/service/MovimentacaoService.java - Follow-ups
frontend/src/features/followups - Dashboard
backend/src/main/java/com/kawz/tattoo/domain/service/DashboardService.java
Application platform
- Studio frontend
frontend/src/App.jsx - HTTP client
frontend/src/shared/model/http.js - REST API
backend/src/main/java/com/kawz/tattoo/api/controller - Authentication
backend/src/main/java/com/kawz/tattoo/config/SecurityConfig.java - API models
backend/src/main/java/com/kawz/tattoo/api/dto/ApiModels.java - API mapping
backend/src/main/java/com/kawz/tattoo/api/dto/ApiMapper.java - API errors
backend/src/main/java/com/kawz/tattoo/api/exception/ApiExceptionHandler.java - Relational database
Other components
- Tattoo artist
Connections 31
- Tattoo artist → Studio frontend: uses
README.md - Studio frontend → HTTP client: requests API
frontend/src/App.jsx - HTTP client → REST API: sends REST requests
README.md - REST API → Authentication: secures routes
README.md - REST API → API models: exchanges models
backend/src/main/java/com/kawz/tattoo/api/controller/ProjetoEscopoController.java - REST API → API errors: formats errors
backend/src/main/java/com/kawz/tattoo/api/exception/ApiExceptionHandler.java - Tattoo artist → Client records: manages
README.md - Client records → Client domain: loads and saves
frontend/src/features/clients/viewmodel/useApiClientsViewModel.js - Tattoo artist → Project workflow: manages
README.md - Project workflow → Project domain: uses API
frontend/src/features/projects/viewmodel/useApiProjectsViewModel.js - Project domain → API mapping: maps responses
backend/src/main/java/com/kawz/tattoo/domain/service/ProjetoService.java - Project domain → Image storage: removes image files
backend/src/main/java/com/kawz/tattoo/domain/service/ProjetoService.java - Tattoo artist → Contracts and PDFs: manages
README.md - Contracts and PDFs → PDF provider: generates PDF
backend/src/main/java/com/kawz/tattoo/domain/service/ContratoService.java - Tattoo artist → Agenda and sessions: schedules work
README.md - Agenda and sessions → Session domain: uses API
frontend/src/features/agenda/viewmodel/useApiAgendaViewModel.js - Session domain → Calendar provider: syncs events
backend/src/main/java/com/kawz/tattoo/domain/service/SessaoService.java - Tattoo artist → Finance management: tracks finances
README.md - Finance management → Financial domain: uses API
- Tattoo artist → Follow-ups: manages follow-ups
README.md - REST API → Client domain: routes client operations
- REST API → Health and preferences: routes health records
backend/src/main/java/com/kawz/tattoo/api/controller/ProjetoEscopoController.java - REST API → Project domain: routes project operations
backend/src/main/java/com/kawz/tattoo/api/controller/ProjetoEscopoController.java - REST API → Session domain: routes session operations
backend/src/main/java/com/kawz/tattoo/api/controller/SessaoController.java - REST API → Financial domain: routes transactions
backend/src/main/java/com/kawz/tattoo/api/controller/ProjetoEscopoController.java - REST API → Dashboard: serves dashboard
- Contracts and PDFs → Relational database: persists contracts
- Project domain → Relational database: persists projects
- Session domain → Relational database: persists sessions
- Financial domain → Relational database: persists transactions
- Budgets and contracts UI → HTTP client: calls shared client
frontend/src/features/auth/model/ApiAuthRepository.js