l4rm4nd / VoucherVault

Django web application to store and manage vouchers, coupons, loyalty and gift cards digitally. Supports expiry notifications, transaction histories, file uploads and OIDC SSO.
https://github.com/l4rm4nd/VoucherVault/wiki
GNU General Public License v3.0
162 stars 3 forks source link

[FEATURE] Item Sharing Functionality in VoucherVault #26

Closed l4rm4nd closed 2 months ago

l4rm4nd commented 3 months ago

Overview

VoucherVault currently restricts item management and inspection to the user who created the item. This architecture, designed with security and privacy in mind, has no provisions for sharing items. However, there are valid scenarios where item sharing could significantly enhance user experience, such as sharing multi-redeemable vouchers/coupons with family members or sharing loyalty cards among users with a common store account.

Proposal

Implement a feature that allows users to share items with other VoucherVault user accounts while maintaining security and privacy. This feature may be developed with the following specifications:

Key Features

  1. Separate Data Room for Shared Items:

    • Establish a distinct section within VoucherVault where shared items are stored.
    • This will prevent shared items from getting mixed up with private items and ensure a clear separation in the user interface.
  2. Exclusion from Individual Dashboard:

    • Shared items will not appear on the user's individual dashboard.
    • This will help maintain the integrity of the user's personal space and prevent clutter.
  3. Permission Management:

    • The owner of an item will have full permissions (read, write, delete).
    • Users with whom the item is shared will have restricted permissions (inspect only, no editing, deleting, or marking as used).
    • Consider allowing shared users to add to the transaction history of an item.
  4. Server-Side Tracking:

    • Implement new model fields in the database to track shared items.
    • These fields may list comma-separated users and groups with whom the item is shared.
    • The exact design of these fields and how they are managed is to be determined.

Benefits

Considerations

Conclusion

Implementing item sharing in VoucherVault will address user needs for collaborative usage while maintaining the application's commitment to security and privacy. This feature will provide significant value to users who wish to share vouchers, coupons, or loyalty cards with others.

l4rm4nd commented 2 months ago

First draft implemented in https://github.com/l4rm4nd/VoucherVault/commit/da5dfca0209a9bdf33cd91d3b94132312b07a552