Lab 8: Requirements Review & Acceptance Planning - bounswe/bounswe2025group2 GitHub Wiki
Lab 8: Requirements Review & Acceptance Planning
Report Date: 2025-12-02
Team Name: Group 2
Project: CMPE352/451 Group 2 project (repo: bounswe/bounswe2025group2)
1. Revisit Requirements
As we approach the final delivery, we reviewed our current progress and identified the remaining requirements that will be completed. Below is a summary of the requirements planned for the final submission, along with our approach for completing them.
Requirements Planned for Final Delivery
-
Preferred Sports Section in Mobile Profiles (1.1.1.8)
We will extend the mobile user profile with a new βPreferred Sportsβ section. Backend support for storing preferences already exists, and the remaining work focuses on implementing the mobile UI and connecting it to the profile update flow. We do not need to extend web because it already supports it. -
Bookmarking Functionality in the Forum (1.1.3.3)
Bookmarking will allow users to save forum posts for later access. This will include UI additions to post detail and list screens, along with backend integration for storing and retrieving bookmarks. Also we wll add notification functionality for these bookmarks. Every time a comment is posted in a bookmarked thread we will receive a notification -
Reporting Functionality & Report Processing Mechanism (1.1.3.6)
Users will be able to report inappropriate or harmful content. The reporting UI will be added, and a review-processing mechanism will be implemented on the admin side of django to handle submitted reports. Glossary additions can be handled from here too but the discussions still continue. -
Edit/Delete Own Posts on Mobile (1.1.3.9)
Mobile users will be able to edit or delete their own forum posts. Backend operations already support this and web already has it; the remaining effort involves exposing these actions in the mobile UI and ensuring proper permission checks. -
Disable Notification Button (1.1.5.1)
A toggle option will be added to allow users to disable certain notifications. -
Challenge History in Mobile 5(1.2.4.5)
We will make it possible for users to see inactive and completed challenges
All of the requirements above are planned for implementation and will be delivered in the final submission. Also we currently don't have glossary and unit test requirements before the final milestone. They will also be based on those requirements. We currently have the following problems with them:
- Mobil needs more unit tests
- Glossary is a static page right now. We will add some functionality to make additions for coaches
- We will add linking functionality between glossary and other parts of the app, primarily chat
- The Glossary implementation will be moved to backend properly
2. Acceptance Test Planning
Testing Approach
Acceptance testing will focus on validating the system end-to-end against stakeholder requirements: correctness, usability, and readiness for deployment. Tests will be scenario-driven and executed by a combination of the development team (for automated checks) and representatives of the customer/stakeholders (for manual validation). We will use a mix of automated end-to-end tests (Cypress / Playwright for the TypeScript frontend + integration tests for the Python backend), API contract tests (Postman / pytest), and manual exploratory/usability tests to cover UI flow, edge-cases, and stakeholder preference checks.
Structure:
- Identify priority user journeys from Customer Milestone 2 (authentication, core CRUD flows, search/filtering, data upload/processing, and main integrations).
- Define acceptance criteria for each requirement (clear Given/When/Then).
- Implement automated test cases for regression and repeatable checks.
- Schedule stakeholder demo sessions and guided manual acceptance tests.
- Capture defects, triage and re-run acceptance tests after fixes until sign-off.
Acceptance Criteria Framework
We will validate requirements against the following criteria categories:
- Functional correctness: The feature performs required actions and returns expected results for typical and boundary inputs.
- User experience: Key flows are intuitive and accessible; response times meet usability targets.
- Data integrity: Data created/updated/deleted through the UI/API remains consistent across services.
- Performance: Primary user journeys complete within acceptable time bounds (e.g., < 2s for UI responses under typical load).
- Security & privacy: Authentication, authorization, and user data handling follow agreed policies.
- Compatibility & resilience: App works on supported browsers/devices; recovers gracefully from backend failures.
Each requirement will have one or more measurable acceptance statements using Given/When/Then.
Test Cases
| Test ID | Requirement | User Story/Scenario | Acceptance Criteria | Test Steps | Expected Result |
|---|---|---|---|---|---|
| AT-001 | User Authentication | As a user, I want to log in so that I can access my dashboard | Given a registered user, When they submit correct credentials, Then they are redirected to their dashboard and a session is established | 1. Open login page2. Enter registered email and password3. Click Login | User is redirected to dashboard; auth token/session cookie present; user-specific data shown |
| AT-002 | User Registration | As a new user, I want to register so that I can create and manage content | Given valid registration details, When the user submits the signup form, Then the account is created and a verification/confirmation is shown | 1. Open signup page2. Fill required fields with valid data3. Submit form | Confirmation message shown; new user exists in user store; optionally verification email sent (or mock) |
| AT-003 | Create Resource / CRUD | As a user, I want to create a new resource so that I can store content in the system | Given an authenticated user, When they create a new resource with valid inputs, Then the resource is saved and visible in the listing | 1. Log in as a user2. Navigate to Create Resource3. Fill fields and submit | Resource appears in list with correct fields; persisted in backend (verify via API) |
| AT-004 | Search & Filter | As a user, I want to search and filter resources so that I can find relevant items quickly | Given multiple items exist, When the user applies search/filter terms, Then the listing updates to show matching results only | 1. Go to resources page with many items2. Enter search term or apply filter3. Submit search | Listing shows only items matching criteria; counts/labels updated accordingly |
| AT-005 | File Upload & Processing | As a user, I want to upload a data file so that it is processed and available in the system | Given a valid file, When the user uploads it, Then the system accepts the file, processes it (background job if applicable), and shows processed results | 1. Log in2. Navigate to upload area3. Upload valid file and confirm4. Wait for processing or check status | Upload success message; processing status shown; processed data appears in UI or API confirms processing completion |
| AT-006 | Authorization Enforcement | As an admin and regular user, I want access controls enforced so that users cannot access unauthorized actions | Given a non-admin user, When they attempt an admin-only action, Then access is denied (403) | 1. Log in as normal user2. Attempt to access admin-only route or action | Action blocked with appropriate error; no side effects performed |
| AT-007 | UI Responsiveness | As a user, I want the interface to be responsive so that I can use it on different screen sizes | Given supported screen sizes, When the pages are loaded, Then UI elements adjust and remain usable | 1. Open key pages on mobile, tablet, desktop viewports2. Interact with core flows | Layout adapts; controls are accessible and usable on each viewport |
| AT-008 | API Contract | As an integrator, I want API endpoints to follow contract so that clients can rely on responses | Given the documented API, When requests are made with valid inputs, Then responses match schema and status codes | 1. Run API test suite against endpoints2. Validate response schema and status codes | All endpoints return expected status and JSON schema; error codes and messages match contract |
Stakeholder Validation
We will validate weβre building the right thing by:
- Running scheduled demo sessions at the end of major milestones (including Customer Milestone 2) where stakeholders follow specific acceptance scenarios.
- Providing a guided checklist derived from the acceptance criteria for stakeholders to verify during demos.
- Collecting explicit sign-off from the customer on completed acceptance criteria (a short acceptance form listing passed/failed test cases).
- Gathering qualitative feedback (usability notes, priority changes) during validation sessions and incorporating them as follow-up user stories or change requests.
- Using lightweight surveys or SUS-like questions after demos to capture stakeholder satisfaction.
Testing Schedule
- Pre-demo automated run: Execute automated acceptance test suite (CI) 24β48 hours before stakeholder demo to catch regressions.
- Stakeholder demo & manual acceptance: During the scheduled milestone review (Customer Milestone 2 review window) β stakeholders execute prioritized manual test cases and provide sign-off or feedback.
- Post-demo fixes and re-test: Team addresses raised defects within the sprint; re-run acceptance tests and present results in a follow-up checkpoint (within 5 working days).
- Regression & release gating: Before each release to staging/production, run the full automated acceptance suite. Critical acceptance tests must pass for deployment.
3. Current Compliance Status Report
Overview
This document assesses the current compliance status for each W3C standard and design criterion, organized by implementation area (Mobile Frontend, Web Frontend, Backend) where applicable.
Standard 1: Web Content Accessibility Guidelines (WCAG) 2.1 AA
π± Mobile Frontend
Status: Partially Compliant (~70%)
Completed:
- β Research on inclusivity strategies completed (#402)
- β W3C standards applicability verified (#359)
- β Modern Material 3 design with proper contrast and typography (#600, #604, #605, #606, #607, #608, #609, #610, #611, #612)
- β Consistent navigation patterns (TopBar, BottomBar)
- β Keyboard navigation through React Native Paper components
- β Authentication page redesign (#471)
- β Forum page with WCAG compliance (#430)
In Progress:
Gaps:
- Text alternatives for non-text content not verified across all pages
- Screen reader optimization not explicitly tested
- Assistive technology compatibility testing not documented
Action Plan:
- Complete mobile app icon with accessibility considerations (Due: 10/12/2025)
- Conduct screen reader testing on key user flows
- Add alt text audit to QA checklist
- Document assistive technology testing results
π Web Frontend
Status: Partially Compliant (~60%)
Completed:
- β Unit testing infrastructure with Vitest and React Testing Library
- β Modern component library (Radix UI) with built-in accessibility primitives
- β ESLint configuration for code quality and React best practices
- β Responsive design with Tailwind CSS
In Progress:
- π Comprehensive accessibility audit
- π Integration testing for critical flows
Gaps:
- Internationalization (i18n) not yet implemented
- Automated accessibility testing (e.g., axe-core) not configured
- E2E testing not yet set up
Action Plan:
- Install and configure i18n library (e.g., react-i18next)
- Add automated accessibility checks to CI pipeline
- Expand test coverage to include integration tests
Standard 2: Activity Streams 2.0
βοΈ Backend
Status: Not Implementing (By Design Decision)
Rationale: GenFit is a domain-specific application that does not provide external API access. We have decided not to implement Activity Streams 2.0 standardized format as:
- Our API is thoroughly documented internally
- No external platform integration is planned
- The standardized JSON-LD format is not required for our internal use case
User Activity Features Implemented (Mobile & Web):
- User activities display: Forum threads, posts, comments
- Social engagement: likes, comments, reactions
- Activity feeds and timelines
- Challenge sharing and notifications
Action Plan:
- N/A - Design decision to use internal API documentation standards
- Continue maintaining thorough internal API documentation
- Maintain OpenAPI specification for backend endpoints
Standard 3: Internationalization (i18n) Standards
π± Mobile Frontend
Status: Partially Compliant (~30%)
Completed:
- β UTF-8 language format support (from meeting notes)
- β RTL (right-to-left) script support implemented
Deferred to Later Milestones:
- βΈοΈ Locale-appropriate date, number, and currency formatting
- βΈοΈ Local timezone support (mentioned in meeting notes, not yet implemented)
Gaps:
- Multi-language UI not implemented
- Locale-specific formatting not configured
Action Plan:
- Evaluate priority of i18n features for final delivery
- If required, implement locale-specific formatting for dates/numbers
- Add timezone support if needed for goal/challenge scheduling
π Web Frontend
Status: Not Started (~0%)
Completed:
- None
Deferred:
- βΈοΈ Multi-language support deferred to future release
Gaps:
- No i18n libraries installed
- No translation files created
Action Plan:
- Evaluate need for multi-language support in MVP
- If needed, install
react-i18nextand set up translation infrastructure
βοΈ Backend
Status: Foundation Ready (~40%)
Completed:
- β
Django
USE_I18N = Trueenabled in settings - β UTF-8 encoding supported by default
Gaps:
- No translation files (
.po/.mo) found LOCALE_PATHSnot configured- Content translation not implemented in models
Action Plan:
- Configure
LOCALE_PATHS - Generate translation files for supported languages
- Implement model translation if content needs to be localized
Design Criterion: Inclusive Design
π± Mobile Frontend
Status: Highly Compliant (~85%)
Completed:
- β Modern authentication with inclusive design (#471)
- β Responsive design across devices
- β Material 3 accessibility principles (#600)
- β Profile hero section redesign (#608)
- β Mentorship section modernization (#609)
- β Goals section styling (#610)
- β Home page redesign with thread cards (#606)
- β Exercise library collapsible card (#607)
- β Toast notifications for better UX (#612)
- β Consistent navigation and typography
Gaps:
- User testing with diverse ability users not documented
- High contrast mode not implemented
- Font scaling beyond system defaults not tested
Action Plan:
- Conduct usability testing with users of varying abilities
- Consider high contrast theme for final delivery
- Test with maximum system font scaling settings
π Web Frontend
Status: Good (~70%)
Completed:
- β Use of accessible component primitives (Radix UI)
- β Responsive layouts for various screen sizes
- β Clear visual hierarchy with Tailwind styling
Gaps:
- High contrast mode not explicitly tested
- Keyboard navigation flow not fully verified
Action Plan:
- Conduct keyboard navigation audit
- Verify color contrast ratios meet WCAG AA standards
Design Criterion: Valuing Contributions & Community Health
π± Mobile Frontend
Status: Partially Compliant (~50%)
Completed:
- β Recognition features: likes, comments, forum engagement
- β Mentor system implemented (#498, #377)
- β Challenge difficulty levels (#491)
- β AI suggestions for goals (#502)
In Progress:
Gaps:
- Moderation workflow UI not visible
- User blocking/muting features not implemented
- Badges or achievement system not present
- Community analytics dashboard not available
- Visible community impact metrics not shown
Action Plan:
- Complete report mechanism implementation (Due: 06/12/2025)
- Complete contact page (Due: 06/12/2025)
- Evaluate feasibility of badges/achievements for final delivery
- Consider simple community impact metrics (e.g., total goals achieved, challenges completed)
π Web Frontend
Status: Limited (~30%)
Completed:
- β UI components for displaying community content (forums, posts)
In Progress:
- π Integration with backend moderation features
Gaps:
- User reporting UI not fully implemented
- Community guidelines not prominently displayed
Action Plan:
- Implement UI for reporting users/content
- Add link to Community Guidelines in footer/settings
βοΈ Backend
Status: In Progress (~50%)
Completed:
- β API endpoints for forum and comments
- β Authentication and permission classes implemented
In Progress:
- π Moderation tools for admins
Gaps:
- Explicit
ReportorBlockmodels not found in API - Automated content filtering not implemented
Action Plan:
- Create
Reportmodel for user reports - Implement
Blockfunctionality at model level - Add admin views for reviewing reported content
Design Criterion: Detecting & Responding to Harmful Behavior
π± Mobile Frontend
Status: In Progress (~40%)
In Progress:
- π Report mechanism implementation (#489) - Due: 06/12/2025
- π Contact/support page (#501) - Due: 06/12/2025
Planned (from meeting notes):
- Support email to be provided
- Reporting mechanism for inappropriate content planned
Gaps:
- Harmful pattern detection algorithms not implemented
- Automated content moderation not present
- Conflict resolution process not documented
- Transparent moderation policies not displayed in app
Action Plan:
- Complete report mechanism UI and backend integration
- Complete contact page with support email display
- Document moderation policy for user visibility
- Add Terms of Use display in app (#374 in progress)
π Web Frontend
Status: Limited (~20%)
Completed:
- β Basic error handling and user feedback
In Progress:
- π Reporting UI
Gaps:
- No proactive harm detection features
- No user blocking UI
Action Plan:
- Implement frontend for user blocking
- Add "Report" button to all user-generated content
βοΈ Backend
Status: Foundation (~40%)
Completed:
- β Secure authentication (JWT/Session)
- β Permission classes to restrict access
Gaps:
- No automated harm detection (text analysis, etc.)
- Moderation workflow APIs missing
Action Plan:
- Implement basic keyword filtering for comments/posts
- Create APIs for moderation actions (ban, mute)
Principle: Privacy by Design & Data Protection
π± Mobile Frontend
Status: Good Foundation (~65%)
Completed:
- β HTTPS implementation and bug fixes (#595)
- β CSRF protection with referer headers (#595)
- β Secure authentication (login/registration)
- β API security with centralized configuration (#558)
- β Containerization for deployment (#593)
In Progress:
- π Terms of Use text (#374)
Planned (from meeting notes):
- Right to be forgotten supported
- Django cross-domain request blocking planned (backend)
- HTTPS for data in transit
Gaps:
- Privacy Policy not yet created
- Cookie consent UI not implemented
- Data retention policy not displayed to users
- User data export functionality not present
- Encryption at rest not verified
- In-app privacy settings not comprehensive
Action Plan:
- Complete Terms of Use (#374)
- Create Privacy Policy (coordinate with backend team)
- Add Privacy Policy display in app settings
- Add cookie consent if web views are used
- Document and display data retention policies
- Implement user data export feature if feasible
π Web Frontend
Status: Good (~75%)
Completed:
- β Secure HTTP handling (via axios/browser)
- β No sensitive data stored in local storage (JWT handling to be verified)
- β CSRF protection integration
In Progress:
- π Privacy policy page
Gaps:
- Cookie consent banner missing
- Data export UI missing
Action Plan:
- Implement cookie consent banner
- Add page for Privacy Policy
βοΈ Backend
Status: Strong (~85%)
Completed:
- β HTTPS enforced (via load balancer/settings)
- β
CSRF protection enabled (
CsrfViewMiddleware) - β
Secure cookie settings (
SESSION_COOKIE_SECURE,CSRF_COOKIE_SECURE) - β
XFrameOptionsMiddlewareenabled
Gaps:
- Data export API not found
- Automated data retention policies not visible in code
Action Plan:
- Implement "Download My Data" endpoint
- Document data retention policy
Principle: Transparency & Accountability
π± Mobile Frontend
Status: Limited (~40%)
Completed:
- β Clear navigation and user flows
- β Toast notifications for user feedback (#612)
- β Error messages displayed to users
Gaps:
- Algorithm explanations not provided (e.g., AI suggestions, recommendations)
- Data usage transparency not displayed
- Decision traceability not visible to users
- System limitations not clearly communicated
Action Plan:
- Add explanatory text for AI features (goal suggestions, chatbot)
- Display data usage information in settings/privacy page
- Document known limitations in help/about section
π Web Frontend
Status: Moderate (~50%)
Completed:
- β Clear error messages
- β Loading states for better UX
Gaps:
- Explanation of AI suggestions not prominent
- Data usage info not displayed
Action Plan:
- Add tooltips explaining AI suggestions
- Add "About" page with data usage info
βοΈ Backend
Status: Good (~70%)
Completed:
- β Comprehensive API documentation (Swagger/OpenAPI)
- β Logging enabled
Gaps:
- Algorithmic transparency documentation missing
- Bias audit logs missing
Action Plan:
- Add documentation for AI/Recommendation algorithms
- Implement audit logging for sensitive actions
Principle: Fairness & Non-Discrimination
π± Mobile Frontend
Status: Good Intent (~60%)
Completed:
- β Inclusive design principles applied
- β Equitable access to features (no paywalls)
- β Mentor system promotes accessibility to coaching
Gaps:
- Bias audit of displayed content/recommendations not performed
- No formal testing for demographic fairness
- Algorithm bias in AI features not assessed
Action Plan:
- Review AI suggestion algorithms for potential bias (coordinate with backend)
- Test with diverse user demographics if possible
- Document fairness considerations in AI features
π Web Frontend
Status: Good Intent (~60%)
Completed:
- β Accessible design ensures broad usability
Gaps:
- No specific fairness testing for different demographics
Action Plan:
- Include diverse personas in user testing
βοΈ Backend
Status: Good Intent (~60%)
Completed:
- β API design treats all users equally
Gaps:
- No automated bias detection in algorithms
Action Plan:
- Review recommendation algorithms for potential bias
Additional: Testing & Quality Assurance
π± Mobile Frontend
Status: Strong Progress (~75%)
Completed:
- β Home page unit tests (#509)
- β Settings page unit tests (#508)
- β Forum page unit tests (#517)
- β Profile page unit tests (#563)
- β Goal warning tests (#583)
- β Bug fixes: AI Chat (#578), Chat (#573), Challenge HTTPS (#595)
In Progress:
- π Mentor search page unit tests (#627) - Due: 04/12/2025
- π Mentor table unit tests (#628) - Due: 06/12/2025
- π Acceptance test planning (#631)
Gaps:
- Test coverage percentage not formally tracked (target: β₯90%)
- Integration tests not documented
- End-to-end tests not mentioned
- Automated accessibility tests not set up
- Performance testing not documented
Action Plan:
- Complete ongoing unit tests
- Set up coverage reporting tools
- Define integration test strategy
- Consider E2E testing framework for critical flows
- Add performance benchmarks for key screens
π Web Frontend
Status: Strong (~80%)
Completed:
- β
Unit tests with Vitest (
ActivityDashboard.test.tsxetc.) - β Component testing with React Testing Library
In Progress:
- π Increasing test coverage
Gaps:
- End-to-End (E2E) tests missing
Action Plan:
- Set up Cypress or Playwright for E2E testing
βοΈ Backend
Status: Strong (~80%)
Completed:
- β
Extensive unit tests in
api/tests - β
pytestconfiguration present - β Integration tests for API endpoints
Gaps:
- Load testing not documented
Action Plan:
- Add load testing with Locust or similar tool
Additional: Code Quality & Standards
π± Mobile Frontend
Status: Assumed Good (~80%)
Completed (Assumed from meeting notes):
- β ESLint/Prettier conventions
- β CI/CD lint/test gating
- β Modern codebase with Material 3 migration (#600)
- β Containerization (#593)
Gaps:
- Mobile-specific linting rules not explicitly documented
- React Native specific quality checks not verified
- Code review process not formalized in issues
Action Plan:
- Document mobile linting configuration
- Ensure React Native best practices are enforced
- Formalize code review checklist
π Web Frontend
Status: Good (~75%)
Completed:
- β
ESLint configured (
eslint.config.js) - β TypeScript for type safety
Gaps:
- Prettier config not explicitly found (might be embedded or default)
Action Plan:
- Ensure Prettier is configured and running in CI
βοΈ Backend
Status: Moderate (~60%)
Completed:
- β Standard Django project structure
- β Type hinting used in some places
Gaps:
- No explicit linting configuration (pylint/flake8) found in root
- No pre-commit hooks visible
Action Plan:
- Add
flake8orpylinttorequirements.txtand CI - Set up pre-commit hooks
Summary: Mobile Frontend Compliance Overview
| Standard/Criterion | Status | Compliance % | Priority Actions |
|---|---|---|---|
| WCAG 2.1 AA | Partial | ~70% | Complete accessibility testing, add alt text audit |
| Activity Streams 2.0 | Not Implementing (Backend Decision) | N/A | Maintain internal API docs |
| Internationalization | Partial | ~30% | Evaluate i18n priority for final delivery |
| Inclusive Design | Excellent | ~85% | User testing with diverse abilities |
| Community Health | Progressing | ~50% | Complete reporting mechanism, contact page |
| Harmful Behavior Detection | In Progress | ~40% | Finish reporting UI, display moderation policy |
| Privacy & Security | Good | ~65% | Create Privacy Policy, add consent UI |
| Transparency | Limited | ~40% | Add AI explanations, data usage info |
| Fairness | Good Intent | ~60% | Bias audit for AI features |
| Testing | Strong | ~75% | Complete unit tests, add coverage tracking |
| Code Quality | Good | ~80% | Document linting config |
Overall Mobile Compliance: ~60%
Next Steps
- Web Frontend Team: Fill in all "[To be filled by web team]" sections
- Backend Team: Fill in all "[To be filled by backend team]" sections
- All Teams: Review and coordinate on cross-cutting concerns (Privacy Policy, Terms of Use, API docs, reporting mechanism)
- Lab 8 Deadline: 02/12/2025 - 23:59
Document prepared by: Abdullah Umut HamzaoΔullarΔ± (Mobile Team) Last updated: 02/12/2025 Related Issues: #635, #636
4. User Experience Assessment
Feedback Received in MVP Demo
- (UX) Increase the number of Goal Types to offer users more choices.
- (UX) Add user search functionality on the chat page to make finding users easier.
- (UX) Link glossary terms to chat or forum content.
- (UX) Add predefined target units for goals (users can still enter custom units).
UX Improvement Goals
- Add bookmarking for forum threads.
- Add a βChat with Userβ button on user profiles.
- Add thread search capability.
- Add AI chat formatting (preferably Markdown).
- Add the ability to disable notifications.
- Add more specific notification content (e.g., include thread title).
- Improve the Settings page layout and usability.
5. Summary and Next Steps
Report Date: 2025-12-02
Team Name: Group 2
Project: CMPE352/451 Group 2 project (bounswe/bounswe2025group2)