Fellowship Housing Budget Tracker

Tester Documentation — Proof of Concept
For QA & Internal Testing

1. What this app is

The Fellowship Housing Budget Tracker is a simple, mobile-first web application that helps families track their monthly income and expenses. It is built as a Proof of Concept (POC) — a working prototype intended to validate the core user experience, gather feedback, and de-risk technical decisions before we invest in a full native mobile app.

POC scope: This is not a finished product. Some screens are stubs ("Coming soon"), some flows have rough edges, and some data is not yet persisted across all surfaces. Your feedback as testers is the primary point of building it.

2. What we're trying to do

The POC has three goals:

  1. Validate the user experience. Can our target users (see below) actually use this to set a budget and track expenses without help?
  2. Prove the architecture. The backend is an API-first PHP service so the same endpoints can later power a native mobile app without a rewrite.
  3. Validate integrations. Confirm that SMS verification (Sinch), file storage (Cloudinary), and database hosting work end-to-end on our staging stack.

3. Who it's for

The end users are single mothers in Fellowship Housing's program, many of whom have low financial literacy and may be using a budgeting tool for the first time. This shapes every design decision:

When testing, please mentally place yourself in this audience. If something would confuse a first-time user, that's a bug worth reporting even if it works "correctly."

4. How it generally works

The user journey

1
Sign in with a phone number or email. The system sends a 6-digit verification code.
2
Enter the code to log in. The session lasts 30 days.
3
Set up a budget by adding income sources and expense categories with monthly amounts.
4
Log expenses as they happen. Each transaction is tagged to a budget category.
5
See the running totals — remaining balance, category spend vs. budget.

The technical shape

The app is a single-page web app (HTML / CSS / vanilla JavaScript) talking to a PHP REST API backed by MySQL. There is no framework on the frontend — this keeps the POC small and portable.

LayerTechnologyNotes
FrontendVanilla JS, HTML5, CSS3Single-page, mobile-first.
Backend APIPHP 7.4+ with PDORESTful JSON, token auth.
DatabaseMySQL 5.7+Hosted on staging.
SMSSinch APIFor verification codes.
File storageCloudinaryFor receipts (planned).
Web serverApache + mod_rewriteSPA routing via .htaccess.

5. Accessing the app

Open the staging URL provided by the dev team in a modern browser (Chrome, Safari, Edge, or Firefox). The app works on:

Tip: If something looks broken after a deploy, do a hard refresh (Ctrl + Shift + R on Windows, Cmd + Shift + R on Mac) to clear the cached CSS/JS.

6. Logging in (auth flow)

There is no password. Auth is done via a one-time code:

  1. Enter a phone number (any format works: 5551234567, (555) 123-4567, +1-555-123-4567) or an email address.
  2. Click Send Code.
  3. You'll receive a 6-digit code by SMS or email.
  4. Enter the code on the next screen and click Login.
If you don't receive the code: SMS delivery depends on Sinch being configured for the test environment. If you're testing in dev mode, the code may be written to the PHP error log instead of being sent. Ask the dev team for the most recent code, or have them query the verification_codes table.

7. Features to test

Budget tab

The home screen after login. Shows a summary card at the top (income, expenses, remaining) and two sections below for income and expense budgets.

Expenses tab

Where you log actual transactions as they happen.

Goals / Reports / Support tabs

These tabs exist in the navigation but currently show "Coming soon" placeholders. That is expected for the POC. You can still tap them to confirm navigation works.

Language switching

The login screen has a language selector (English / Español). Switching should change UI strings on supported screens. Spanish coverage is partial — please flag any English text that should be translated.

Logout

Tap the logout icon in the top-right of the header. You should be returned to the login screen and your session cleared.

8. Feature status at a glance

FeatureStatusNotes
Phone & email authWorkingSMS via Sinch, code valid 10 min.
Add income & expense budgetsWorking30+ default categories.
Log expense transactionsWorkingLinked to budget categories.
Budget summary totalsWorkingIncome, expenses, remaining.
Bottom-nav navigationWorking5 tabs.
LogoutWorking
Spanish translationPartialSome screens not yet translated.
Goals tabNot startedPlaceholder only.
Reports / chartsNot startedPlaceholder only.
Support / communityNot startedPlaceholder only.
Receipt uploadNot startedCloudinary wired but no UI.
Split transactionsNot startedPlanned.
Push notificationsNot startedPlanned.

9. Suggested test plan

If you have ~20 minutes, walk through this happy path end-to-end:

  1. Open the app on your phone. Confirm only the login screen is visible.
  2. Enter your phone number and request a code.
  3. Enter the code and log in.
  4. Add an income: Salary — $2,000.
  5. Add three expense budgets: Rent $800, Groceries $400, Transportation $200.
  6. Confirm the summary card shows: income $2,000, expenses $1,400, remaining $600.
  7. Switch to Expenses.
  8. Log a transaction: "Walmart" — Groceries — $85.
  9. Log another: "Gas station" — Transportation — $45.
  10. Switch back to Budget. Confirm Groceries now shows $85 spent and Transportation $45 spent.
  11. Tap each of the other tabs — confirm they show "Coming soon" without errors.
  12. Log out. Confirm you're back at the login screen.
  13. Log back in. Confirm your data is still there.

Then explore freely — try edge cases:

10. Tester checklist

Print or copy this. Tick off as you go and note anything that didn't behave as expected.

11. Known limitations

12. Reporting issues

When you find a bug, please include:

  1. What you did — the exact steps to reproduce.
  2. What you expected to happen.
  3. What actually happened.
  4. Device & browser — e.g. "iPhone 14, Safari" or "Pixel 7, Chrome 120".
  5. A screenshot or short screen recording if you can.
  6. The phone number / email you used to log in (helps the dev team find your data).
  7. Approximate time the issue happened (helps with log lookup).
Anything that confused you counts as a bug. Even if the app technically did what it was supposed to, if a real user (a single mother using this for the first time on her phone) would have been confused, that's worth reporting.

Send reports to the development team at Project World Impact via your usual channel (Slack, email, or your assigned ticket tracker).