Why Return Window

A return deadline is easy to forget while deciding whether to keep a purchase. Return Window keeps those dates in one small list, without asking for an email inbox or a pile of receipts.

Enter the deadline from the shop and a note if you need one. Search the list, mark an item resolved, or reopen it if your decision changes. JSON import and export let you keep your own backup. The app does not decide whether a purchase qualifies for a refund.

How it is built

JavaScript, HTML and CSS run inside a Capacitor Android app. Dates are treated as calendar days, and stored records and imported backups are validated. RevenueCat supplies the one-time Window Plus entitlement for on-device reminders. Access is checked against customer information rather than a locally writable purchase flag. The demo uses Test Store: no real charges.

What testing uncovered

Returning a Capacitor plugin proxy from an async function caused JavaScript to call a nonexistent then method. Returning the module namespace instead fixed this Android-only failure; regression tests cover that boundary. The project has 33 passing automated tests. Native Test Store purchase and same-installation restore passed. A fresh installation without a purchase stayed locked on restore.

The notification plugin also requested exact-alarm access by default. These reminders do not need that precision, so they now use ordinary notification permission. Three reminders appeared in Android's alarm schedule. Advancing the emulator clock produced an actual notification while the app was in the background; tapping it reopened the app. The clock was restored afterward.

Where it stands

This is a student prototype, not a store-launched product. Notification delivery has been checked with a simulated clock, not an overnight physical-device test; battery settings can delay delivery. Cross-device purchase restoration is not yet verified.

The source is public under the MIT license. Item names, notes and dates stay on-device. RevenueCat receives the purchase-related information needed to check access. There is no receipt upload or inbox access.

Built With

Share this project:

Updates

Submission history