Commit Graph

324 Commits

Author SHA1 Message Date
Víctor Falcón 3c7cfcd149 chore: release v0.1.2 2026-01-07 14:34:20 +01:00
Víctor Falcón fc4bc8610b Add demo account link on the readme page 2026-01-07 11:26:01 +01:00
Víctor Falcón 9af941cb47 ui: add cursor pointer to the buttons 2026-01-07 11:12:03 +01:00
Víctor Falcón fc5cb67fe3 feature: enable cashflow for everyone 2026-01-07 11:06:54 +01:00
Víctor Falcón 9bd1fcea37
Demo Account Experience (#51)
## Summary

<img width="1220" height="1001" alt="whispermoney test_"
src="https://github.com/user-attachments/assets/c35751d5-385b-449c-81d6-14b5b6577ff2"
/>

Introduces a fully-functional demo account that lets prospective users
explore Whisper Money without creating an account. Users can click
"Check Demo" on the welcome page to instantly access a pre-populated
account with realistic financial data spanning 12 months.

## What's New

**Try Before You Sign Up**
- New "Check Demo" button on the welcome page for instant access
- Pre-configured demo account with real-world financial scenarios
- 12 months of sample transactions across multiple account types
(checking, savings, credit cards, investments)
- Pre-built automation rules, labels, and categories to showcase the
full app experience

**Demo Account Limitations**
- Demo accounts are read-only for sensitive operations (can't change
password, email, or payment settings)
- Clear messaging throughout the UI when demo restrictions apply
- Settings pages show helpful notices about demo limitations
- Automatic daily reset to maintain fresh demo experience

**Developer Experience**
- `php artisan demo:reset` command for manual resets
- Configurable via environment variables (DEMO_EMAIL, DEMO_PASSWORD,
DEMO_ENCRYPTION_KEY)
- Comprehensive test coverage for demo restrictions and data generation

## User Impact

This feature removes the friction of signing up before understanding the
product's value. Users can:
- Explore all features with realistic data
- Test automation rules and see them in action
- View charts and insights based on a year of financial activity
- Experience the full privacy-first encryption workflow
- Understand the product before committing to create an account

Perfect for demos, screenshots, documentation, and helping users make
informed decisions about whether Whisper Money fits their needs.
2026-01-07 10:58:14 +01:00
Víctor Falcón cb1d6a230f fix: issue on filters when no label created 2026-01-06 11:42:04 +01:00
Víctor Falcón abeeeec53f cashflow: sankey chart improve 2026-01-06 08:47:30 +01:00
Víctor Falcón 6269173766 cashflow: use user currency_code 2026-01-06 08:36:30 +01:00
Víctor Falcón f45d23deb4 chore: release v0.1.1 2026-01-05 15:10:45 +01:00
Víctor Falcón 1cec4a6421
Add Cashflow Analytics Feature (#49)
Summary
- Add new Cashflow page with income/expense analytics, Sankey chart
visualization, and trend analysis
- Add Cashflow summary widget to the dashboard
- Implement feature flag system using Laravel Pennant to control feature
visibility per user
- Add artisan commands to enable/disable features: `php artisan
feature:enable/disable [feature] [email|all]`

## New Features
- **Cashflow Page**: Period-based income/expense breakdown with category
analysis
- **Sankey Chart**: Visual flow diagram showing money movement between
categories
- **Trend Chart**: 12-month historical cashflow visualization
- **Dashboard Widget**: Quick cashflow summary card
- **Feature Flags**: Cashflow feature hidden behind feature flag,
controllable per-user

## How to enable it
This feature it's under a feature flag until we are sure it's working
fine. If you want to test it, [send us a message on the general channel
in our discord](https://discord.gg/9UQWZECDDv). If you're self hosting
just run `php artisan feature:enable CashflowFeature {your_email}`.

## New Cashflow Page
<img width="1278" height="1185" alt="image"
src="https://github.com/user-attachments/assets/83469f24-9f96-4e5f-bef9-86c076d31243"
/>
<img width="1274" height="1035" alt="image"
src="https://github.com/user-attachments/assets/8949ff9d-c370-4fc4-81c6-268307c587a5"
/>

## New Dashboard Widget
<img width="1180" height="289" alt="image"
src="https://github.com/user-attachments/assets/ad984a66-9ffd-4079-85ce-0b2d28278d76"
/>
<img width="1179" height="286" alt="image"
src="https://github.com/user-attachments/assets/bff60286-8ea2-4e9c-8fa6-22755566648f"
/>
2026-01-05 13:06:50 +01:00
Víctor Falcón 2634a501b5
Enhance README with language options (#50)
Added multilingual links to the README for better accessibility.
2026-01-05 12:23:13 +01:00
Víctor Falcón b957ddbe0d
Preview account transactions (#48)
While importing new transactions, sometimes is difficult to now which
ones are already imported, and which one are new.

With this importer update you can quickly view the transactions that
already exist in your account, and see which ones you have and which
ones you don't have to import again.

<img width="1220" height="1169" alt="image"
src="https://github.com/user-attachments/assets/38de3208-a7d4-4578-8683-753bd0bf7c93"
/>
2026-01-04 16:17:15 +01:00
Víctor Falcón 0f879cec0e transactions: increase date column size 2026-01-02 14:56:05 +01:00
Víctor Falcón 13d6c54e12 avoid new lines on transactions date column 2026-01-02 14:48:42 +01:00
Víctor Falcón 7d90a53deb bugsing: only send error if production 2026-01-02 14:34:41 +01:00
Víctor Falcón a2bae48827 catch: play video error 2026-01-01 12:18:00 +01:00
Víctor Falcón fdb5ab3425 fix broken tests because end of year 2025-12-31 18:36:07 +01:00
Víctor Falcón 407f0f85d9 frontend: update transaction search input width 2025-12-31 13:01:12 +01:00
Víctor Falcón d592391de8 Push sourcemap to bugsink 2025-12-31 12:56:25 +01:00
Víctor Falcón 8f9f1e809d Config bugsink for React frontend 2025-12-31 12:22:01 +01:00
Víctor Falcón cb44687216 Config bugsink on Laravel 2025-12-31 12:11:55 +01:00
Víctor Falcón beecff404a
Add subscription cancellation email with manual trigger command (#47)
## Summary

- Add a subscription cancellation email that can be manually triggered
via artisan command
- Include CONTINUE50 coupon code (50% off current and future payments
for monthly/yearly subscriptions)
- Add option to disable all drip emails via `DRIP_EMAILS_ENABLED` env
var

## Usage

```bash
# Send to single user
php artisan email:subscription-cancelled user@example.com

# Send to multiple users
php artisan email:subscription-cancelled user1@example.com,user2@example.com

# Disable all drip emails
DRIP_EMAILS_ENABLED=false
```
2025-12-30 20:32:44 +01:00
Víctor Falcón 989a446f3c Update composer dev job to run emails queue 2025-12-30 18:29:49 +01:00
Víctor Falcón b79ba27008 ui: change text on unlock message dialog 2025-12-30 15:46:58 +01:00
Víctor Falcón 4fa77dc929 landing: video player ui 2025-12-30 15:37:02 +01:00
Víctor Falcón 1e3de4b1e0 landing: add encryption video 2025-12-30 15:35:10 +01:00
Víctor Falcón 2eccee09a2 ui: amount display when encryption key is not set 2025-12-30 14:25:19 +01:00
Víctor Falcón 1e866a514d remove unused images 2025-12-30 14:24:16 +01:00
Víctor Falcón b2d1bcf54c fix: wrong user menu text 2025-12-30 11:16:15 +01:00
Víctor Falcón bc9a84f929 typo: privacy mode 2025-12-30 11:13:07 +01:00
Víctor Falcón 5fe961a308 chore: update privacy mode to update transactions descriptions 2025-12-30 11:03:58 +01:00
Víctor Falcón 104723cbef chore: update landing images 2025-12-30 10:47:42 +01:00
Víctor Falcón c72b148fb4
SSR was missing the privacy mode provider (#46) 2025-12-30 08:55:03 +01:00
Víctor Falcón 3bcb4875f0 chose: increase mail limit per second 2025-12-30 08:38:28 +01:00
Víctor Falcón 46454f193f
Update balance with manually created transactions (#45)
<img width="1195" height="874" alt="image"
src="https://github.com/user-attachments/assets/1d2f5e10-dad5-4136-8f65-5e8a3e8b30c5"
/>
2025-12-30 07:55:34 +01:00
Víctor Falcón a961b24386 recover idempotent transaction sync 2025-12-30 07:50:04 +01:00
Víctor Falcón b641b23ca2 docs: add Coolify deployment instructions with direct template link 2025-12-30 07:22:19 +01:00
Víctor Falcón 797cb06f86 fix: auto-regenerate APP_KEY if invalid format (missing base64: prefix) 2025-12-30 07:22:19 +01:00
Víctor Falcón a7ee776af7 fix: use direct PDO connection test for MySQL readiness check 2025-12-30 07:22:19 +01:00
Víctor Falcón 39ef165655 Add production Docker setup for easy self-hosting with the CI-built image (#42)
- Add production Docker setup for easy self-hosting with the CI-built
image
- Build multi-architecture Docker images (amd64 + arm64)

### Changes

  Docker Production Setup
- Add docker-compose.production.yml for running the production image
locally
- Add docker/entrypoint.sh with automatic setup (migrations, caching,
storage, APP_KEY generation)
  - Add HEALTHCHECK to Dockerfile for container health monitoring
  - Add .env.production.example with documented production defaults

### CI/CD
  - Add QEMU for multi-arch builds
  - Build Docker images for both linux/amd64 and linux/arm64

### Coolify / WIP
  - Add templates/coolify/whisper-money.yaml one-click template
  - Includes MySQL service with health checks
  - Auto-generates credentials using Coolify's SERVICE_* variables

### Documentation
  - Update README with production Docker instructions
  - Add environment variable reference table
2025-12-30 07:22:19 +01:00
Víctor Falcón b52e2de987 fix: migration history 2025-12-30 07:22:19 +01:00
Víctor Falcón 9b5158dec2 docker: add new build-image step on github ci 2025-12-30 07:22:19 +01:00
Víctor Falcón 700f9325a3 Add currency selection to user profile settings (#41) 2025-12-30 07:22:19 +01:00
Víctor Falcón 0f66ab7478 chore: update user-menu-content ui 2025-12-30 07:22:19 +01:00
Víctor Falcón 037699b424 chore: add repo star count to landing 2025-12-30 07:22:19 +01:00
Víctor Falcón bdde852b80 Add GitHub funding model to FUNDING.yml (#40) 2025-12-30 07:22:19 +01:00
Víctor Falcón 8966207dbc Add Ko-fi funding option for victor_falcon (#39) 2025-12-30 07:22:19 +01:00
Víctor Falcón db81c9b888 feat: add version tracking with git tags and changelog
- Add version field to package.json (0.1.0)
- Install release-it for automated releases with conventional changelog
- Create .release-it.json configuration
- Create initial CHANGELOG.md
- Share version via Inertia (reads from package.json)
- Display version in user dropdown menu
2025-12-30 07:22:19 +01:00
Víctor Falcón 4bc24c7bb2 chore: update PWA maskable icons 2025-12-30 07:22:19 +01:00
Víctor Falcón 818a49e799 fix(charts): mobile ui, and desktop tooltips 2025-12-30 07:22:19 +01:00