How vasileiosliaskas/vasilis-api works
This is a Spring application for managing business records and associated invoices, with user authentication. The main workflow is a client request routed to a business or invoice controller, handled by a service, and persisted through a repository; invoice operations can also look up a linked business and store or return uploaded file data. Separate user and security components provide JWT-based authentication. The README is empty, so broader product capabilities are not documented; edges reflect only relationships visible in the sampled source or SOURCE INDEX.
Main entry points: BusinessServiceImpl.java Business service · InvoiceServiceImpl.java Invoice service · BusinessDTO.java Business DTOs · InvoiceDTO.java Invoice DTO
Components 27
Business records
- Business API
src/main/java/vasilis/vasilis/business/BusinessController.java - Business service
src/main/java/vasilis/vasilis/business/BusinessServiceImpl.java - Business repository
src/main/java/vasilis/vasilis/business/BusinessRepositoryImpl.java - Business record
src/main/java/vasilis/vasilis/business/Business.java - Business DTOs
src/main/java/vasilis/vasilis/business/DTO/BusinessDTO.java - Business search args
src/main/java/vasilis/vasilis/business/DTO/BusinessArgsDTO.java - Business query contract
src/main/java/vasilis/vasilis/business/BusinessRepositoryCustom.java
Invoice management
- Invoice API
src/main/java/vasilis/vasilis/invoice/InvoiceController.java - Invoice service
src/main/java/vasilis/vasilis/invoice/InvoiceServiceImpl.java - Invoice repository
src/main/java/vasilis/vasilis/invoice/InvoiceRepository.java - Invoice record
src/main/java/vasilis/vasilis/invoice/Invoice.java - Invoice DTO
src/main/java/vasilis/vasilis/invoice/DTO/InvoiceDTO.java - Invoice search args
src/main/java/vasilis/vasilis/invoice/DTO/InvoiceArgsDTO.java - Invoice types
src/main/java/vasilis/vasilis/invoice/InvoiceEnum.java
Users and security
- User API
src/main/java/vasilis/vasilis/user/UserController.java - User service
src/main/java/vasilis/vasilis/user/UserServiceImpl.java - User repository
src/main/java/vasilis/vasilis/user/UserRepository.java - User record
src/main/java/vasilis/vasilis/user/User.java - JWT service
src/main/java/vasilis/vasilis/user/JWTService.java - JWT filter
src/main/java/vasilis/vasilis/security/JwtFilter.java - User details lookup
src/main/java/vasilis/vasilis/security/CustomUserDetailsService.java - Security configuration
src/main/java/vasilis/vasilis/security/SecurityConfiguration.java - JWT response
src/main/java/vasilis/vasilis/security/JwtResponse.java
Shared data formats
- Date serializer
src/main/java/vasilis/vasilis/general/CustomDateSerializer.java - Date deserializer
src/main/java/vasilis/vasilis/general/CustomDateDeserializer.java - Translation utility
src/main/java/vasilis/vasilis/general/TranslationUtil.java
Other components
- API client
Connections 42
- API client → Business API: requests
src/main/java/vasilis/vasilis/business/BusinessController.java - API client → Invoice API: requests
src/main/java/vasilis/vasilis/invoice/InvoiceController.java - API client → User API: requests
src/main/java/vasilis/vasilis/user/UserController.java - Business API → Business service: delegates
src/main/java/vasilis/vasilis/business/BusinessController.java - Business API → Business DTOs: accepts and returns
src/main/java/vasilis/vasilis/business/BusinessController.java - Business service → Business repository: queries and saves
src/main/java/vasilis/vasilis/business/BusinessServiceImpl.java - Business service → Invoice service: uses invoice operations
src/main/java/vasilis/vasilis/business/BusinessServiceImpl.java - Business service → Business DTOs: maps
src/main/java/vasilis/vasilis/business/BusinessServiceImpl.java - Business service → Business record: maps
src/main/java/vasilis/vasilis/business/BusinessServiceImpl.java - Business service → Translation utility: uses
src/main/java/vasilis/vasilis/business/BusinessServiceImpl.java - Business repository → Business query contract: implements
src/main/java/vasilis/vasilis/business/BusinessRepositoryImpl.java - Business repository → Business record: queries
src/main/java/vasilis/vasilis/business/BusinessRepositoryImpl.java - Business repository → Business search args: uses
src/main/java/vasilis/vasilis/business/BusinessRepositoryImpl.java - Business repository → Business DTOs: projects
src/main/java/vasilis/vasilis/business/BusinessRepositoryImpl.java - Invoice API → Invoice service: delegates
src/main/java/vasilis/vasilis/invoice/InvoiceController.java - Invoice API → Invoice search args: accepts
src/main/java/vasilis/vasilis/invoice/InvoiceController.java - Invoice API → Invoice DTO: returns
src/main/java/vasilis/vasilis/invoice/InvoiceController.java - Invoice service → Invoice repository: queries and saves
src/main/java/vasilis/vasilis/invoice/InvoiceServiceImpl.java - Invoice service → Business service: looks up business
src/main/java/vasilis/vasilis/invoice/InvoiceServiceImpl.java - Invoice service → Invoice record: maps and updates
src/main/java/vasilis/vasilis/invoice/InvoiceServiceImpl.java - Invoice service → Invoice DTO: maps
src/main/java/vasilis/vasilis/invoice/InvoiceServiceImpl.java - Invoice service → Invoice search args: filters by
src/main/java/vasilis/vasilis/invoice/InvoiceServiceImpl.java - Invoice API → Invoice types: uses
src/main/java/vasilis/vasilis/invoice/InvoiceController.java - Invoice DTO → Invoice types: uses
src/main/java/vasilis/vasilis/invoice/DTO/InvoiceDTO.java - Business DTOs → Invoice DTO: includes
src/main/java/vasilis/vasilis/business/DTO/BusinessDTO.java - Business record → Invoice record: owns invoices
src/main/java/vasilis/vasilis/business/Business.java - Invoice record → Business record: references business
src/main/java/vasilis/vasilis/invoice/Invoice.java - User API → User service: delegates
src/main/java/vasilis/vasilis/user/UserController.java - User API → JWT response: returns
src/main/java/vasilis/vasilis/user/UserController.java - User service → User repository: queries and saves
src/main/java/vasilis/vasilis/user/UserServiceImpl.java - User service → JWT service: generates token
src/main/java/vasilis/vasilis/user/UserServiceImpl.java - User service → User record: uses
src/main/java/vasilis/vasilis/user/UserServiceImpl.java - User details lookup → User repository: loads user
src/main/java/vasilis/vasilis/security/CustomUserDetailsService.java - User details lookup → User record: wraps
src/main/java/vasilis/vasilis/security/CustomUserDetailsService.java - JWT filter → JWT service: validates token
src/main/java/vasilis/vasilis/security/JwtFilter.java - JWT filter → User details lookup: loads identity
src/main/java/vasilis/vasilis/security/JwtFilter.java - Security configuration → JWT filter: registers
src/main/java/vasilis/vasilis/security/SecurityConfiguration.java - Security configuration → User details lookup: configures
src/main/java/vasilis/vasilis/security/SecurityConfiguration.java - Business DTOs → Date deserializer: uses
src/main/java/vasilis/vasilis/business/DTO/BusinessDTO.java - Business DTOs → Date serializer: uses
src/main/java/vasilis/vasilis/business/DTO/BusinessDTO.java - Invoice DTO → Date deserializer: uses
src/main/java/vasilis/vasilis/invoice/DTO/InvoiceDTO.java - Invoice DTO → Date serializer: uses
src/main/java/vasilis/vasilis/invoice/DTO/InvoiceDTO.java