Skip to content

Ecolink Product Backlog (SAFe)

1. Overview

← Back to Product | ← Back to Main Page

This document presents the complete Product Backlog for the Ecolink project, structured according to the Scaled Agile Framework (SAFe) methodology. The backlog is organized hierarchically from strategic themes to tactical user stories, ensuring full traceability and alignment with MVP releases.

Backlog Structure: - Themes (TM): Strategic business initiatives - Epics (EP): Large-scale initiatives spanning multiple sprints - Capabilities (C): Major functional areas within epics - Features (F): Specific functionality delivering value - User Stories (US): Implementable units of work

MVP Alignment: - MVP1: Core platform functionality (authentication, QR access, donation registration, EcoPoint location, UI/UX) - MVP2: Gamification and engagement (credits, ranking, badges, educational content)


2. Backlog Summary

Level Total Items MVP1 MVP2 Future
Themes 6 - - -
Epics 13 8 3 2
Capabilities 24 15 6 3
Features 48 28 14 6
User Stories 120+ 68 35 17+

3. SAFe Backlog Hierarchy

Table of Contents

TM-001: User Engagement & Experience

Enable users to interact seamlessly with the Ecolink ecosystem through intuitive interfaces and personalized experiences.

EP-001: User Authentication & Profile Management

MVP: MVP1 | Priority: Critical | Status: Ready

C-001: User Registration & Login

Provide secure, accessible authentication mechanisms for all user types.

F-001: Email/Password Authentication

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-001: As a new user, I want to register with email and password so that I can create an account
  • Acceptance Criteria: Email validation, password strength requirements (min 8 chars, uppercase, lowercase, number), success/error feedback
  • Story Points: 3

  • US-002: As a registered user, I want to log in with my email and password so that I can access my account

  • Acceptance Criteria: JWT token generation, session management, remember me option, redirect to dashboard
  • Story Points: 3

  • US-003: As a user, I want to reset my password if I forget it so that I can regain access to my account

  • Acceptance Criteria: Email verification, secure token generation (expires in 1 hour), password update confirmation
  • Story Points: 5

  • US-004: As a system, I must validate user inputs on both frontend and backend so that data integrity is maintained

  • Acceptance Criteria: Client-side validation with real-time feedback, server-side validation with error codes, sanitization against injection attacks
  • Story Points: 2
F-002: User Profile Management

Priority: High | MVP: MVP1 | Story Points: 8

  • US-005: As a logged-in user, I want to view my profile information so that I can verify my account details
  • Acceptance Criteria: Display name, email, registration date, recycling statistics summary
  • Story Points: 2

  • US-006: As a logged-in user, I want to edit my profile information so that I can keep my data up-to-date

  • Acceptance Criteria: Editable fields (name, email, password), validation, confirmation dialog, update success message
  • Story Points: 3

  • US-007: As a user, I want my profile picture to display a default avatar so that my profile is visually identifiable

  • Acceptance Criteria: Default avatar assignment, avatar displayed in navbar and profile page
  • Story Points: 1

  • US-008: As a system admin, I want to view user roles and permissions so that I can manage access control

  • Acceptance Criteria: Display user role (user, admin, cooperative_member), permission levels visible in admin panel
  • Story Points: 2
C-002: Role-Based Access Control (RBAC)

Implement secure authorization system with differentiated access levels.

F-003: User Roles & Permissions

Priority: High | MVP: MVP1 | Story Points: 13

  • US-009: As a system, I must assign roles to users upon registration so that permissions are enforced
  • Acceptance Criteria: Default role = "user", roles stored in database, JWT contains role claim
  • Story Points: 3

  • US-010: As an admin, I want to manage EcoPoints so that I can add/edit/remove collection stations

  • Acceptance Criteria: Admin-only access to EcoPoint CRUD operations, validation, audit logging
  • Story Points: 5

  • US-011: As a cooperative member, I want to manage educational content so that I can share recycling knowledge

  • Acceptance Criteria: Content creation/editing interface, draft/publish workflow, content moderation queue
  • Story Points: 5
F-004: Session Management & Security

Priority: Critical | MVP: MVP1 | Story Points: 8

  • US-012: As a system, I must manage user sessions securely so that unauthorized access is prevented
  • Acceptance Criteria: JWT with 7-day expiration, refresh token mechanism, secure HTTP-only cookies
  • Story Points: 5

  • US-013: As a system, I must automatically log out inactive users so that security is maintained

  • Acceptance Criteria: 5-minute inactivity timeout at EcoPoint kiosk, 30-minute timeout on personal devices, session warning at 1 minute remaining
  • Story Points: 3

EP-002: User Interface & Experience Design

MVP: MVP1 | Priority: Critical | Status: Ready

C-003: Responsive UI Framework

Deliver mobile-first, accessible user interfaces across all devices.

F-005: Login/Registration Screens

Priority: Critical | MVP: MVP1 | Story Points: 8

  • US-014: As a user, I want an intuitive login screen so that I can quickly access my account
  • Acceptance Criteria: Clean form layout, email/password fields, "Forgot Password" link, "Sign Up" CTA, loading states, error messages
  • Story Points: 3

  • US-015: As a new user, I want a simple registration form so that I can easily create an account

  • Acceptance Criteria: Name, email, password fields, password confirmation, terms acceptance checkbox, inline validation, success redirect
  • Story Points: 3

  • US-016: As a user on mobile, I want the login/registration to be optimized for touch so that interaction is seamless

  • Acceptance Criteria: Touch-friendly buttons (min 44px), appropriate keyboard types (email, password), autofill support
  • Story Points: 2
F-006: Navigation & Layout Structure

Priority: High | MVP: MVP1 | Story Points: 8

  • US-017: As a user, I want a consistent navigation menu so that I can easily move between sections
  • Acceptance Criteria: Bottom navigation on mobile (Home, Map, Donate, Profile), sidebar on desktop, active state indicators
  • Story Points: 3

  • US-018: As a user, I want the app to be responsive so that I can use it on any device

  • Acceptance Criteria: Breakpoints for mobile (<768px), tablet (768-1024px), desktop (>1024px), no horizontal scroll
  • Story Points: 3

  • US-019: As a user, I want visual consistency across all screens so that the experience feels cohesive

  • Acceptance Criteria: Consistent color palette (green primary, earth tones), typography system, spacing scale, component library (buttons, cards, forms)
  • Story Points: 2
F-007: User Dashboard

Priority: High | MVP: MVP1 | Story Points: 8

  • US-020: As a logged-in user, I want to see my recycling summary on the dashboard so that I can track my impact
  • Acceptance Criteria: Total recyclables donated (kg), number of donations, environmental impact metrics (CO2 saved, trees planted equivalent)
  • Story Points: 3

  • US-021: As a user, I want quick access to key actions from the dashboard so that I can efficiently use the app

  • Acceptance Criteria: "Find EcoPoint" button, "View History" button, "Scan QR Code" CTA
  • Story Points: 2

  • US-022: As a user, I want to see my recent donations on the dashboard so that I have quick overview of my activity

  • Acceptance Criteria: List of last 5 donations with date, type, weight, status
  • Story Points: 3
C-004: Accessibility & Usability

Ensure inclusive design compliant with WCAG 2.1 AA standards.

F-008: Accessibility Features

Priority: Medium | MVP: MVP1 | Story Points: 8

  • US-023: As a user with visual impairment, I want sufficient color contrast so that I can read content easily
  • Acceptance Criteria: Minimum 4.5:1 contrast ratio for normal text, 3:1 for large text, accessible color palette
  • Story Points: 2

  • US-024: As a user with motor impairments, I want keyboard navigation support so that I can use the app without a mouse

  • Acceptance Criteria: All interactive elements focusable, visible focus indicators, logical tab order
  • Story Points: 3

  • US-025: As a screen reader user, I want semantic HTML and ARIA labels so that I can understand the interface

  • Acceptance Criteria: Proper heading hierarchy, alt text for images, ARIA labels for icons, form labels associated with inputs
  • Story Points: 3

TM-002: Recycling Infrastructure & EcoPoint Network

Build and manage the physical-digital integration of smart recycling stations.

EP-003: EcoPoint Location & Discovery

MVP: MVP1 | Priority: Critical | Status: Ready

C-005: EcoPoint Mapping System

Enable users to locate and navigate to nearby recycling stations.

F-009: EcoPoint Map View

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-026: As a user, I want to see EcoPoints on a map so that I can find nearby collection stations
  • Acceptance Criteria: Integration with mapping API (Google Maps/Mapbox), markers for each EcoPoint, user location marker, zoom/pan controls
  • Story Points: 5

  • US-027: As a user, I want to see my current location on the map so that I can orient myself

  • Acceptance Criteria: Geolocation permission request, blue dot for user location, auto-center on user location on first load
  • Story Points: 3

  • US-028: As a user, I want to see the distance to each EcoPoint so that I can choose the nearest one

  • Acceptance Criteria: Distance calculation (haversine formula), display distance in km/meters, sort by distance option
  • Story Points: 3

  • US-029: As a user, I want to tap on an EcoPoint marker so that I can view its details

  • Acceptance Criteria: Info window/modal with name, address, accepted materials, opening hours, "Get Directions" button
  • Story Points: 2
F-010: EcoPoint List View

Priority: High | MVP: MVP1 | Story Points: 8

  • US-030: As a user, I want to see a list of nearby EcoPoints so that I can compare options
  • Acceptance Criteria: List sorted by distance, card layout with name, distance, address, accepted materials, thumbnail image
  • Story Points: 3

  • US-031: As a user, I want to switch between map and list views so that I can choose my preferred visualization

  • Acceptance Criteria: Toggle button, maintain filter/search state when switching, smooth transition
  • Story Points: 2

  • US-032: As a user, I want to search for EcoPoints by name or address so that I can find specific locations

  • Acceptance Criteria: Search bar with autocomplete, real-time filtering, "No results" state
  • Story Points: 3
C-006: EcoPoint Details & Information

Provide comprehensive information about each collection station.

F-011: EcoPoint Detail Screen

Priority: High | MVP: MVP1 | Story Points: 8

  • US-033: As a user, I want to view detailed information about an EcoPoint so that I know what to expect
  • Acceptance Criteria: Display name, full address, opening hours, contact info, photo gallery, accepted materials list (with icons)
  • Story Points: 3

  • US-034: As a user, I want to get directions to an EcoPoint so that I can navigate there

  • Acceptance Criteria: "Get Directions" button opens navigation app (Google Maps/Apple Maps), pass destination coordinates
  • Story Points: 2

  • US-035: As a user, I want to see which recyclable materials are accepted so that I know what to bring

  • Acceptance Criteria: Visual list with icons (plastic, glass, paper, metal, electronics), color-coded categories
  • Story Points: 2

  • US-036: As a user, I want to see the EcoPoint's operational status so that I don't visit when closed

  • Acceptance Criteria: Display status (Open/Closed/Full), opening hours with current day highlighted, next opening time if closed
  • Story Points: 1

EP-004: QR Code Access & Kiosk Integration

MVP: MVP1 | Priority: Critical | Status: Ready

C-007: QR Code Scanning

Enable quick access to donation flow via QR code at EcoPoint stations.

F-012: QR Code Reader

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-037: As a user at an EcoPoint, I want to scan the QR code so that I can start the donation process
  • Acceptance Criteria: Camera permission request, QR code scanning interface, visual feedback on successful scan, redirect to donation page
  • Story Points: 5

  • US-038: As a system, I must validate the QR code so that only authorized EcoPoints are accessed

  • Acceptance Criteria: QR code contains EcoPoint ID + timestamp + signature, server-side validation, reject expired/invalid codes
  • Story Points: 3

  • US-039: As a user, I want clear instructions on how to scan the QR code so that I can complete the action successfully

  • Acceptance Criteria: Instruction text "Point camera at QR code", scanning frame overlay, auto-scan when code detected
  • Story Points: 2

  • US-040: As a user with camera issues, I want to manually enter the EcoPoint code so that I can still donate

  • Acceptance Criteria: "Enter code manually" option, numeric input field, validation, same flow as QR scan
  • Story Points: 3
C-008: Kiosk Session Management

Manage time-limited sessions at public EcoPoint terminals.

F-013: Session Timeout & Security

Priority: Critical | MVP: MVP1 | Story Points: 8

  • US-041: As a system, I must enforce a 5-minute session timeout at EcoPoint kiosks so that stations remain available
  • Acceptance Criteria: Countdown timer visible, warning at 1 minute remaining, auto-logout at 0:00, return to QR scan screen
  • Story Points: 3

  • US-042: As a user, I want to see the remaining session time so that I know how long I have

  • Acceptance Criteria: Persistent timer in UI header, color changes (green>yellow>red), "Extend session" button (adds 2 minutes, max 1 extension)
  • Story Points: 2

  • US-043: As a user, I want to manually end my session so that the next person can use the kiosk

  • Acceptance Criteria: "End Session" button, confirmation dialog, immediate logout, clear session data
  • Story Points: 2

  • US-044: As a system, I must clear all user data from the kiosk after logout so that privacy is protected

  • Acceptance Criteria: Clear localStorage/sessionStorage, revoke tokens, reset UI state, no cached user info
  • Story Points: 1

TM-003: Donation Management & Tracking

Record, validate, and track recyclable material donations from users.

EP-005: Donation Registration & Validation

MVP: MVP1 | Priority: Critical | Status: Ready

C-009: Donation Entry Interface

Provide intuitive interface for recording recyclable donations.

F-014: Donation Form

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-045: As a user at an EcoPoint, I want to register my donation so that it's recorded in the system
  • Acceptance Criteria: Form with material type (dropdown), quantity (weight in kg or unit count), photo upload (optional), submit button
  • Story Points: 5

  • US-046: As a user, I want to select from predefined material categories so that registration is quick

  • Acceptance Criteria: Categories: Plastic, Glass, Paper/Cardboard, Metal/Aluminum, Electronics, Other; icon for each category
  • Story Points: 2

  • US-047: As a user, I want to receive immediate feedback upon submitting a donation so that I know it was successful

  • Acceptance Criteria: Success message with donation ID, summary (type, weight, points earned), "View History" and "Donate More" buttons
  • Story Points: 3

  • US-048: As a user, I want validation to prevent errors so that my data is accurate

  • Acceptance Criteria: Required field validation, weight/quantity > 0, material type selection required, error messages per field
  • Story Points: 3
F-015: Invalid Donation Handling

Priority: High | MVP: MVP1 | Story Points: 8

  • US-049: As a system, I must detect invalid donations so that contamination is discouraged
  • Acceptance Criteria: Admin/sensor flag donation as invalid, validation rules (e.g., food-contaminated items, non-recyclables)
  • Story Points: 3

  • US-050: As a user who submits an invalid donation, I should be informed so that I can correct my behavior

  • Acceptance Criteria: Error message explaining invalidity, educational tip on proper recycling, points deduction notification (temporary penalty)
  • Story Points: 3

  • US-051: As a system, I must not register invalid donations in the user's history so that statistics remain accurate

  • Acceptance Criteria: Invalid donations marked as "rejected", do not count toward totals, logged for analytics but not in user's success history
  • Story Points: 2
C-010: Donation History & Tracking

Enable users to review their recycling contributions over time.

F-016: Donation History View

Priority: High | MVP: MVP1 | Story Points: 8

  • US-052: As a user, I want to view my donation history so that I can track my recycling activity
  • Acceptance Criteria: List of all donations with date, time, material type, weight, EcoPoint name, status (completed/rejected), points earned
  • Story Points: 3

  • US-053: As a user, I want to filter my donation history so that I can find specific entries

  • Acceptance Criteria: Filter by date range, material type, EcoPoint location; sort by newest/oldest, highest/lowest weight
  • Story Points: 3

  • US-054: As a user, I want to see my total recycling impact so that I can understand my contribution

  • Acceptance Criteria: Aggregate stats: total kg donated, total donations count, environmental impact (CO2 saved, water conserved)
  • Story Points: 2
F-017: Donation Details

Priority: Medium | MVP: MVP1 | Story Points: 5

  • US-055: As a user, I want to view details of a specific donation so that I can review it
  • Acceptance Criteria: Display donation ID, timestamp, EcoPoint (with address), material type, weight/quantity, photo (if uploaded), points earned, status
  • Story Points: 2

  • US-056: As a user, I want to share my donation on social media so that I can inspire others

  • Acceptance Criteria: Share button generates image with donation stats, branded template, share to Instagram/Facebook/Twitter
  • Story Points: 3

TM-004: Gamification & User Incentives

Motivate sustainable behavior through game mechanics and reward systems.

EP-006: Credit & Points System

MVP: MVP2 | Priority: High | Status: Ready

C-011: Points Calculation & Award

Implement transparent, fair point allocation for recycling actions.

F-018: Points Algorithm

Priority: Critical | MVP: MVP2 | Story Points: 13

  • US-057: As a system, I must calculate points based on donation weight and material type so that users are fairly rewarded
  • Acceptance Criteria: Points formula: basePoints × weight × materialMultiplier; multipliers: Plastic(1.0), Glass(1.2), Paper(0.8), Metal(1.5), Electronics(2.0)
  • Story Points: 5

  • US-058: As a user, I want to see how many points I earned from each donation so that I understand the reward system

  • Acceptance Criteria: Points displayed immediately after donation, calculation breakdown shown (e.g., "10kg × 1.2 = 12 points")
  • Story Points: 3

  • US-059: As a system, I must deduct points for invalid donations so that proper recycling is encouraged

  • Acceptance Criteria: -10 points per invalid donation, notification sent to user, cannot go below 0 points
  • Story Points: 3

  • US-060: As a user, I want to see my total accumulated points so that I can track my progress

  • Acceptance Criteria: Total points displayed on profile and dashboard, points history with transactions (earned/deducted)
  • Story Points: 2
F-019: Academic Credit Conversion

Priority: High | MVP: MVP2 | Story Points: 13

  • US-061: As a UnB student, I want to convert points into academic credits so that I receive institutional recognition
  • Acceptance Criteria: Conversion rate: 1000 points = 1 academic credit; "Request Credit" button when threshold met; admin approval workflow
  • Story Points: 5

  • US-062: As a student, I want to track my progress toward the next credit so that I stay motivated

  • Acceptance Criteria: Progress bar showing points toward next credit, estimated donations needed, projected completion date
  • Story Points: 3

  • US-063: As an admin, I want to approve credit requests so that only valid students receive credits

  • Acceptance Criteria: Admin dashboard with pending requests, student ID verification, approve/reject actions, notification to student
  • Story Points: 5
C-012: Credit Management & Integration

Manage credit redemption and university system integration.

F-020: Credit Request System

Priority: High | MVP: MVP2 | Story Points: 8

  • US-064: As a student, I want to submit a credit request with my student ID so that it can be processed
  • Acceptance Criteria: Form with student ID, points to convert, consent checkbox, submit button, confirmation email
  • Story Points: 3

  • US-065: As a student, I want to view my credit request status so that I know when it's processed

  • Acceptance Criteria: Status values: Pending, Approved, Rejected; status history with timestamps, rejection reason if applicable
  • Story Points: 3

  • US-066: As a system, I must log all credit transactions so that there's an audit trail

  • Acceptance Criteria: Transaction log with user ID, points spent, credits issued, timestamp, admin ID who approved
  • Story Points: 2

EP-007: Ranking & Leaderboards

MVP: MVP2 | Priority: Medium | Status: Ready

C-013: Global Ranking System

Create competitive leaderboards to drive engagement.

F-021: User Ranking

Priority: Medium | MVP: MVP2 | Story Points: 13

  • US-067: As a user, I want to see my ranking compared to other users so that I can measure my contribution
  • Acceptance Criteria: Leaderboard with top 100 users, display rank, username, points, donations count; user's own rank highlighted
  • Story Points: 5

  • US-068: As a user, I want to filter rankings by time period so that I can see recent performance

  • Acceptance Criteria: Filters: All Time, This Month, This Week; recalculate rankings based on period; display period at top
  • Story Points: 3

  • US-069: As a user, I want to see rankings for my university so that I can compete locally

  • Acceptance Criteria: University-specific leaderboard, filter by institution, inter-university comparison view
  • Story Points: 3

  • US-070: As a user, I want to opt out of public rankings so that my privacy is protected

  • Acceptance Criteria: Privacy setting in profile, option to hide from leaderboards, anonymous mode (show rank but not username)
  • Story Points: 2
F-022: EcoPoint Rankings

Priority: Low | MVP: MVP2 | Story Points: 5

  • US-071: As a user, I want to see which EcoPoints are most active so that I can find popular locations
  • Acceptance Criteria: Leaderboard of EcoPoints by total donations, total weight collected, number of users; display on map view
  • Story Points: 3

  • US-072: As an admin, I want to see underutilized EcoPoints so that I can optimize placement

  • Acceptance Criteria: Analytics dashboard with usage statistics per EcoPoint, inactive threshold alerts, recommendations for relocation
  • Story Points: 2

EP-008: Badges & Achievements

MVP: MVP2 | Priority: Medium | Status: Ready

C-014: Achievement System

Reward milestones with visual badges and achievements.

F-023: Badge Collection

Priority: Medium | MVP: MVP2 | Story Points: 13

  • US-073: As a user, I want to earn badges for accomplishments so that I'm recognized for my efforts
  • Acceptance Criteria: Badge types: First Donation, 10 Donations, 50kg Donated, Top 10 Rank, Monthly Champion, Material Specialist (5 donations of same type)
  • Story Points: 5

  • US-074: As a user, I want to see my badge collection so that I can showcase my achievements

  • Acceptance Criteria: Badges displayed on profile, earned badges in color, locked badges in grayscale with progress, badge details on tap
  • Story Points: 3

  • US-075: As a user, I want to receive notifications when I earn a badge so that I'm aware of achievements

  • Acceptance Criteria: Push notification (if enabled), in-app notification, badge animation in UI, celebratory message
  • Story Points: 3

  • US-076: As a system, I must automatically award badges when conditions are met so that recognition is immediate

  • Acceptance Criteria: Background job checks achievement conditions after each donation, idempotent badge awarding, event log for analytics
  • Story Points: 2
F-024: Achievement Progress Tracking

Priority: Low | MVP: MVP2 | Story Points: 5

  • US-077: As a user, I want to see my progress toward locked badges so that I know what to work toward
  • Acceptance Criteria: Progress bar for each badge, requirements listed, "Next badge" suggestion on dashboard
  • Story Points: 3

  • US-078: As a user, I want to share my badges on social media so that I can celebrate achievements

  • Acceptance Criteria: Share button on badge detail screen, generates shareable image with badge graphic and user stats
  • Story Points: 2

TM-005: Educational Content & Community Knowledge

Deliver high-quality recycling education co-created with waste picker cooperatives.

EP-009: Content Management System

MVP: MVP2 | Priority: High | Status: Ready

C-015: Content Creation & Publishing

Enable cooperative members and admins to create and publish educational content.

F-025: Content Editor (CMS)

Priority: High | MVP: MVP2 | Story Points: 13

  • US-079: As a cooperative member, I want to create educational articles so that I can share recycling knowledge
  • Acceptance Criteria: Rich text editor with formatting (bold, italic, lists), image upload, video embed (YouTube/Vimeo), preview mode
  • Story Points: 5

  • US-080: As a content creator, I want to save drafts so that I can work on content over time

  • Acceptance Criteria: Auto-save every 30 seconds, manual save button, draft status indicator, last saved timestamp
  • Story Points: 3

  • US-081: As a content creator, I want to publish content so that users can access it

  • Acceptance Criteria: Publish button (changes status from draft to published), publish date/time, option to schedule future publishing
  • Story Points: 3

  • US-082: As an admin, I want to review content before publication so that quality is ensured

  • Acceptance Criteria: Approval workflow (draft → review → published), reviewer comments, approve/reject actions, notification to author
  • Story Points: 2
F-026: Content Organization & Categories

Priority: Medium | MVP: MVP2 | Story Points: 8

  • US-083: As a content creator, I want to categorize articles so that users can find relevant content
  • Acceptance Criteria: Categories: Getting Started, Material Types, Preparation Tips, Impact Stories, Cooperative Insights; multi-category tagging
  • Story Points: 3

  • US-084: As a user, I want to browse content by category so that I can find topics of interest

  • Acceptance Criteria: Category filter on content library, category chips/tabs, article count per category
  • Story Points: 3

  • US-085: As a user, I want to search for specific topics so that I can quickly find information

  • Acceptance Criteria: Search bar with autocomplete, full-text search, highlight search terms in results, "No results" state with suggestions
  • Story Points: 2
C-016: Content Consumption & Engagement

Deliver engaging, accessible educational content to users.

F-027: Content Library

Priority: High | MVP: MVP2 | Story Points: 8

  • US-086: As a user, I want to view educational articles so that I can learn proper recycling practices
  • Acceptance Criteria: Article list with thumbnail, title, author, publish date, excerpt; article detail page with full content, related articles
  • Story Points: 3

  • US-087: As a user, I want to watch video tutorials so that I can see recycling techniques demonstrated

  • Acceptance Criteria: Video player embedded, playback controls, captions/subtitles, video thumbnail on library card
  • Story Points: 3

  • US-088: As a user, I want to bookmark articles so that I can return to them later

  • Acceptance Criteria: Bookmark button (heart/star icon), bookmarked articles list in profile, remove from bookmarks option
  • Story Points: 2
F-028: Content Feedback & Analytics

Priority: Low | MVP: MVP2 | Story Points: 5

  • US-089: As a user, I want to rate content so that others know what's helpful
  • Acceptance Criteria: 5-star rating system, display average rating, rating count, user can rate only once per article
  • Story Points: 3

  • US-090: As a content creator, I want to see how my content performs so that I can improve

  • Acceptance Criteria: Analytics dashboard with views, ratings, bookmarks, read time, user comments/feedback
  • Story Points: 2

TM-006: Technical Foundation & Platform Infrastructure

Build robust, scalable, secure technical infrastructure for the Ecolink ecosystem.

EP-010: Backend Services & API

MVP: MVP1 & MVP2 | Priority: Critical | Status: In Progress

C-017: RESTful API Architecture

Design and implement comprehensive backend API.

F-029: Core API Endpoints

Priority: Critical | MVP: MVP1 | Story Points: 21

  • US-091: As a developer, I want RESTful API endpoints for all core entities so that the frontend can interact with the backend
  • Acceptance Criteria: Endpoints for users, ecopoints, donations, sessions; standard HTTP methods (GET, POST, PUT, DELETE); JSON responses
  • Story Points: 8

  • US-092: As a system, I must validate all API requests so that data integrity is maintained

  • Acceptance Criteria: Request schema validation (Joi/Yup), error responses with field-level details, sanitization of inputs
  • Story Points: 5

  • US-093: As a developer, I want API documentation so that integration is straightforward

  • Acceptance Criteria: OpenAPI/Swagger documentation, interactive API explorer, example requests/responses, authentication guide
  • Story Points: 5

  • US-094: As a system, I must handle errors gracefully so that clients receive meaningful feedback

  • Acceptance Criteria: Standardized error format (code, message, details), appropriate HTTP status codes, error logging with stack traces
  • Story Points: 3
F-030: Authentication & Authorization Middleware

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-095: As a system, I must authenticate API requests so that only authorized users access protected endpoints
  • Acceptance Criteria: JWT verification middleware, bearer token extraction, token expiration validation, 401 Unauthorized for invalid tokens
  • Story Points: 5

  • US-096: As a system, I must authorize requests based on user roles so that permissions are enforced

  • Acceptance Criteria: Role-based middleware (requireAuth, requireAdmin, requireCooperative), 403 Forbidden for insufficient permissions
  • Story Points: 5

  • US-097: As a system, I must rate-limit API requests so that abuse is prevented

  • Acceptance Criteria: Rate limiting middleware (100 req/min per IP), 429 Too Many Requests response, configurable limits per endpoint
  • Story Points: 3
C-018: Database Design & Management

Implement efficient, normalized database schema.

F-031: Database Schema

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-098: As a developer, I want a normalized database schema so that data is efficiently stored
  • Acceptance Criteria: Collections/Tables: users, ecopoints, donations, sessions, badges, content, credits; relationships defined; indexes on frequently queried fields
  • Story Points: 8

  • US-099: As a system, I must ensure data consistency so that referential integrity is maintained

  • Acceptance Criteria: Foreign key constraints (or equivalent in MongoDB), cascading deletes where appropriate, transaction support for critical operations
  • Story Points: 3

  • US-100: As a developer, I want database migrations so that schema changes are versioned

  • Acceptance Criteria: Migration tool (migrate-mongo/Sequelize migrations), up/down migration scripts, migration history tracking
  • Story Points: 2
F-032: Data Access Layer

Priority: High | MVP: MVP1 | Story Points: 8

  • US-101: As a developer, I want ORM/ODM abstraction so that database operations are simplified
  • Acceptance Criteria: Mongoose (MongoDB) or Sequelize (PostgreSQL), model definitions with validation, query methods (find, create, update, delete)
  • Story Points: 5

  • US-102: As a system, I must log database queries in development so that debugging is easier

  • Acceptance Criteria: Query logging in development mode, performance metrics (query time), slow query alerts (>100ms)
  • Story Points: 3

EP-011: Frontend Architecture & State Management

MVP: MVP1 & MVP2 | Priority: Critical | Status: In Progress

C-019: React Application Structure

Build modular, maintainable React application.

F-033: Component Architecture

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-103: As a developer, I want a component-based architecture so that code is reusable
  • Acceptance Criteria: Folder structure: components (reusable), pages (route components), layouts (templates), hooks (custom logic), utils (helpers)
  • Story Points: 5

  • US-104: As a developer, I want shared components so that UI is consistent

  • Acceptance Criteria: Component library: Button, Input, Card, Modal, Badge, Avatar, Loading, Error; Storybook for component documentation
  • Story Points: 5

  • US-105: As a developer, I want routing configured so that navigation works

  • Acceptance Criteria: React Router setup, route definitions, protected routes (auth required), 404 page, route transitions
  • Story Points: 3
F-034: State Management

Priority: High | MVP: MVP1 | Story Points: 8

  • US-106: As a developer, I want global state management so that data flows predictably
  • Acceptance Criteria: Context API or Redux setup, auth state (user, token), app state (loading, errors), persistent state (localStorage sync)
  • Story Points: 5

  • US-107: As a developer, I want API integration hooks so that data fetching is standardized

  • Acceptance Criteria: Custom hooks: useAuth, useDonations, useEcoPoints; loading and error states; automatic retry on failure
  • Story Points: 3
C-020: Build & Deployment Pipeline

Automate build, test, and deployment processes.

F-035: CI/CD Configuration

Priority: High | MVP: MVP1 | Story Points: 8

  • US-108: As a developer, I want automated testing so that regressions are caught early
  • Acceptance Criteria: Jest + React Testing Library setup, unit tests for utilities, integration tests for components, >80% coverage target
  • Story Points: 5

  • US-109: As a team, we want CI/CD pipeline so that deployment is automated

  • Acceptance Criteria: GitHub Actions workflow, test on PR, deploy to staging on merge to develop, deploy to production on release tag
  • Story Points: 3

EP-012: Security & Data Protection

MVP: MVP1 & MVP2 | Priority: Critical | Status: Ready

C-021: Application Security

Implement comprehensive security measures.

F-036: Security Hardening

Priority: Critical | MVP: MVP1 | Story Points: 13

  • US-110: As a system, I must protect against common vulnerabilities so that user data is secure
  • Acceptance Criteria: Helmet.js for security headers, CORS configuration, SQL/NoSQL injection prevention, XSS protection, CSRF tokens
  • Story Points: 5

  • US-111: As a system, I must encrypt sensitive data so that privacy is maintained

  • Acceptance Criteria: Bcrypt for password hashing (10 rounds), HTTPS enforced in production, encrypted environment variables, secure session storage
  • Story Points: 5

  • US-112: As a system, I must log security events so that threats can be detected

  • Acceptance Criteria: Log failed login attempts, suspicious activity alerts, audit trail for sensitive operations, log retention policy (90 days)
  • Story Points: 3
C-022: Data Privacy & Compliance

Ensure LGPD (Brazilian GDPR) compliance.

F-037: Privacy Controls

Priority: High | MVP: MVP1 | Story Points: 8

  • US-113: As a user, I want to control my data so that my privacy is protected
  • Acceptance Criteria: Data export option (JSON download), account deletion, consent management for data processing, privacy policy acceptance
  • Story Points: 5

  • US-114: As a system, I must anonymize data for analytics so that privacy is preserved

  • Acceptance Criteria: No personally identifiable information in analytics, aggregate statistics only, opt-out mechanism
  • Story Points: 3

EP-013: Monitoring & DevOps

MVP: Future | Priority: Medium | Status: Backlog

C-023: Application Monitoring

Implement observability and performance monitoring.

F-038: Logging & Monitoring

Priority: Medium | MVP: Future | Story Points: 8

  • US-115: As a developer, I want centralized logging so that issues can be diagnosed
  • Acceptance Criteria: Winston/Pino logging, log levels (error, warn, info, debug), structured JSON logs, Loggly/Datadog integration
  • Story Points: 5

  • US-116: As a team, we want error tracking so that bugs are surfaced quickly

  • Acceptance Criteria: Sentry integration, source map upload, error grouping, email alerts for critical errors, user impact tracking
  • Story Points: 3
F-039: Performance Monitoring

Priority: Low | MVP: Future | Story Points: 5

  • US-117: As a team, we want application performance metrics so that bottlenecks are identified
  • Acceptance Criteria: API response time tracking, database query performance, frontend load times, Core Web Vitals monitoring
  • Story Points: 3

  • US-118: As a team, we want uptime monitoring so that outages are detected immediately

  • Acceptance Criteria: Pingdom/UptimeRobot setup, health check endpoint, status page for users, incident response plan
  • Story Points: 2
C-024: Infrastructure as Code

Automate infrastructure provisioning and management.

F-040: Cloud Deployment

Priority: Medium | MVP: Future | Story Points: 13

  • US-119: As a team, we want containerized deployment so that environments are consistent
  • Acceptance Criteria: Dockerfile for frontend/backend, Docker Compose for local development, image optimization (<500MB)
  • Story Points: 5

  • US-120: As a team, we want cloud hosting so that the application is scalable

  • Acceptance Criteria: Deploy to AWS/GCP/Azure, load balancing, auto-scaling configuration, CDN for static assets, database managed service
  • Story Points: 8

4. Non-Functional Requirements

ID Category Requirement Priority Target Metric
NFR-001 Performance API response time for 95th percentile requests Critical <500ms
NFR-002 Performance Frontend page load time (First Contentful Paint) High <2s
NFR-003 Scalability System must support concurrent users High 1,000 users
NFR-004 Availability System uptime during business hours (6am-10pm BRT) High 99.5%
NFR-005 Security All data in transit must be encrypted Critical TLS 1.3
NFR-006 Security Passwords must be securely hashed Critical Bcrypt (10+ rounds)
NFR-007 Usability Mobile-first responsive design Critical 100% mobile compatible
NFR-008 Accessibility WCAG 2.1 AA compliance Medium Level AA
NFR-009 Browser Support Support for modern browsers High Chrome, Firefox, Safari, Edge (last 2 versions)
NFR-010 Data Retention Donation history retention Medium Indefinite (or 7 years per LGPD)
NFR-011 Localization Support for Brazilian Portuguese Critical 100% PT-BR
NFR-012 Maintainability Code coverage for automated tests Medium >80%
NFR-013 Recoverability Database backup frequency High Daily automated backups
NFR-014 Compliance LGPD (Brazilian Data Protection Law) compliance Critical Full compliance
NFR-015 Documentation API documentation completeness High 100% endpoints documented

5. MVP Release Plan

MVP1 - Core Platform (Target: Sprint 1-6)

Epic Coverage: EP-001, EP-002, EP-003, EP-004, EP-005, EP-010, EP-011, EP-012

Key Deliverables: - User authentication & profile management - Responsive UI with main screens - EcoPoint mapping & discovery - QR code scanning & kiosk access - Donation registration & history - Backend API & database - Security implementation

Success Criteria: - Users can register, log in, and manage profiles - Users can locate EcoPoints on a map - Users can scan QR codes and register donations - All donations are tracked in history - System is secure and performant


MVP2 - Gamification & Education (Target: Sprint 7-12)

Epic Coverage: EP-006, EP-007, EP-008, EP-009

Key Deliverables: - Points & credit system - Ranking & leaderboards - Badges & achievements - Educational content CMS - Content library & consumption

Success Criteria: - Users earn points for donations - Students can convert points to academic credits - Rankings motivate competitive recycling - Educational content is accessible and engaging - Cooperative members can publish content


6. Traceability Matrix

Epic Theme MVPPriority Dependencies Risk Level
EP-001 TM-001 MVP1 Critical None
EP-002 TM-001 MVP1 Critical EP-001
EP-003 TM-002 MVP1 Critical EP-001
EP-004 TM-002 MVP1 Critical EP-001
EP-005 TM-003 MVP1 Critical EP-001, EP-004
EP-006 TM-004 MVP2 High EP-005
EP-007 TM-004 MVP2 Medium EP-006
EP-008 TM-004 MVP2 Medium EP-006
EP-009 TM-005 MVP2 High EP-001
EP-010 TM-006 MVP1 Critical None
EP-011 TM-006 MVP1 Critical EP-010
EP-012 TM-006 MVP1 Critical EP-010
EP-013 TM-006 Future Medium EP-010

7. Backlog Management Guidelines

Prioritization Criteria

  1. Critical: Blocks MVP delivery, core functionality, security/compliance
  2. High: Major feature, significant user value, MVP requirement
  3. Medium: Enhancement, nice-to-have, improves experience
  4. Low: Future optimization, minimal impact, non-MVP

Story Point Estimation (Fibonacci Scale)

  • 1-2: Simple task, <4 hours
  • 3-5: Moderate complexity, 1-2 days
  • 8: Complex feature, 3-5 days
  • 13: Very complex, requires breakdown, 1-2 weeks
  • 21+: Epic-level, must be decomposed

Definition of Ready (DoR)

  • User story has clear acceptance criteria
  • Dependencies identified and resolved
  • Design mockups available (if UI work)
  • Technical approach discussed
  • Story points estimated by team

Definition of Done (DoD)

  • Code written and reviewed
  • Unit tests written (>80% coverage)
  • Integration tests pass
  • Documentation updated
  • Deployed to staging
  • Acceptance criteria validated
  • No critical bugs

8. Revision History

Date Version Author Changes
2025-10-07 1.0 Mateus Vieira Initial backlog creation with complete SAFe hierarchy for MVP1 and MVP2

← Back to Product | ← Back to Main Page