You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Automatic data integration**: Pre-populates with your current portfolio and expense data
99
+
88
100
### 🏆 **Hall of Fame Rankings**
89
101
-**Personal financial records** across all time
90
102
-**Best/Worst months** by net worth growth, income, and expenses (Top 20)
@@ -256,6 +268,132 @@ See [SETUP.md](./SETUP.md#registration-control) for details.
256
268
257
269
---
258
270
271
+
## 🧪 Development Features
272
+
273
+
### Test Snapshot Generator
274
+
275
+
For development and testing purposes, the application includes a **bulk test snapshot generator** that creates realistic historical data to test charts, statistics, and UI components.
276
+
277
+
#### How to Enable
278
+
279
+
1.**Set environment variable** in your `.env.local`:
280
+
```bash
281
+
NEXT_PUBLIC_ENABLE_TEST_SNAPSHOTS=true
282
+
```
283
+
284
+
2.**Navigate to Settings page** in the application
285
+
286
+
3.**Scroll to "Funzionalità di Sviluppo"** section (only visible when enabled)
287
+
288
+
4.**Click "Genera Snapshot di Test"** button
289
+
290
+
#### What It Does
291
+
292
+
The test data generator creates:
293
+
294
+
**1. Historical Monthly Snapshots** (going back N months, configurable up to 120)
295
+
- Initial net worth: Configurable (default: €50,000)
- Expenses → `expenses` collection (with IDs starting with `dummy-`)
355
+
- Categories → `expenseCategories` collection (with IDs starting with `dummy-category-`)
356
+
357
+
All test data will appear in your charts, statistics, and Hall of Fame alongside real data.
358
+
359
+
#### 🗑️ Removing Test Data
360
+
361
+
You have two options to remove test data:
362
+
363
+
**Option 1: Use the Built-in Delete Button (Recommended)**
364
+
1. Navigate to **Settings** page in the application
365
+
2. Scroll to **"Funzionalità di Sviluppo"** section
366
+
3. Click **"Elimina Tutti i Dati Dummy"** button
367
+
4. Review the count of items to be deleted
368
+
5. Confirm deletion
369
+
370
+
This will remove all dummy snapshots, expenses, and categories in one operation.
371
+
372
+
**Option 2: Manual Firebase Console Deletion**
373
+
1. Open [Firebase Console](https://console.firebase.google.com/)
374
+
2. Navigate to Firestore Database
375
+
3. Select your project
376
+
4. Delete test documents from these collections:
377
+
-`monthly-snapshots`: Documents with `isDummy: true` field
378
+
-`expenses`: Documents with IDs starting with `dummy-`
379
+
-`expenseCategories`: Documents with IDs starting with `dummy-category-`
380
+
381
+
**Recommendation**: Only use this feature in a development/test environment or in a separate Firebase project to avoid mixing test data with real financial data.
382
+
383
+
#### Use Cases
384
+
385
+
-**Testing charts** with historical data without waiting months for real snapshots
386
+
-**Hall of Fame testing** with realistic income/expense variations to see best/worst months and years
387
+
-**FIRE calculator testing** with actual expense data to validate sustainable withdrawal calculations
388
+
-**Monte Carlo simulation testing** with realistic equity/bonds returns and volatilities that differ appropriately (equity higher return/volatility, bonds lower)
389
+
-**Expense analytics testing** to verify category breakdowns, trends, and monthly comparisons
390
+
-**UI development** to see how components handle different data scales and edge cases
391
+
-**Performance testing** with large datasets (up to 120 months of data)
392
+
-**Demo purposes** to showcase the application's full capabilities
393
+
-**Development** of new features requiring historical portfolio and expense data
394
+
395
+
---
396
+
259
397
## 🔄 Price Data Providers
260
398
261
399
This project uses **Yahoo Finance** by default (free, no API key required).
@@ -449,6 +587,7 @@ See the [LICENSE](./LICENSE) file for the full license text.
449
587
- ✅ Hall of Fame personal financial rankings
450
588
- ✅ Registration control system
451
589
- ✅ Cost basis tracking with unrealized gains and tax estimation
590
+
- ✅ Monte Carlo retirement simulations
452
591
453
592
### Future Enhancements (Planned 🔜)
454
593
- 🔜 PDF export of portfolio reports
@@ -463,7 +602,6 @@ See the [LICENSE](./LICENSE) file for the full license text.
463
602
- 🚀 CSV/Excel import for bulk asset additions
464
603
- 🚀 Risk analysis (volatility, max drawdown, correlation)
# Development Features (optional - for testing/demo)
205
+
NEXT_PUBLIC_ENABLE_TEST_SNAPSHOTS=false
203
206
```
204
207
205
208
**How to get the values:**
206
209
- Firebase Client SDK values: From Firebase Console → Project Settings → Your apps
207
210
-`FIREBASE_SERVICE_ACCOUNT_KEY`: Paste the entire content of the downloaded JSON file
208
211
-`CRON_SECRET`: Generate a random string (e.g., use `openssl rand -hex 32`)
212
+
-`NEXT_PUBLIC_ENABLE_TEST_SNAPSHOTS`: Set to `true` to enable dummy data generation in Settings page (for development, testing, or demo purposes). **Warning**: Test data is saved to the same Firebase collections as real data. You can delete all dummy data using the "Elimina Tutti i Dati Dummy" button in Settings. See [README.md](./README.md) for full feature documentation. **Recommended**: Keep `false` in production environments.
209
213
210
214
**For detailed Firebase Admin SDK configuration on Vercel, see [VERCEL_SETUP.md](./VERCEL_SETUP.md)**
0 commit comments