Skip to content

Latest commit

 

History

History
210 lines (145 loc) · 16.5 KB

File metadata and controls

210 lines (145 loc) · 16.5 KB

Requirements Document

Introduction

fLOKr is a digital community hub platform designed to support newcomers in unfamiliar cities by enabling them to borrow, share, and reserve essential items (clothing, food, tools) while connecting with Leads, Circles, Crews, and community hubs. The platform integrates Navi to provide intelligent item tagging, personalized recommendations, demand forecasting, multilingual support, and newcomer guidance. The initial pilot will launch in Hamilton with 1-2 community hubs, with plans to scale city-to-city and eventually globally.

Glossary

  • fLOKr Platform: The complete web and mobile application system enabling resource sharing and community connection
  • Newcomer: An individual who has recently relocated to a new city and requires support accessing essential resources
  • Community Member: A local resident who contributes items, time, or expertise to support newcomers
  • Hub: A physical community location that stores inventory and facilitates item exchanges
  • Steward: A trusted community member with elevated permissions to manage hub operations and resolve disputes
  • Loop: The main community feed where members post Signals
  • Signals: Updates, asks, offers, welcomes, hub updates, and support requests
  • Circles: Recurring communities/groups around shared needs, places, or identities
  • Crews: Action teams that coordinate tasks, support, and Moves
  • Leads: Trusted helpers and community leaders who guide and support members
  • Moves: Local workshops, drives, meetups, and actions people can join
  • Shifts: Work support for job leads, wage notes, workplace red flags, and rights guidance
  • Navi: The AI community guide that provides auto-tagging, recommendations, forecasting, translations, and guidance
  • Lexi: The rights/legal specialist used inside Shifts for worker, tenant, lease, and fine-print support
  • Inventory Item: Any physical resource (clothing, food, tool, etc.) available for borrowing or sharing through the platform
  • Reservation: A time-bound commitment to borrow a specific inventory item
  • Badge: A digital recognition awarded to users for positive community contributions
  • Partner Organization: An external entity (NGO, business, government agency) that collaborates with fLOKr
  • Backend System: The Django-based server infrastructure managing data, business logic, and API endpoints
  • Mobile Frontend: The Expo React Native application providing user interface on mobile devices

Requirements

Requirement 1

User Story: As a newcomer, I want to create an account and complete an onboarding process, so that I can access community resources and receive personalized support.

Acceptance Criteria

  1. WHEN a newcomer provides registration information (name, email, phone, arrival date, languages spoken), THE fLOKr Platform SHALL create a user account with newcomer role
  2. WHEN a newcomer completes the onboarding questionnaire about their needs (clothing sizes, dietary restrictions, skill interests), THE fLOKr Platform SHALL store preference data for personalization
  3. WHEN a newcomer selects their preferred language during onboarding, THE fLOKr Platform SHALL set the interface language and enable Navi translation services
  4. WHEN a newcomer account is created, THE fLOKr Platform SHALL assign the user to the nearest hub based on their address
  5. WHEN onboarding is completed, THE fLOKr Platform SHALL display a personalized welcome screen with recommended first actions

Requirement 2

User Story: As a community member, I want to register and contribute items to my local hub, so that I can support newcomers in my neighborhood.

Acceptance Criteria

  1. WHEN a community member provides registration information (name, email, phone, address), THE fLOKr Platform SHALL create a user account with community member role
  2. WHEN a community member uploads photos and descriptions of items they wish to donate, THE fLOKr Platform SHALL create pending inventory entries awaiting hub verification
  3. WHEN a community member indicates availability to guide newcomers, THE fLOKr Platform SHALL flag their profile for Lead matching
  4. WHEN a community member completes five successful item contributions, THE fLOKr Platform SHALL award a contributor badge
  5. WHEN a community member account is created, THE fLOKr Platform SHALL send a welcome notification with contribution guidelines

Requirement 3

User Story: As a hub steward, I want to manage inventory items at my physical location, so that I can maintain accurate records and ensure item availability.

Acceptance Criteria

  1. WHEN a steward receives a physical item donation, THE fLOKr Platform SHALL allow the steward to create an inventory entry with photos, category, condition, and quantity
  2. WHEN a steward uploads an item photo, THE Navi service SHALL automatically suggest tags, category, and condition rating within five seconds
  3. WHEN an item is borrowed from the hub, THE fLOKr Platform SHALL update the inventory quantity and record the transaction timestamp
  4. WHEN an item is returned to the hub, THE fLOKr Platform SHALL update the inventory quantity and prompt the steward to verify item condition
  5. WHEN an item becomes damaged or unavailable, THE fLOKr Platform SHALL allow the steward to mark it as inactive and remove it from borrowable inventory

Requirement 4

User Story: As a newcomer, I want to search for and reserve essential items, so that I can obtain what I need without purchasing new items.

Acceptance Criteria

  1. WHEN a newcomer searches for items by keyword or category, THE fLOKr Platform SHALL return available inventory items ranked by relevance and proximity
  2. WHEN a newcomer views an item detail page, THE fLOKr Platform SHALL display photos, description, condition, available quantity, and pickup location
  3. WHEN a newcomer requests to reserve an available item, THE fLOKr Platform SHALL create a reservation with pickup date and send confirmation to both user and hub steward
  4. WHEN a reservation pickup date passes without completion, THE fLOKr Platform SHALL automatically cancel the reservation and notify the newcomer
  5. WHEN a newcomer picks up a reserved item, THE fLOKr Platform SHALL record the borrow transaction with expected return date

Requirement 5

User Story: As a newcomer, I want Navi to recommend items and resources based on my needs, so that I can discover helpful resources I might not know to search for.

Acceptance Criteria

  1. WHEN a newcomer views their dashboard, THE Navi service SHALL display personalized item recommendations based on user preferences, season, and community patterns
  2. WHEN a newcomer asks Navi a question in natural language, THE Navi service SHALL provide a relevant answer within ten seconds using FAQ knowledge and platform data
  3. WHEN a newcomer's profile indicates recent arrival, THE Navi service SHALL proactively recommend essential items (winter coat, kitchen basics) appropriate to the current season
  4. WHEN a newcomer browses items in a category, THE Navi service SHALL suggest complementary items frequently borrowed together
  5. WHEN a newcomer speaks a non-English language, THE Navi service SHALL provide recommendations and guidance in their preferred language

Requirement 6

User Story: As a hub steward, I want to view demand forecasts for my neighborhood, so that I can proactively request donations for high-need items.

Acceptance Criteria

  1. WHEN a steward views the hub dashboard, THE Navi service SHALL display predicted demand for item categories over the next thirty days based on historical patterns and seasonal trends
  2. WHEN demand for a specific item category exceeds available inventory by fifty percent, THE Navi service SHALL alert the steward with a suggested donation request
  3. WHEN a new wave of newcomers is registered in a hub's area, THE Navi service SHALL adjust demand forecasts to reflect increased need
  4. WHEN seasonal changes occur (e.g., winter approaching), THE Navi service SHALL increase demand forecasts for seasonal items (winter clothing, heating equipment)
  5. WHEN a steward reviews forecast accuracy monthly, THE fLOKr Platform SHALL display actual versus predicted demand metrics for continuous improvement

Requirement 7

User Story: As a community member, I want to earn badges and recognition for my contributions, so that I feel valued and motivated to continue helping.

Acceptance Criteria

  1. WHEN a user completes specific contribution milestones (five items donated, ten Lead support sessions), THE fLOKr Platform SHALL award corresponding achievement badges
  2. WHEN a user earns a badge, THE fLOKr Platform SHALL display a celebration notification and update their public profile
  3. WHEN a user views another member's profile, THE fLOKr Platform SHALL display all earned badges with descriptions
  4. WHEN a user consistently contributes over six months, THE fLOKr Platform SHALL award a community champion badge
  5. WHEN a hub steward reviews contributor rankings, THE fLOKr Platform SHALL display leaderboards showing top contributors by category

Requirement 8

User Story: As a newcomer, I want to report issues or provide feedback about items or experiences, so that the community can maintain quality and trust.

Acceptance Criteria

  1. WHEN a newcomer encounters a problem with an item or interaction, THE fLOKr Platform SHALL provide a feedback form accessible from any screen
  2. WHEN a newcomer submits an incident report about a damaged item, THE fLOKr Platform SHALL notify the relevant hub steward within one minute
  3. WHEN a newcomer rates their borrowing experience, THE fLOKr Platform SHALL store the rating and associate it with the item and hub
  4. WHEN multiple negative reports are filed about the same item, THE fLOKr Platform SHALL flag the item for steward review
  5. WHEN a newcomer submits positive feedback about a community member, THE fLOKr Platform SHALL contribute to that member's reputation score

Requirement 9

User Story: As a steward, I want to manage reservations and track item returns, so that I can ensure items are returned on time and remain available for others.

Acceptance Criteria

  1. WHEN a reservation is created, THE fLOKr Platform SHALL send reminder notifications to the newcomer one day before pickup and one day before return due date
  2. WHEN an item becomes overdue, THE fLOKr Platform SHALL send escalating reminders to the borrower and notify the hub steward
  3. WHEN a steward views the hub dashboard, THE fLOKr Platform SHALL display all active reservations, upcoming pickups, and overdue items
  4. WHEN an item is returned late three times by the same user, THE fLOKr Platform SHALL temporarily restrict that user's borrowing privileges
  5. WHEN a borrower requests an extension before the due date, THE fLOKr Platform SHALL allow the steward to approve or deny the extension request

Requirement 10

User Story: As a platform administrator, I want to manage multiple hubs across different neighborhoods, so that I can scale the platform while maintaining local community focus.

Acceptance Criteria

  1. WHEN an administrator creates a new hub, THE fLOKr Platform SHALL require hub name, address, operating hours, and assigned steward accounts
  2. WHEN a newcomer registers, THE fLOKr Platform SHALL automatically assign them to the nearest hub based on geographic proximity
  3. WHEN a user searches for items, THE fLOKr Platform SHALL prioritize results from their assigned hub while showing available items from nearby hubs
  4. WHEN an administrator views the platform dashboard, THE fLOKr Platform SHALL display aggregate metrics across all hubs (total users, items, transactions)
  5. WHEN inventory is transferred between hubs, THE fLOKr Platform SHALL record the transfer transaction and update both hubs' inventory counts

Requirement 11

User Story: As a partner organization, I want to sponsor item listings or access aggregated community insights, so that I can support newcomers while achieving our organizational goals.

Acceptance Criteria

  1. WHEN a partner organization subscribes to the platform, THE fLOKr Platform SHALL create a partner account with enhanced visibility options
  2. WHEN a partner sponsors an item category, THE fLOKr Platform SHALL display the partner's branding on relevant item listings and search results
  3. WHEN a partner accesses the analytics dashboard, THE fLOKr Platform SHALL display privacy-safe aggregated insights (demand trends, popular categories, geographic distribution) without exposing individual user data
  4. WHEN a partner lists resources or services, THE Navi service SHALL recommend these resources to relevant newcomers based on their needs
  5. WHEN a partner subscription expires, THE fLOKr Platform SHALL remove sponsored content and restrict access to premium analytics

Requirement 12

User Story: As a newcomer, I want to connect with local Leads who can guide me, so that I can navigate my new city with personal support.

Acceptance Criteria

  1. WHEN a newcomer requests Lead matching, THE fLOKr Platform SHALL suggest Leads based on shared languages, interests, and geographic proximity
  2. WHEN a Lead accepts a support request, THE fLOKr Platform SHALL create a connection and enable in-app messaging between the Lead and newcomer
  3. WHEN a newcomer and Lead exchange messages, THE fLOKr Platform SHALL provide real-time chat functionality with message history
  4. WHEN a Lead relationship reaches three months, THE fLOKr Platform SHALL prompt both parties to provide feedback on the experience
  5. WHEN a Lead completes five successful support relationships, THE fLOKr Platform SHALL award a Lead excellence badge

Requirement 13

User Story: As a system administrator, I want the platform to handle data securely and comply with privacy regulations, so that user trust is maintained and legal requirements are met.

Acceptance Criteria

  1. WHEN a user creates an account, THE fLOKr Platform SHALL encrypt sensitive personal information (email, phone, address) using industry-standard encryption
  2. WHEN a user requests to view their personal data, THE fLOKr Platform SHALL provide a complete export within seventy-two hours
  3. WHEN a user requests account deletion, THE fLOKr Platform SHALL anonymize or delete personal data within thirty days while retaining anonymized transaction records for analytics
  4. WHEN partner organizations access analytics, THE fLOKr Platform SHALL ensure all data is aggregated and anonymized to prevent identification of individual users
  5. WHEN authentication occurs, THE fLOKr Platform SHALL use secure token-based authentication with automatic session expiration after twenty-four hours of inactivity

Requirement 14

User Story: As a mobile app user, I want the application to work smoothly on both iOS and Android devices, so that I can access fLOKr regardless of my device choice.

Acceptance Criteria

  1. WHEN a user installs the mobile app on iOS or Android, THE Mobile Frontend SHALL display consistent interface elements and functionality across both platforms
  2. WHEN a user takes a photo of an item to donate, THE Mobile Frontend SHALL access the device camera and upload the image to the Backend System
  3. WHEN a user receives a notification about a reservation or message, THE Mobile Frontend SHALL display a push notification on the device lock screen
  4. WHEN a user loses internet connectivity, THE Mobile Frontend SHALL display cached content and queue actions for synchronization when connectivity returns
  5. WHEN a user enables location services, THE Mobile Frontend SHALL use GPS data to calculate distances to hubs and sort results by proximity

Requirement 15

User Story: As a developer, I want the backend system to provide a well-documented REST API, so that future integrations and frontend updates can be implemented efficiently.

Acceptance Criteria

  1. WHEN a frontend application requests user data, THE Backend System SHALL respond with JSON-formatted data following RESTful conventions
  2. WHEN an API endpoint receives invalid input, THE Backend System SHALL return appropriate HTTP status codes (400 for bad requests, 401 for unauthorized, 404 for not found) with descriptive error messages
  3. WHEN API documentation is accessed, THE Backend System SHALL provide comprehensive endpoint documentation including request/response schemas and example calls
  4. WHEN concurrent requests modify the same inventory item, THE Backend System SHALL use database transactions to prevent race conditions and maintain data consistency
  5. WHEN API endpoints are called, THE Backend System SHALL enforce rate limiting to prevent abuse (maximum one hundred requests per user per minute)