SafeSpend is a modern weekly expense tracker that helps you log spending, manage a budget, and stay financially aware — all through a clean, fast, mobile-first experience.
What is SafeSpend?
SafeSpend is a Progressive Web App (PWA) built to make weekly financial management simple and intuitive. Unlike complicated spreadsheet-based tools, SafeSpend focuses on one week at a time — encouraging healthier spending habits through short, achievable cycles.
Purpose of the App
Most personal finance apps overwhelm users with monthly reports and overwhelming category structures. SafeSpend was built to solve this by:
Keeping financial tracking simple and visual
Encouraging weekly budget discipline instead of monthly overload
Providing smart, AI-powered insights in plain language
Offering offline support so you can log expenses anywhere
Including a Mobile Money Wallet for seamless transactions
Who is it For?
🎓
Students
Manage allowances and weekly spending with ease.
💼
Young Professionals
Build disciplined money habits with weekly check-ins.
🏠
Households
Track family spending and stay within grocery/utility budgets.
📱
Mobile Money Users
Integrated wallet for MTN, Vodafone, AirtelTigo, and M-PESA.
Key Benefits
Feature
What You Get
Financial Health Score
A 0–100 score showing how well you're managing money this week
AI Insights
Personalized tips like "You're pacing 40% above last week's spending"
Quick Tip
SafeSpend is designed to be installed on your phone's home screen like a native app. Open the app in Chrome or Safari, tap the menu, and select "Install" or "Add to Home Screen."
Chapter 2
User Registration & Login
SafeSpend offers two ways to get started — a full account via Google Sign-In (recommended), or a quick Guest Mode for immediate use on a single device.
2.1 Signing Up with Google (Recommended)
Google Sign-In automatically sets up your profile, syncs data across devices, and unlocks the full feature set including the Wallet and Referral System.
Open SafeSpend in your browser (or tap the installed app icon).
On the login screen, click "Continue with Google".
A Google account picker will appear — select the account you want to use.
Grant the requested permissions (email, name, profile picture).
You'll be redirected back to the app, signed in and ready to use.
🖼️Screenshot: Login screen showing the logo, "Continue with Google" button, and "Continue as Guest" option
Why Google Sign-In?
Data automatically syncs across all your devices. Your expenses, wallet balance, and referral earnings stay with your account — not your device.
2.2 Continue as Guest
Guest mode is perfect if you want to try the app immediately without an account. All your data is saved locally on your device only.
On the login screen, click "Continue as Guest".
You'll be taken straight to the onboarding flow.
Complete setup (currency + weekly budget).
Start logging expenses right away.
Guest Mode Limitations
Guest mode cannot use the Wallet (for sending/receiving money) or the Referral System. If you clear your browser data, your guest data is permanently lost. Switch to Google Sign-In any time to unlock full features.
2.3 Profile Setup & Customization
Uploading a Profile Picture
Tap Settings (gear icon in the top-right header).
Tap your profile card at the top of the screen.
On the Profile screen, tap the camera icon on your avatar.
Choose an image from your device (max 5MB, JPG/PNG).
The image is automatically resized to 300×300 and saved.
Editing Your Display Name
From your Profile screen, tap Edit next to your name.
Confirm the prompt. You'll return to the login screen.
Data Safety
Signing out does not delete your data. Your expenses and wallet balance remain safe and reappear when you sign back in with the same Google account.
Chapter 3
Dashboard Overview
The Home screen is your financial command center. Everything important about your week is here — budget progress, health score, smart insights, and recent activity.
🖼️Screenshot: Home screen with greeting, budget card, Health Score gauge, streak counter, Weekly Challenge, and recent transactions
3.1 Home Screen Elements
A. Greeting & Time
The top of the screen shows a time-aware greeting ("Good morning / afternoon / evening") that updates every 60 seconds automatically.
B. Budget Card
A colored card showing:
Weekly Budget — your target for the week
Remaining — how much you still have to spend
Progress bar — visual representation (green → yellow → red as you approach the limit)
Spent Today — amount used since midnight
Days Left — days remaining before the week resets (Mondays)
C. Financial Health Score
A circular gauge displaying a score from 0 to 100 based on four signals:
Signal
Weight
What it Measures
Budget pace
40%
How close your spending is to the ideal daily pace
Category balance
25%
Whether spending is spread across categories (not all on one)
Logging consistency
20%
How often you log expenses throughout the week
Week-over-week trend
15%
Are you improving compared to last week?
D. Streak Counter
Orange flame card showing consecutive weeks under budget. Keep logging to keep the streak alive!
E. Weekly Challenge
"Beat Last Week" widget comparing your spending at the same day-index. Green means you're saving more; red means you're behind.
F. Quick Stats
Three small cards: Total Spent · Transaction Count · Daily Average.
G. Recent Transactions
Last 5 expenses with category icons and tags. Tap "View All" for the full history.
H. Smart Insights
Rotating AI-generated messages such as:
"🚨 Food spending is 2× last week — unusual jump"
"✨ Great pace! You're tracking to save $45 this week."
Use the refresh icon to cycle through all available insights.
I. Badges Strip
Horizontal scroll of achievements you've earned — First Expense, Prolific Logger, Month Strong, etc.
3.2 Navigation
SafeSpend uses a bottom navigation bar for the main screens:
🏠
Home
Dashboard with all your weekly stats.
➕
Add
Quick-access button to log a new expense.
📊
Analytics
Charts and category breakdowns.
📅
History
Full transaction log with search & filters.
The header also has:
Settings (⚙️) — top-right gear icon
Profile (👤) — your avatar on the right
Chapter 4
Expense Tracking
The core of SafeSpend is fast, friction-free expense logging. This chapter walks through adding, editing, and understanding your transactions.
4.1 Adding an Expense
From the bottom navigation, tap the Add (+) button.
Enter the amount (numbers only; currency prefix is automatic).
Optionally select a category from the 7-icon grid.
🍽️ Food🚗 Transport📄 Bills🛍️ Shopping🎬 Fun❤️ Health📌 Other
Type a note (optional) — e.g. "KFC lunch with Alex".
Add tags (optional, comma-separated) — e.g. "work, urgent, recurring".
Confirm the date (defaults to today).
Tap Save Expense.
Auto-Categorization
If you skip the category selection, SafeSpend's keyword engine infers it from your note. Write "Uber to office" and it auto-tags as Transport. Write "Netflix" → Bills. You'll see a small "auto" badge on the transaction.
If you try to log an expense larger than your remaining budget, SafeSpend shows a red warning modal:
Modal appears: "This will exceed your weekly budget!"
You're prompted to enter a reason for the emergency expense.
After providing justification, the expense is saved with an "emergency" tag.
The transaction is recorded for awareness — helpful during budget review.
Why the friction?
Emergency spending modal is intentional friction — it forces a moment of reflection before breaking your budget. Over time, this builds better habits.
4.4 Weekly Reset & Carry-Over
SafeSpend operates on a Monday-to-Sunday week. Every Monday at 00:00 local time:
The previous week is automatically archived to your History.
A new weekly budget begins.
If Carry Over Savings is enabled in Settings, unused budget from last week is added to the new week.
4.5 Tags & Notes Best Practices
Be specific in notes — "Lunch with Sarah" beats "Food" for future reference.
Use tags for search — tag work expenses "work" to filter them later for reimbursement.
Tag recurring expenses "monthly" or "subscription" — SafeSpend detects them automatically anyway, but explicit tags help.
Max 8 tags per transaction; tags are lowercased automatically.
Chapter 5
Budget Management
Your weekly budget is the foundation of SafeSpend. This chapter covers setting, adjusting, and funding it.
5.1 Setting Your Weekly Budget
During onboarding you set an initial budget. You can change it anytime:
From the Home screen, tap the edit icon (✏️) on your budget card.
You'll land on the Weekly Setup screen.
Adjust the Weekly Budget Amount field.
Toggle options:
Carry Over Savings — unused money rolls to next week
Spending Alerts — warns at 80% budget usage
Tap Save Setup.
Budget Changes Mid-Week
Changing your budget mid-week doesn't reset the week. It adjusts your remaining target. Your transaction log stays intact.
5.2 Funding Your Budget (Top-Up)
Instead of fixed weekly budgets, you can "fund" your budget dynamically — simulating a real-world allowance or paycheck top-up.
On the Home screen, tap the plus icon (➕) on your budget card.
The Fund Budget screen opens with two tabs:
Mobile Money — top up via MTN MoMo, Vodafone Cash, AirtelTigo, or M-PESA
Card — credit or debit card
Enter the amount you want to add.
For Mobile Money: select network → enter phone number → tap "Pay with Mobile Money" → enter OTP (auto-generated & shown in amber banner during demo mode).
For Card: enter card number, cardholder name, expiry, and CVV.
Tap the payment button — you'll see a 2-3 second simulation overlay.
On success, your budget increases by the top-up amount.
Demo Mode
Payments are currently simulated for testing. Real Mobile Money integration plugs into the processMomoTransaction() function via a Cloud Function with provider credentials.
5.3 Budget vs Spending Tracking
The progress bar on your budget card visually communicates status:
% Used
Color
Meaning
0 – 50%
🟢 Green
On track — plenty of budget left
50 – 80%
🟡 Yellow
Slow down — over half spent
80 – 100%
🟠 Orange
Warning — approaching limit
100%+
🔴 Red
Over budget — immediate attention needed
5.4 Understanding Your Spending Pace
Pace is calculated as: (spent / budget) ÷ (days elapsed / 7)
Pace = 1.0 — spending exactly on target
Pace > 1.2 — overspending; AI will warn you
Pace < 0.7 — saving well; AI will encourage you
Pro Tip
Check your pace on the Home screen every evening. A quick glance tells you whether to be more cautious tomorrow.
Chapter 6
Mobile Money Wallet
The Wallet is a built-in savings account that lives alongside your expense tracker. Deposit money from Mobile Money, send to other SafeSpend users, or withdraw back to your Mobile Money account — all from one screen.
💳Screenshot: Wallet dashboard with green gradient balance card, three action buttons (Add Money, Send, Withdraw), and transaction history with In/Out filter tabs
6.1 Accessing the Wallet
Open Settings (gear icon, top-right).
Tap the green Mobile Money Wallet card.
The Wallet Dashboard opens, showing your current balance.
Google Sign-In Required
The Wallet requires cross-device sync, which only works with Google Sign-In. Guest mode users will see a prompt to sign in.
6.2 Depositing Money
Fund your wallet from your Mobile Money account:
On the Wallet Dashboard, tap Add Money.
Select your network: MTN, Vodafone, AirtelTigo, or M-PESA.
Enter your Mobile Money phone number.
Enter the amount to deposit.
Tap "Pay with MoMo".
Wait for the 2-second processing overlay.
On success, your wallet balance updates immediately.
6.3 Sending Money
Send to another SafeSpend user by email or to any external Mobile Money number:
Tap Send on the Wallet Dashboard.
In the Recipient field, enter:
An email address → system looks up the SafeSpend user
A phone number → treated as external Mobile Money
Preview card appears confirming the recipient.
Enter the amount (must be ≤ your available balance).
Add an optional note.
Tap Continue.
Enter your 4-digit Wallet PIN (see 6.5 for setup).
Transfer completes instantly for SafeSpend-to-SafeSpend sends.
SafeSpend vs External TransfersSafeSpend-to-SafeSpend transfers are instant and free — recipient sees the money immediately in their wallet. External MoMo transfers route through the mobile money provider and may carry network fees.
6.4 Withdrawing Money
Move money from your wallet back to your Mobile Money account:
Tap Withdraw on the Wallet Dashboard.
Select your network.
Enter the destination phone number.
Enter the amount (≤ available balance).
Tap Continue.
Enter your 4-digit Wallet PIN.
Processing overlay runs for 2 seconds; success toast appears.
6.5 Setting Up Your Wallet PIN
The first time you attempt to Send or Withdraw, a PIN setup modal appears:
Enter a 4-digit PIN of your choice.
Tap Continue.
Re-enter the same PIN to confirm.
Tap Save PIN.
Your PIN is hashed and saved. You'll enter it for all future wallet transactions.
Security
Your PIN is stored as a SHA-256 hash with a unique random salt. SafeSpend never stores your raw PIN, and cannot retrieve it. If you forget it, contact support to reset.
6.6 Transaction History
All wallet activity appears on the Wallet Dashboard with filter tabs:
All — every transaction
In — money received (deposits, incoming transfers)
Out — money sent (outgoing transfers, withdrawals)
Each row shows:
Transaction type icon (⬇ deposit, ➡ send, ⬆ withdraw)
Counterparty (user name or MoMo network + phone)
Time ago label
Amount with +/- prefix, colored by direction
6.7 Wallet Balance
Your wallet balance is computed from your transactions — never stored as a single number. This means:
Impossible to forge a balance (fraud-proof)
Perfect audit trail — every movement is traceable
Balance always matches the sum of transactions
Chapter 7
Reports & Analytics
7.1 Analytics Screen
Tap Analytics in the bottom navigation to see:
Budget vs Spent card — headline numbers for the week
Category breakdown pie chart — visual distribution of spending across categories
Daily spending bar chart — spending by day of the week
Top categories list — ranked by amount with percentage
📊Screenshot: Analytics screen with donut chart showing category distribution and bar chart of daily spending
7.2 History Screen
Tap History in the bottom navigation. Features:
Full-text search — searches notes, tags, and amounts
Category filter pills — tap any category to filter
Date range dropdown — This week / 7d / 30d / 90d / All time
Grouped by date — Today, Yesterday, weekday labels
Summary chip — total count and total spent for current filter
Reset button — clears all filters at once
7.3 Exporting Reports
CSV Export
On the History screen, tap the CSV icon (top-right).
A file downloads: safespend-transactions-YYYY-MM-DD.csv
Open with Excel, Google Sheets, or any spreadsheet tool.
Use CSV for Accounting, PDF for Sharing
CSV is perfect for importing into bookkeeping tools. PDF is ideal for sharing with a financial advisor, boss (for reimbursements), or simply keeping monthly archives.
7.4 Understanding the Analytics Charts
Category Donut Chart
Each segment represents a category's share of your total spending. Larger slices = bigger spending.
Daily Spending Bar Chart
Shows how spending is distributed across the 7 days of the week. Weekend peaks are common; large spikes on a single day suggest impulse spending.
Chapter 8
Notifications & Alerts
8.1 Types of Notifications
Type
When it Fires
Where
Daily Reminder
Configured time each day (default 8:00 PM)
System notification
Budget Warning
When 80% of budget is used
In-app toast + visual
Emergency Modal
Expense exceeds remaining budget
Full-screen modal
Referral Activated
Someone you referred logs first expense
In-app toast
Wallet Transaction
After successful deposit/send/withdraw
In-app toast
Smart Insight Rotation
Based on spending patterns
Home screen carousel
8.2 Enabling Daily Reminders
Go to Settings.
Find Daily Reminder.
Toggle the switch ON.
Your browser will ask for notification permission — click Allow.
Optionally change the reminder time (default 8:00 PM).
What the reminder says:
"SafeSpend Reminder 💰 — Have you logged today's expenses?"
Browser Permission
If you accidentally deny permission, you'll need to re-enable it manually in your browser settings (Site Settings → Notifications).
8.3 In-App Toasts
Small notification cards slide up from the bottom for:
Successful expense added
Payment confirmed / failed
PIN verified / incorrect
Referral linked / activated
Wallet transaction completed
They auto-dismiss after 3 seconds.
Chapter 9
Security Features
SafeSpend is built with bank-grade security practices at every layer.
9.1 Authentication
Google Sign-In via Firebase Authentication (OAuth 2.0)
No passwords stored by SafeSpend — handled by Google
Your session is token-based and auto-renews
Sign out from any device invalidates that session
9.2 Wallet PIN
4-digit PIN required for all wallet transactions (send/withdraw)
PIN is SHA-256 hashed with a random per-user salt
Salt is generated via crypto.randomUUID() — cryptographically strong
Raw PIN never leaves your device or reaches any server
Three wrong attempts show a shake animation and error message
9.3 OTP Verification
Budget top-ups via Mobile Money require a 6-digit OTP:
Auto-generated with 5-minute expiry
Displayed in amber banner (currently demo mode)
Auto-submit when all 6 digits entered
"Resend" button generates a fresh code
9.4 Firestore Security Rules
Data stored in Firebase is protected by strict server-side rules:
Users can only write their own data — can't modify another user's profile, wallet, or referrals
Wallet balance is computed, never stored — impossible to forge
Transactions are immutable — once created, cannot be edited or deleted
Self-referral blocked — cannot refer yourself
Reward amounts capped — referral rewards limited to $100 max
9.5 Fraud Prevention
Attack Vector
Protection
Fake balance inflation
Balance computed from transactions; can't be directly written
Self-referral for commission
Rules block referrerId == refereeId
Duplicate-account farming
SHA-256 device fingerprint check on signup
Transaction tampering
Audit trail is immutable (no update/delete)
Inflated reward amounts
Server-side cap of 100 per referral
9.6 Best Practices for Users
Use a strong PIN — avoid 1234, 0000, or your birth year
Don't share your Google password — Google Sign-In gives full access
Sign out on shared devices — public computers especially
Keep the app updated — pull the latest version regularly
Review your transactions weekly — catch anything unexpected quickly
Enable browser notifications carefully — only allow trusted apps
Privacy Promise
SafeSpend never sells your data. Your expenses, wallet activity, and financial patterns stay with you. Data is encrypted in transit (HTTPS) and at rest (Firebase).
Chapter 10
Referral System
Invite friends to SafeSpend and earn commission when they sign up and start using the app.
10.1 How It Works
You share your unique referral link with a friend.
They click the link and sign up with Google.
Their account is automatically linked as your referral (status: Pending).
When they log their first expense, the referral becomes Active.
You earn a fixed commission (5 units in your chosen currency).
🎁Screenshot: Referral Dashboard with unique code, share buttons (Copy / WhatsApp / SMS / More), stats grid, and history list
10.2 Accessing the Referral Dashboard
Go to Settings.
Tap the purple/indigo Refer & Earn card.
The dashboard opens with your code, link, and stats.
10.3 Sharing Your Link
Your referral code has the format SAFE-XXXXX (e.g. SAFE-X9K2P).
Your link looks like: https://yourapp.url/?ref=SAFE-X9K2P
The dashboard provides four share methods:
Button
What it Does
📋 Copy
Copies link to clipboard for pasting anywhere
💬 WhatsApp
Opens WhatsApp with pre-filled message including your link
auth/operation-not-allowed → Enable Google provider in Firebase Console → Authentication → Sign-in method
auth/network-request-failed → Check your internet connection
Sign-in popup closes immediately
Popup blockers are likely active — check browser toolbar for blocked popup icon
Try clicking the Google button again; browsers sometimes need a second try
12.2 App Shows Old Version
If you've just updated and the app still looks like the old one:
Press Ctrl+Shift+R (or ⌘+Shift+R on Mac) to hard-reload.
If still old, open DevTools → Application tab → Service Workers → click Unregister.
Reload the page once more.
Alternatively, tap the "Clear cache & reload" button in any error banner.
12.3 OTP Not Appearing
Budget top-up OTP should show in an amber banner inside the OTP modal.
Make sure you're using Mobile Money (not Card) — OTP only appears for MoMo
Wait 1-2 seconds after clicking Pay — the banner appears after generation
If the banner is empty, tap Resend OTP to generate a new one
12.4 Wallet Issues
Why can't I access the Wallet?
The Wallet requires Google Sign-In. Guest mode users see a "Sign in with Google" prompt.
I forgot my wallet PIN!
PIN resets aren't available in-app (security). Contact support or reset via Firebase Console by removing the walletPinHash field from your user doc.
Can I send money to any phone number?
Yes — but if the number isn't a registered SafeSpend user, it's treated as an external Mobile Money recipient. SafeSpend-to-SafeSpend is instant; external sends go through the MoMo provider.
12.5 Time Display Incorrect
If the greeting says "Good morning" when it's evening:
The greeting refreshes every 60 seconds automatically.
If it's still wrong, the tab may have been inactive — switch away and back to trigger a refresh.
Hard-reload to reset all timers.
12.6 Referral Link Not Working
My friend clicked the link but I didn't earn commission.
Three things must happen:
Friend clicked the link (?ref=SAFE-XXXXX)
Friend signed in with Google (guest mode doesn't count)
Friend logged their first expense
If all three are done, refresh your Referral Dashboard.
"Sign-in failed" on a referred user's device
The referral code may have been captured but sign-in failed. Tell them to try again and check the URL still includes ?ref=SAFE-XXXXX.
12.7 Data Not Syncing Across Devices
Only Google Sign-In accounts sync. Guest mode is device-only.
Make sure you're signed in with the same Google account on both devices.
Firestore must be enabled in Firebase Console for sync to work.
Check your internet connection — sync requires a live connection.
12.8 Can't Install as PWA
Use Chrome, Edge, or Safari (other browsers may not support PWA install)
The app must be served over HTTPS (not http://localhost for install prompt)
Look for the install icon in the URL bar, or use browser menu → "Install SafeSpend"
Chapter 13
Frequently Asked Questions
Is SafeSpend free?
Yes, 100% free to use with all core features included.
Is my financial data safe?
Yes — stored in Firebase with bank-grade encryption. SafeSpend never sells your data, shows ads based on spending, or shares with third parties.
Does it work offline?
Yes. SafeSpend is a Progressive Web App with offline support. You can log expenses without internet; they sync when you're back online.
Can I import data from another app?
Not currently — SafeSpend focuses on fresh weekly tracking. If you need imports, export your previous data as CSV and reference it alongside.
Can I change my currency later?
Yes, anytime from Settings. All existing amounts stay as numbers; only the symbol changes. You may want to manually adjust for exchange rates.
Do I need to manually reset every week?
No — SafeSpend automatically archives the previous week every Monday at midnight.
What's "Carry Over Savings"?
If you spent less than your budget, the unused amount rolls into next week's budget. Enabled in Settings → Weekly Setup.
How are referrals paid out?
Withdrawals (minimum 20 units) are processed manually within 3-5 business days via Mobile Money or Bank Transfer.
Are Mobile Money transactions real?
Currently simulated for testing. Real integration requires connecting to an approved MoMo provider (MTN OpenAPI, Flutterwave, Paystack) via Cloud Functions.
Can I delete my account?
Yes — contact support, or remove your user document from Firestore manually. "Reset All Data" in Settings clears local data but keeps your Firestore records.
Why Monday-to-Sunday weeks?
It matches ISO 8601 and most people's mental model of "a week." Starts Monday, ends Sunday.
Will there be an iOS / Android app?
SafeSpend IS a native-quality app on both — via PWA installation. Install from your browser's menu for a home screen icon. No app store required.
Chapter 14
Conclusion
Thank you for choosing SafeSpend! You now have everything you need to take control of your weekly finances.
Summary of What You Learned
✅ How to sign up, log in, and set up your profile
✅ How to add, categorize, and tag expenses
✅ How to manage your weekly budget and carry over savings
✅ How to use the Mobile Money Wallet for deposits, sends, and withdrawals
✅ How to interpret your Financial Health Score and AI Insights
✅ How to export reports as CSV or PDF
✅ How to invite friends and earn referral commissions
✅ How to keep your account secure with PIN and OTP
✅ How to troubleshoot common issues
Our Philosophy
SafeSpend is built on the belief that small, consistent actions compound into big financial wins. Logging a single expense takes 10 seconds. Doing it daily for a year gives you 365 data points about your life — more than most people ever have. That's the foundation for real financial clarity.
Future Improvements
We're actively working on:
🔌 Real Mobile Money API integration (MTN, Flutterwave, Paystack)
📧 Email notifications for transactions and weekly summaries
📸 Receipt photo upload with automatic OCR extraction
🎙️ Voice input for quick expense logging
👥 Multi-user households with shared budgets
🏦 Bank account sync via Plaid/Mono for automatic imports
🔔 Firebase Cloud Messaging for cross-device push notifications
Getting Help
If you run into issues:
Consult Chapter 12: Troubleshooting first
Check the Chapter 13: FAQ
Open browser DevTools (F12) and check the console for detailed errors
Contact SafeSpend support through the app's settings
Stay Connected
Follow updates, request features, and share feedback:
One Last Thing
The best budget is the one you actually stick to. Don't aim for perfection — aim for consistency. A week logged imperfectly is better than a week not logged at all. You've got this. 💪