ITAPPDEV 3 · Final project documentation
Product Requirement Document (PRD)
Product scope, verified features, user needs, and acceptance criteria.
Document revision: 1.0 · Updated November 8, 2026 · Author: Leiji Mark Gaviola
Production version: See Google Play for release details. Distribution: Production. Source reviewed: See release configuration.
Evidence: the supplied CoinQuest.aia screen definitions, active Blockly blocks, project properties, existing website, and screenshots. The developer confirmed the production version on November 8, 2026. Source inspection establishes implementation evidence, not runtime certification of the distributed build. Unverified details and proposed work are explicitly identified.
1. Document overview
This PRD defines the product baseline, intended users, functional expectations, and acceptance criteria for CoinQuest. Implemented means present in the supplied AIA; acceptance checks below still require execution on the release build. It supports the ITAPPDEV 3 final project and does not replace the later instructor-formatted proposal.
2. Product introduction
CoinQuest is a Gamified Personal Expense Tracker for Android, developed using MIT App Inventor. It combines manually recorded income, expenses, savings goals, financial summaries, and motivational game elements. It records money activity; it does not hold or transfer funds.
3. Background and problem statement
Small purchases and irregular income can be difficult to remember. Separate notes make financial summaries and progress toward a savings goal harder to review. CoinQuest brings these records into one app and uses visible milestones to encourage regular tracking. Improved habits are an intended outcome, not a measured or guaranteed financial result.
4. Project objectives
- Provide a clear dashboard for recorded balance, income, expenses, and savings progress.
- Support consistent manual recording with validation and immediate feedback.
- Make transaction review, category spending, and monthly totals accessible.
- Encourage savings through goals, XP, levels, badges, and completion history.
- Provide contextual Help and money tips without requiring a remote account.
5. Target users
Students, allowance recipients, and other Android users who want approachable personal money tracking are intended users. The source uses Philippine peso formatting. Formal audience age classification, accessibility research, and supported distribution regions require confirmation from the developer and Play Console.
6. Product scope
The implemented baseline is a single-device, manually maintained tracker with local TinyDB storage and one active savings quest. Multiple completed goals may be retained as history. Banking integrations, automatic transaction import, accounts, cloud synchronization, financial advice, and real monetary rewards are outside the verified scope.
7. Core features
| Feature | Verified source evidence and behavior |
|---|---|
| Dashboard | Dashboard: starting balance, income, expenses, current balance, goal preview, XP/level, badges, sound toggle, quick actions, and money tip. |
| Income and expenses | AddIncome and Expenses: named amount/date entries, expense category, saved lists, and totals. |
| Savings and completion history | SavingsGoal: goal name, target, current savings, savings contributions, milestones, celebration, and completedGoalsHistory persistence. |
| Transaction history | History: income/expense list with type and category filters; review-only. |
| Reports | Reports: overall totals, category totals, monthly summary, and month/year financial filters with income, expenses, net, and categories. |
| Achievements and challenges | Milestone-based savings quests, XP, levels, and four badges are implemented. A separate daily/weekly challenges system is not verified. |
| Help and tips | Help has eight guide topics with contextual entry; Dashboard selects money tips. Screen1 provides loading/welcome messages. |
8. Functional requirements
- FR-01: Dashboard shall display starting balance + total income − total expenses.
- FR-02: Users shall save income with source, positive amount, and selected date.
- FR-03: Users shall save expenses with name, positive amount, category, and selected date.
- FR-04: Users shall create/update a named savings goal with positive target and nonnegative current savings, and add positive contributions.
- FR-05: Completed goals shall appear in retained completion history.
- FR-06: History shall filter saved transactions by type and expense category.
- FR-07: Reports shall present totals, category spending, monthly activity, and selected month/year net income.
- FR-08: Eligible savings milestones shall award XP once per claimed milestone and update level/badges.
- FR-09: Users shall open contextual Help and enable/disable sound effects.
- FR-10: Users shall install the production app through its official Google Play listing.
9. Non-functional requirements
Required qualities are readable Android layouts, persistent local records across restarts, clear validation messages, and consistent peso formatting. Performance and reliability targets: ordinary actions should respond within one second for a 1,000-record test dataset on the agreed reference device; no crashes or data loss during the core acceptance workflow. These are proposed acceptance targets, not measured results. Accessibility and large-font behavior need device testing.
10. User workflows
- Install from Google Play → open → complete/skip loading → Start My Quest → Dashboard.
- Dashboard → Income → enter source/positive amount/date → Save → review income/history/reports.
- Dashboard → Expenses → enter name/positive amount/category/date → Save → review totals.
- Dashboard → Savings Quest → create goal → add savings → reach milestones → view celebration → continue → inspect completed-goal history.
- Dashboard → Reports → choose month/year → review income, expenses, net, and category totals.
- Any supported screen → ? → contextual Help → Back/Next/Done or Close.
11. User interface requirements
Retain the green-and-gold CoinQuest identity, mascot, illustrated states, and visible progress bars. Labels must identify financial values and required inputs. Distinguish empty lists, errors, saved confirmations, and celebrations. Keep navigation and sound controls discoverable. Website Help must support keyboard-accessible, responsive PRD/TRD dialogs and standalone printable documents.
12. Data management requirements
Persist transaction lists, totals, starting balance, active goal, savings progress, claimed milestones, XP, badges, completion history, and sound preference using TinyDB. Avoid duplicate completion entries and repeated milestone rewards. Financial reports depend on manually recorded entries. No verified export, cloud recovery, or transaction edit/delete workflow is promised. Retention, Android backup, and user-facing deletion procedures require release verification.
13. Privacy and security considerations
Financial entries are sensitive. Source evidence shows local storage and no declared cloud/authentication components in reviewed screens. This alone does not establish encryption, absence of network traffic in a compiled build, or Android backup behavior. Verify the exact release permissions, dependencies, data flows, and Data Safety declaration. The existing privacy policy remains marked draft pending reconciliation; production availability does not resolve that review.
14. Limitations and assumptions
One active goal and manually entered peso records are the verified baseline. Saved transaction descriptions use delimiter-separated strings, which may affect parsing if user text includes the delimiter. The source version matches the developer-confirmed production version, but binary equivalence is not established. Minimum SDK 24 is specified in the AIA; actual device compatibility is determined by the release and Play listing. No separate challenge engine or multi-user system is verified.
15. Acceptance criteria
| Requirement | Release-build acceptance check |
|---|---|
| FR-01–03 | Starting balance 1,000 + income 500 − expense 125 displays ₱1,375. Restart preserves entries and totals. Blank names, zero/negative amounts, and missing dates do not save. |
| FR-04–05, FR-08 | Create a ₱1,000 target; add ₱250 four times. Verify milestone XP 25/50/75/150, no repeat reward on reopening, completion history once, and retained history after beginning another goal. A target below ₱100 earns no XP. |
| FR-06–07 | Seed two months and categories. Check type/category filters, monthly income and expense totals, and net = monthly income − monthly expenses. |
| FR-09 | Open Help from every supported screen; Back/Next/Done works. Sound setting persists after restart. |
| FR-10 and website | Play buttons use the correct package and secure new-tab attributes. Help documents open, close with Escape/button/backdrop, restore focus, and print legibly. |
These criteria are a test plan; source inspection does not mark them as passed.
16. Future improvements
Proposed, not implemented: structured transaction records and migration, editing/deletion, export and optional recovery, stronger accessibility validation, automated regression tests, and separately designed recurring challenges. Any future synchronization, authentication, or analytics requires an architecture and privacy review before being described as available.