How jayy2kok/budgetly works
Budgetly is a personal and family budgeting product with a mobile app and a Spring-based API. Its principal flow is authenticated users managing family budgets and transactions, then viewing spending summaries; bank-message ingestion can analyze SMS text, create or queue a transaction, and let users confirm or reject it. The tree also shows category management and a shared SMS-pattern registry. The README is empty and excerpts are partial, so several service-to-storage and mobile-to-API links are not asserted; unsampled capabilities are represented by their source paths without speculative wiring.
Main entry points: AuthService.java Sign-in and tokens · MessageService.java Message review and parsing · AuthController.java Auth endpoints · MainActivity.kt Android app
Components 24
Mobile clients
- Android app
app/android/app/src/main/kotlin/com/budgetly/app/MainActivity.kt - iOS app
app/ios/Runner/AppDelegate.swift
API and identity
- Auth endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/AuthController.java - Sign-in and tokens
budgetly_api/src/main/java/com/budgetly/api/service/AuthService.java - Google token check
budgetly_api/src/main/java/com/budgetly/api/security/GoogleTokenVerifier.java - JWT handling
budgetly_api/src/main/java/com/budgetly/api/security/JwtTokenProvider.java
Budgeting
- Family endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/FamilyGroupController.java - Family membership
budgetly_api/src/main/java/com/budgetly/api/service/FamilyGroupService.java - Transaction endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/TransactionController.java - Transaction handling
budgetly_api/src/main/java/com/budgetly/api/service/TransactionService.java - Category endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/CategoryController.java - Category management
budgetly_api/src/main/java/com/budgetly/api/service/CategoryService.java - Dashboard endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/DashboardController.java - Budget summaries
budgetly_api/src/main/java/com/budgetly/api/service/DashboardService.java
Message processing
- Message endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/MessageController.java - Message review and parsing
budgetly_api/src/main/java/com/budgetly/api/service/MessageService.java - LLM analysis
budgetly_api/src/main/java/com/budgetly/api/llm/GeminiLlmProvider.java - Pattern endpoints
budgetly_api/src/main/java/com/budgetly/api/controller/PatternRegistryController.java - Pattern registry
budgetly_api/src/main/java/com/budgetly/api/service/PatternRegistryService.java
Persistence
- MongoDB
- Mongo repositories
budgetly_api/src/main/java/com/budgetly/api/repository/TransactionRepository.java - Stored domain records
budgetly_api/src/main/java/com/budgetly/api/document/TransactionDocument.java
Other components
- Budget user
- Gemini API
Connections 15
- Budget user → Android app: uses
- Budget user → iOS app: uses
- Android app → Auth endpoints: API requests
- iOS app → Auth endpoints: API requests
- Auth endpoints → Sign-in and tokens: delegates
- Sign-in and tokens → Google token check: verifies token
- Sign-in and tokens → JWT handling: issues tokens
- Family endpoints → Family membership: delegates
- Transaction endpoints → Transaction handling: delegates
- Message endpoints → Message review and parsing: delegates
- Message review and parsing → LLM analysis: analyzes text
- LLM analysis → Gemini API: sends prompt
- Message review and parsing → Transaction handling: creates transaction
- Pattern endpoints → Pattern registry: delegates
- Mongo repositories → MongoDB: reads and writes