Subsync is an automated, enterprise-grade subscription and recurring expense management platform. It pairs a Java 21 / Spring Boot 3.2 backend with a cross-platform Flutter mobile application to give users intelligent financial insights, automated bank transaction pattern recognition, scheduled billing alerts, and downloadable invoice/PDF statements.
graph TD
Mobile[Flutter Mobile Client] -->|REST API / JWT| Backend[Spring Boot 3 Backend API]
subgraph Core Modules
Backend --> SubEngine[Subscription Engine: Pattern Detection]
Backend --> Scheduler[Sync Scheduler & Reminders]
Backend --> Invoicing[Invoice & PDF Generation]
Backend --> BankModule[Bank Transaction Sync]
end
Backend --> Postgres[(PostgreSQL Database)]
- Transaction Pattern Recognition: Analyzes historical bank transactions by merchant groupings and interval deltas.
- Auto-Cycle Identification: Automatically categorizes billing intervals (Weekly: 7-day delta, Monthly: 30-day delta, Yearly: 365-day delta).
- Next Billing Date Forecasting: Accurately projects future charge dates to prevent unexpected renewals.
- State Management: Clean GetX architecture with reactive controllers and route bindings.
- Networking: Robust HTTP client integration via Dio with global interceptors.
- Reports & Documents: In-app PDF viewer integration for financial statements and invoices.
- Social Authentication: Seamless Google Sign-In and secure token storage with GetStorage.
- Generates downloadable invoice records and financial summaries.
- Detailed spending breakdown categorized by entertainment, utilities, SaaS services, and business tools.
Subsync/
├── subsync_backend/ # Spring Boot 3.2 REST API (Java 21)
│ ├── src/main/java/com/rseelabs/subsync/
│ │ ├── core/ # Security, exceptions, global config
│ │ └── modules/
│ │ ├── auth/ # JWT authentication & registration
│ │ ├── bank/ # Bank account linking & transaction ingestion
│ │ ├── dashboard/ # Aggregated metrics & graphs
│ │ ├── report/ # PDF generation & spending summaries
│ │ └── subscription/# SubscriptionEngine & SyncScheduler
│ └── pom.xml # Maven dependencies
│
└── subsync_app/ # Flutter Mobile Application
├── lib/ # GetX controllers, views & repositories
└── pubspec.yaml # Flutter dependencies
cd subsync_backend
./mvnw spring-boot:runcd subsync_app
flutter pub get
flutter run