Skip to content

sraraghul/PayLater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PayLater - Your Personal Payment Reminder App

Screenshot 2025-05-26 at 12 40 27β€―PM App v 1.0

PayLater is a minimalist and intuitive Android application designed to help you keep track of your pending payments and gently remind you when they're due. Built entirely with Jetpack Compose, Room Database, and Hilt for Dependency Injection, it offers a modern, reactive user experience.

πŸ€” When to Use PayLater?

PayLater is ideal for individuals or small businesses, like retailers who frequently sell products or services on a credit basis. It streamlines the process of managing receivables by providing:

  • Quick Entry: Log payments given out immediately.
  • Automated Reminders: Ensure timely follow-ups without manual tracking.
  • Clear Overview: Easily see who owes what and how much is pending in total or per customer.

✨ Features

  • Effortless Payment Tracking: Quickly add new payments with details like Payer Name, Contact Number, Payment Mode (Cash, UPI, Credit), and Amount.
  • Automated Reminders: For all payments with a 'Pending' status (status 0), the app schedules recurring notifications every 5 days to remind you to settle them.
  • Smart Cancellation: Once a payment's status changes to 'Completed' (status 1), its associated reminders are automatically cancelled.
  • Share Payment Details: Easily share payment information with the payer using Intent.ACTION_SEND, facilitating quick communication and confirmation.
  • Comprehensive Overview:
    • Home Screen: Displays a clear list of all your added payments.
    • Group Screen: Provides an aggregated view, grouping payments by 'Number' and showing the total amount due for each number, as well as the total pending amount for each number.
  • Modern Android Tech Stack: Leverages the latest Android development tools and best practices.

πŸ“± Screenshots

Screenshot_20250526_123336 s940 s555 s444 s333 s222 s93 s83 s56 s1

πŸš€ Technologies Used

  • Kotlin: Primary development language.
  • Jetpack Compose: Modern toolkit for building native Android UI.
  • Android Architecture Components:
    • ViewModel: Manages UI-related data in a lifecycle-conscious way.
    • Room Persistence Library: For local data storage, providing an abstraction layer over SQLite.
    • Navigation Compose: For navigating between screens.
  • Kotlin Coroutines & Flow: For asynchronous operations and reactive data streams.
  • Hilt: For robust and scalable dependency injection.
  • AlarmManager & BroadcastReceiver: For scheduling and receiving background alarms for notifications.
  • Notifications API: For user reminders.
  • Android Intents: For sharing data with other applications.

πŸ› οΈ Setup and Installation

  1. Clone the repository:

    git clone https://github.com/wgnofi/PayLater

  2. Open in Android Studio: Open the cloned project in Android Studio.

  3. Sync Gradle: Allow Gradle to sync the project and download all necessary dependencies.

  4. Run on Device/Emulator: Run the application on an Android device (TIRAMISU or later Recommended) or an emulator.

Important Notes:

  • Notification Permission: On Android 13 (API 33) and above, the app will request the POST_NOTIFICATIONS permission. Ensure this is granted for reminders to appear.
  • Battery Optimization: For reliable reminders, especially on devices running Android 6.0 (API 23) and higher, users might need to disable battery optimization for the app (though setInexactRepeating with _WAKEUP flags often helps).

πŸ’‘ Learning & Development Showcase

This project demonstrates my proficiency in:

  • Building responsive and modern UIs with Jetpack Compose, supporting Dark Theme by default.
  • Implementing a clean MVVM architecture with a data Repository pattern.
  • Handling local data persistence using Room Database.
  • Managing asynchronous operations efficiently with Kotlin Coroutines and Flow.
  • Applying dependency injection using Hilt for a scalable codebase.
  • Implementing complex background tasks with AlarmManager and BroadcastReceiver for scheduled events.
  • Designing and implementing user notifications.
  • Utilizing Android Intents for inter-app communication (sharing).
  • Understanding the Android component lifecycle and best practices for background work.

πŸ›£οΈ Future Enhancements

  • Payment History: Add a dedicated screen to view a detailed history of all payments, including completed ones.
  • Filtering and Sorting: Allow users to filter payments by status, date range, or sort them by amount/date.
  • Categorization: Enable assigning categories to payments.
  • Export Data: Option to export payment data (to CSV or other formats).
  • Widget Support: A home screen widget to show upcoming or pending payments at a glance.
  • Unit/Integration Tests: Implement tests for ViewModel, Repository, and DAO layers.
  • Biometric Authentication: Secure access to the app.
  • Improved Date Picker: Use a more robust date picker for payment dates.
  • Data Synchronization: Option to back up and restore data.

🀝 Contributing

Feel free to fork this repository, open issues, or submit pull requests. Any contributions are welcome!

πŸ“„ License

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

About

It's like your digital ledger for "pay later" transactions!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages