Skip to content

v2.0.1

Choose a tag to compare

@thuver104 thuver104 released this 11 May 10:56

Release Notes: MyRupees v2.1.1

Release Date: May 11, 2025

Overview

This release enhances the MyRupees Android application to support user-specific functionality, ensuring that each user's transactions, budgets, and recurring transactions are managed independently in a multi-user environment. The update addresses issues where data was shared across users, improving personalization and data accuracy.

Features

  • User-Specific Transactions:
    • Transactions in MainActivity and AddTransactionActivity are now filtered and stored with the logged-in user's username, retrieved from user_preferences with the key current_user.
    • Ensures users see only their own transactions on the main screen and when adding new ones.
  • User-Specific Budgets:
    • BudgetActivity now stores budgets and monthly reset data per user using keys like budget_<username> and saved_month_<username>.
    • Expense calculations are filtered by the logged-in user, providing accurate budget tracking.
  • User-Specific Recurring Transactions:
    • Added a user field to the RecurringTransaction data class to associate transactions with specific users.
    • RecurringTransactionActivity filters transactions by user and stores new recurring transactions with the current user's username.
    • RecurringNotificationWorker processes notifications per user, ensuring users receive alerts only for their upcoming payments.
  • Consistent User Management:
    • Introduced a getCurrentUser() function across activities to retrieve the logged-in user's username from user_preferences, replacing the incorrect SharedPrefManager.getCurrentUsername() method.

Bug Fixes

  • Fixed incorrect transaction filtering in MainActivity, which previously showed guest transactions for logged-in users.
  • Resolved budget conflicts in BudgetActivity, where all users shared a single budget.
  • Corrected AddTransactionActivity to store transactions with the logged-in user's username, preventing them from being saved as "Guest".
  • Ensured RecurringTransactionActivity and RecurringNotificationWorker handle only the logged-in user's transactions, fixing display and notification issues.

Breaking Changes

  • Data Schema Change: The RecurringTransaction data class now includes a user field. Existing recurring transactions without this field may cause deserialization errors. A migration script is recommended to assign a default user (e.g., "Guest") to legacy transactions.
  • Budget Storage: Budgets are now stored with user-specific keys (e.g., budget_<username>). Existing budgets under monthly_budget will not be accessible. Consider a one-time migration to copy budgets to the new format.

Recommendations

  • Migration for Existing Data:
    • Update SharedPrefManager.loadRecurringTransactions to handle legacy RecurringTransaction objects by assigning a default user value.
    • Migrate existing budgets from monthly_budget to budget_<username> for current users during the first app run after this update.
  • Centralized User Management: Consider creating a UserManager utility class to centralize the getCurrentUser() logic, reducing code duplication across activities.
  • Database Consideration: For scalability, evaluate migrating transaction and recurring transaction storage to a database like Room, especially for users with large datasets.

Known Issues

  • The login process (not provided) is assumed to set current_user in user_preferences. If this is not the case, user-specific functionality may default to "Guest".
  • RecurringNotificationWorker processes transactions for all users in the background. If notifications should be limited to the last logged-in user, further modifications are needed.

Installation

  1. Clone the repository: git clone https://github.com/<your-username>/myrupees.git
  2. Checkout the release tag: git checkout v1.1.0
  3. Build and run using Android Studio.

Contributors

  • [Your Name] - Implemented user-specific functionality and release notes.

Feedback

Please report issues or suggest improvements via the GitHub Issues page.

License

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


Thank you for using MyRupees!