Product Requirement Document
PrintWise — Student Printing Cost Decision Support System
Prepared 5 November 2026 · Based on the implemented PrintWise build.
1. Product overview
PrintWise is a browser-based decision support application for students comparing printing estimates. A user describes a document, printing preferences and budget; the system evaluates configured shops, saves eligible quotes, and explains its recommendation.
The product supports normal users and administrators. It provides assessment history, what-if revisions, analytics and printable reports while retaining saved quote snapshots. It is an academic project developed by Neil Anthony R. Adame, BSIT 3A WMAD, with Dr. Erick R. Abuzo as IT consultant.
2. Problem and intended outcome
Students often compare printing prices informally without accounting for paper size, color, duplex sheet rounding, finishing fees or total copies. This can produce estimates that exceed the available budget or recommend a shop unable to provide the requested options.
PrintWise makes the calculation and eligibility rules visible, compares like-for-like options, and preserves the assumptions behind a saved decision. Its output is an estimate that must be confirmed with the selected shop.
3. Goals and product boundaries
- Calculate consistent printing estimates from pages, copies, paper size, print color, duplex and optional finishing.
- Recommend an eligible shop using lowest price or normalized weighted priorities, and explain budget fit.
- Allow users to save, find, view, update, revise and archive their own assessments without rewriting preserved prior snapshots.
- Allow administrators to maintain shop capabilities, prices, services, user access, reports, logs and recovery tools.
- Support desktop/mobile navigation, light/dark themes and readable print output.
- Out of scope: online payments, print ordering, document uploads to shops, booking, inventory, geolocation measurement, live shop availability, guaranteed revenue or guaranteed savings.
4. Users and access
| Role | Permitted work |
|---|---|
| Visitor | View homepage, calculation explanation, About and Help/PRD/TRD; register or sign in. |
| Normal user / student | Manage own assessments and profile; compare saved quotes; use own dashboard, reports and user manual. |
| Administrator | Use normal-user features for own work and manage all-user analytics, shops, pricing, accounts, audit review, settings, reports and backups/restores. |
5. Core user journeys
- First use: register with a unique email, password confirmation and arithmetic CAPTCHA; then sign in.
- Compare a job: enter document name/pages/copies, select printing options, set a budget, review the preview, then calculate and save.
- Review a decision: open My assessments, search/filter, view results, compare up to three saved shop quotes, print or download a PDF.
- Change a saved job: Edit / update keeps the assessment ID and archives its previous values/quotes; Create revision makes a separate linked what-if assessment.
- Maintain the system: an admin configures shops, rates and assigned finishing services, reviews users/logs and generates filtered reports.
- Recover application files: an admin uploads a supported signed ZIP, reviews its staged file preview, explicitly confirms, and retains a recovery backup. SQL restore is a separate action.
6. Functional requirements
| ID / priority | Required behavior and acceptance |
|---|---|
| FR-01 / Must | Registration validates name/email/password/confirmation/CAPTCHA; duplicate emails do not create another account. Passwords are stored as hashes. |
| FR-02 / Must | Login checks password, CAPTCHA and active status; admin routes reject ordinary users. Logout requires POST/CSRF and ends the session. |
| FR-03 / Must | Assessment validation rejects invalid quantities/options/budgets; no saved assessment is created when no shop is eligible. |
| FR-04 / Must | Quotes count physical sheets, multiply by copies and add finishing per copy; odd duplex pages round up. Saved quotes retain names, costs and assumptions. |
| FR-05 / Must | Results show ranked eligible shops, budget balance, calculation breakdown, recommendation reason, saved-quote comparison and PDF/print actions. |
| FR-06 / Must | Only an owner can view or change their assessment. Updates preserve full previous snapshots; stale updates and overwriting a parent with child revisions are rejected. |
| FR-07 / Must | Assessment deletion archives its existing status and preserves quotes/revision links. Shop/account deactivation preserves history; physical deletion is restricted when referenced. |
| FR-08 / Must | Admin shop forms maintain capabilities, optional known metadata and service assignments. Rate/service changes affect future estimates and are logged. |
| FR-09 / Must | Admins create/view/edit/deactivate/reactivate users without exposing stored passwords; self-lockout and removal of the last active admin are prevented. |
| FR-10 / Must | History, users and shops have 10-row pagination; activity logs use 15 rows. Queries enforce scope, stable ordering and applicable retained filters. |
| FR-11 / Must | Assessment search combines keyword, date range, print color and genuine status; filtered print reports retain those choices and ownership restrictions. |
| FR-12 / Must | Dashboards display saved-assessment statistics, monthly cost trends, paper/color usage, recommended shops and recent activity; admin overview covers all users. |
| FR-13 / Must | Reports include organization heading, generated time and applicable dates/filters. Print preview and PDF exports preserve readable results. |
| FR-14 / Must | Admins download SQL and application backups. SQL restore validates its supported format; application restore validates a signed manifest, stages files, previews, confirms and creates recovery copies. |
| FR-15 / Must | Audit records identify successful authentication/record/report/backup actions and restore outcomes. The UI does not offer editing/deleting audit events. |
| FR-16 / Must | Help provides the user manual, administrator guide where authorized, and public Product and Technical Requirement Document webpages. |
| FR-17 / Submission | Login visibly explains the dedicated normal-user demo credentials and CAPTCHA. No administrator password is published. Fictional sample records are clearly identified. |
7. Decision rules
- Single-sided sheets per copy = pages. Duplex sheets per copy = ceiling(pages / 2). Printing estimate = rate per physical sheet × sheets per copy × copies.
- Finishing estimate = selected finishing fee × copies. Total estimate = printing plus finishing.
- A shop must be active, have an applicable effective paper-size rate, support the requested duplex option, and offer the chosen finishing service.
- Lowest-price mode selects the cheapest eligible quote with a stable shop-ID tie break. Weighted mode considers price, comparable configured distance/turnaround, service and budget; missing incomparable criteria are excluded and weights normalize.
- Potential savings is the highest saved eligible estimate minus the recommended saved estimate. It is not proof of actual spending, payment or revenue.
8. History, search and reporting rules
- Completed assessments appear by default. Draft/deleted/all status filters reflect existing schema states; there is no separate draft-save workflow or invented assessment category/type.
- Date filters refer to the assessment original creation date. Updates keep the ID/creation date while preserving prior snapshots.
- Normal-user reports include only that account’s records. Admin reports may cover all users, except a report opened from personal filtered history retains personal scope.
- School/company report headings currently read SCHOOL_NAME from configuration; the stored settings screen does not replace this configuration behavior.
9. Quality and security requirements
- Validate and parameterize database inputs; escape rendered values; protect mutations with CSRF and recheck owner/admin permissions.
- Use password_hash/password_verify, login throttling, session ID rotation, HttpOnly/SameSite cookies and a 30-minute idle timeout. Secure cookies depend on HTTPS.
- Retain the existing visual identity, keyboard/native form usability, responsive navigation, reduced-motion behavior, dark theme and print styles. No accessibility certification is claimed.
- Deploy behind HTTPS and retain private-directory/server rules. Backups and restore staging must not be publicly readable.
- Preserve live database credentials, existing records, uploads and relationships during upgrades; use additive migration rather than importing a fresh export over production.
10. Success criteria and verification
- An existing user can sign in, save an accurate comparison, retrieve it through filters, update or revise it appropriately, and print a matching report.
- An ordinary account cannot access admin management or another owner’s assessment. Existing account hashes/relationships survive the additive upgrade.
- Admin user/shop lists paginate without losing filters; deactivation retains history and the last active administrator remains protected.
- A supported application backup restores successfully in an isolated copy; unsafe paths, altered signatures/checksums, incompatible schemas and unauthorized execution are rejected.
- The submission includes real screenshots, readable instructions, a normal-user demo login and 72 labeled fictional assessments across the administrator and demo-student datasets.
11. Assumptions and current limitations
Prices and metadata are manually configured and may become outdated. Confirm actual shop availability and prices externally. Chart.js and web fonts use external CDNs; data tables remain available if a chart resource cannot load.
There is no self-service password reset/change or profile-email-change form. Legacy unsigned ZIPs and incompatible release/schema archives require manual recovery. cPanel ownership, quotas, PHP limits and final hosted deployment must be verified by the owner.
