Skip to content

Repository files navigation

Sparely

Sparely is a modern Android personal finance and savings app built with Jetpack Compose. Track expenses, manage smart savings vaults, set budgets, and achieve your financial goals with intelligent allocation recommendations.

✨ Features

  • 📊 Smart Savings Allocation - AI-powered recommendations based on your financial profile
  • 💰 Expense Tracking - Category-based expense logging with automatic allocation
  • 🎯 Smart Vaults - Goal-based savings with automated deposits and progress tracking
  • 🔄 Recurring Expenses - Manage subscriptions and regular bills
  • 📈 Financial Analytics - Comprehensive insights into spending patterns and savings rate
  • 🏪 Store/Merchant Tracking - Track expenses by store with logo integration (via Brandfetch API)
  • 📱 Home Screen Widget - Quick view of your savings and spending at a glance
  • 💾 Backup & Restore - Export and import all your data in JSON format
  • 🎨 Material Design 3 - Modern, beautiful UI following Material You guidelines

🏗️ Architecture

  • UI Layer: Jetpack Compose with Material 3
  • Database: Room with SQLite for local persistence
  • Async Operations: Kotlin Coroutines & Flow
  • Dependency Injection: Manual DI via AppContainer pattern
  • State Management: ViewModel + StateFlow
  • Background Tasks: WorkManager for scheduled operations

🚀 Getting Started

Prerequisites

  • Android Studio (Hedgehog 2023.1.1 or later)
  • JDK 11 or higher
  • Android SDK (API 26+)

Setup

  1. Clone the repository

    git clone https://github.com/The-Young-Maker/Sparely.git
    cd Sparely
  2. Open in Android Studio

    • Open Android Studio
    • Select "Open an Existing Project"
    • Navigate to the cloned directory
  3. Sync Gradle

    • Android Studio should automatically sync Gradle
    • If not, click "Sync Project with Gradle Files"
  4. Run the app

    • Connect an Android device or start an emulator (API 26+)
    • Click the "Run" button or press Shift + F10

Optional: Brandfetch Integration

To enable store logo fetching:

  1. Get a free API key from brandfetch.com
  2. In the app: Settings → Brandfetch Client ID
  3. Enter your API key

🛠️ Tech Stack

Category Technology
Language Kotlin
UI Framework Jetpack Compose
Database Room (SQLite)
Design System Material Design 3
Image Loading Coil
JSON Serialization Gson
Background Work WorkManager
Async Coroutines + Flow
Navigation Navigation Compose

📦 Backup & Restore

Export your data:

  1. Go to Settings
  2. Tap "Export Data"
  3. Choose a location to save the JSON file

Import data:

  1. Go to Settings
  2. Tap "Import Data"
  3. Select your backup JSON file

The backup includes all expenses, vaults, budgets, stores, recurring expenses, and settings.

🤝 Contributing

We welcome contributions! Please read our Contributing Guidelines and Code of Conduct before submitting pull requests.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔒 Privacy

Sparely stores all data locally on your device. No data is sent to external servers (except optional Brandfetch API calls for store logos). You have full control over your financial data with export/import capabilities.

🐛 Known Issues

  • This is an early release - some features may have bugs
  • See Issues for known problems

📞 Support

🙏 Acknowledgments

  • Material Symbols icons from Google
  • Brandfetch API for store logos
  • The Android and Kotlin communities

Note: This app is for personal finance tracking and educational purposes. Always consult with financial professionals for important financial decisions.

About

Sparely is an Android personal finance / savings app.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages