Skip to main content

SASA FOOD — Software Requirements Specification (SRS)

Table of Contents

1 Document Information

FieldValue
Project NameSASA FOOD
Version1.1
Date2025-09-10
Project ManagerKelvin
Tech LeadEzekiel
Qa LeadTumaini
Platforms['Android', 'iOS']
Document StatusDraft

2 Project Overview

2.1 What Are We Building

2.1.1 System Function

A mobile food delivery platform that connects customers with restaurants for ordering and delivering meals on-demand

2.1.2 Users

  • Customers (ordering food)
  • Restaurant partners (managing menus and orders)
  • Delivery drivers (fulfilling orders)
  • Admins (platform management)

2.1.3 Problem Solved

Provides convenient, affordable, and reliable food delivery service in Tanzania through a digital platform

2.1.4 Key Success Metric

500+ active customers and 50+ partner restaurants within 3 months of launch

2.2 Scope

2.2.1 In Scope

  • Restaurant browsing and menu viewing
  • Order placement and management
  • Payment processing (Mobile Money + Cards)
  • User authentication and profiles
  • Order tracking and status updates
  • Restaurant partner onboarding
  • Basic customer support
  • Loyalty program with rewards

2.2.2 Out Of Scope

  • Grocery delivery services
  • Meal kit subscriptions
  • Restaurant inventory management
  • Advanced analytics dashboard
  • Multi-city operations (Phase 1)
  • Corporate catering services

3 User Requirements

3.1 Authentication User Management

Feature CodeI Want ToSo That I CanPriorityNotes
FT-AUTH-REGRegister using phone number or emailCreate an account and place food ordersMustSMS/Email verification required
FT-AUTH-LOGINLog into my account securelyAccess my profile and order historyMustSupport fingerprint login
FT-AUTH-LOGOUTLog out of the appProtect my account when sharing deviceMustClear all session data
FT-AUTH-RESETReset my password via OTPRecover access to my accountMustSMS and email options
FT-AUTH-PROFILEEdit my profile and delivery addressesKeep my information currentShouldMultiple delivery addresses

3.2 Core Business Features

Feature CodeI Want ToSo That I CanPriorityNotes
FT-REST-BROWSEBrowse available restaurants near meFind places to order food fromMustShow ratings, delivery time, cuisine type
FT-MENU-VIEWView restaurant menus with pricesChoose what food to orderMustCategorized by food type
FT-SEARCH-FOODSearch for specific dishes or restaurantsQuickly find food I wantShouldSearch by name, cuisine, restaurant
FT-ORDER-CREATEAdd items to cart and place ordersPurchase food for deliveryMustShow estimated delivery time
FT-PAY-PROCESSPay for orders using mobile money or cardsComplete transactions convenientlyMustM-Pesa, Tigo Pesa, Airtel Money support
FT-LOCATION-SETSet and manage delivery locationsReceive orders at the correct addressMustGPS location detection

3.3 Additional Features

Feature CodeI Want ToSo That I CanPriorityNotes
FT-ORDER-TRACKTrack my order status in real-timeKnow when my food will be deliveredShouldPush notifications for status updates
FT-REST-MANAGEAdd restaurants to favoritesEasily reorder from preferred placesCouldRestaurant favorites list
FT-LANG-SELECTChoose app language (English/Swahili)Use the app in my preferred languageCouldMulti-language support

4 Detailed Feature Requirements

4.1 Ft Auth Reg

4.1.1 Priority

Must Have

4.1.2 User Story

As a new customer, I want to create an account using my phone number so that I can order food through SASA FOOD

4.1.3 Preconditions

User downloads app, opens registration screen, has valid phone number or email

4.1.4 Postconditions

Account created, verification SMS/email sent, user can log in and browse restaurants

4.1.5 Test Cases

IdDescriptionWeight
AUTH-TC-001Verify user can register successfully using valid email and passwordHigh
AUTH-TC-002Verify user can register successfully using valid phone number and passwordHigh
AUTH-TC-003Verify system shows error for invalid email/phone formatsHigh
AUTH-TC-004Verify password requirements are enforced (min 8 characters, complexity)Medium
AUTH-TC-005Verify verification email/SMS sent within 2 minutesHigh
AUTH-TC-006Verify duplicate registration prevention with clear error messageHigh
AUTH-TC-007Verify user auto-logged in after successful verificationMedium

4.2 Ft Auth Login

4.2.1 Priority

Must Have

4.2.2 User Story

As a returning customer, I want to log into my account so that I can access my profile and place orders

4.2.3 Preconditions

User has existing account, opens app, navigates to login screen

4.2.4 Postconditions

User authenticated, redirected to home screen with restaurant list

4.2.5 Test Cases

IdDescriptionWeight
AUTH-TC-008Verify successful login with correct email and passwordHigh
AUTH-TC-009Verify appropriate error message for invalid credentialsHigh
AUTH-TC-010Verify user session persists until explicit logoutMedium
AUTH-TC-011Verify successful logout clears session dataHigh
AUTH-TC-012Verify fingerprint/biometric login functionality works correctlyMedium

4.3 Ft Auth Logout

4.3.1 Priority

Must Have

4.3.2 User Story

As a user, I want to log out of the app so that I can protect my account when sharing device

4.3.3 Preconditions

User is logged in and has access to logout function in profile or settings menu

4.3.4 Postconditions

User session terminated, all cached data cleared, user redirected to login screen

4.3.5 Test Cases

IdDescriptionWeight
AUTH-TC-013Verify logout function successfully terminates user sessionHigh
AUTH-TC-014Verify all cached user data is cleared after logoutHigh
AUTH-TC-015Verify user is redirected to login screen after logoutMedium
AUTH-TC-016Verify biometric authentication is disabled after logout until re-enabledMedium

4.4 Ft Auth Reset

4.4.1 Priority

Must Have

4.4.2 User Story

As a user, I want to reset my password via OTP so that I can recover access to my account

4.4.3 Preconditions

User has forgotten password and is on the login screen

4.4.4 Postconditions

Password reset successfully, user can log in with new password

4.4.5 Test Cases

IdDescriptionWeight
AUTH-TC-017Verify password reset via SMS OTP for registered phone numberHigh
AUTH-TC-018Verify password reset via email OTP for registered email addressHigh
AUTH-TC-019Verify OTP expires after specified time periodMedium
AUTH-TC-020Verify new password meets complexity requirementsHigh
AUTH-TC-021Verify user can log in immediately after successful password resetHigh

4.5 Ft Auth Profile

4.5.1 Priority

Should Have

4.5.2 User Story

As a user, I want to edit my profile and delivery addresses so that I can keep my information current

4.5.3 Preconditions

User is logged in and has navigated to profile settings

4.5.4 Postconditions

Profile information updated, multiple delivery addresses saved and managed

4.5.5 Test Cases

IdDescriptionWeight
AUTH-TC-022Verify user can edit basic profile information (name, phone, email)High
AUTH-TC-023Verify user can add multiple delivery addressesHigh
AUTH-TC-024Verify user can edit and delete existing delivery addressesMedium
AUTH-TC-025Verify user can set a default delivery addressMedium
AUTH-TC-026Verify profile changes are saved and persisted across app sessionsHigh

4.6 Ft Rest Browse

4.6.1 Priority

Must Have

4.6.2 User Story

As a customer, I want to browse available restaurants so that I can choose where to order food from

4.6.3 Preconditions

User is logged in, has location permission enabled, is in service area

4.6.4 Postconditions

User sees list of available restaurants with key details like ratings and delivery time

4.6.5 Test Cases

IdDescriptionWeight
MENU-TC-001Verify restaurant list displays with name, rating, and estimated delivery timeHigh
MENU-TC-002Verify restaurant menu page loads with categorized food itemsHigh
MENU-TC-003Verify restaurant filtering by cuisine type works correctlyMedium
MENU-TC-004Verify restaurant operating hours and availability status displayMedium
MENU-TC-005Verify restaurant list loads within 2 secondsHigh

4.7 Ft Menu View

4.7.1 Priority

Must Have

4.7.2 User Story

As a customer, I want to view restaurant menus with prices so that I can decide what to order

4.7.3 Preconditions

User selects a restaurant from the browse list

4.7.4 Postconditions

User sees categorized menu with dishes, prices, and descriptions

4.7.5 Test Cases

IdDescriptionWeight
MENU-TC-006Verify menu displays dishes categorized by food type (appetizers, mains, desserts)High
MENU-TC-007Verify each menu item shows name, description, price, and imageHigh
MENU-TC-008Verify search functionality finds dishes matching keywordsMedium
MENU-TC-009Verify menu loads completely within 2 secondsHigh
MENU-TC-010Verify items can be added to cart directly from menu viewHigh

4.8 Ft Search Food

4.8.1 Priority

Should Have

4.8.2 User Story

As a customer, I want to search for specific dishes or restaurants so that I can quickly find food I want

4.8.3 Preconditions

User is on the home screen or restaurant browsing page

4.8.4 Postconditions

Search results display relevant dishes and restaurants matching the query

4.8.5 Test Cases

IdDescriptionWeight
SEARCH-TC-001Verify search returns relevant results for dish namesHigh
SEARCH-TC-002Verify search returns relevant results for restaurant namesHigh
SEARCH-TC-003Verify search returns relevant results for cuisine typesMedium
SEARCH-TC-004Verify search response time is under 1 secondHigh
SEARCH-TC-005Verify search handles typos and partial matchesMedium
SEARCH-TC-006Verify empty search results display appropriate messageLow

4.9 Ft Order Create

4.9.1 Priority

Must Have

4.9.2 User Story

As a customer, I want to add items to my cart and place orders so that I can purchase food for delivery

4.9.3 Preconditions

User is viewing menu, has selected desired items

4.9.4 Postconditions

Items added to cart, user can review order and proceed to checkout

4.9.5 Test Cases

IdDescriptionWeight
ORDER-TC-001Verify dishes can be added to cart with confirmation messageHigh
ORDER-TC-002Verify cart quantities can be updated and subtotal recalculatesHigh
ORDER-TC-003Verify dishes can be removed from cart and total updatesHigh
ORDER-TC-004Verify cart displays item details, quantities, and running totalHigh
ORDER-TC-005Verify cart persists items during app sessionMedium
ORDER-TC-006Verify minimum order amount validation (if applicable)Medium
ORDER-TC-007Verify estimated delivery time is displayed in cartMedium

4.10 Ft Pay Process

4.10.1 Priority

Must Have

4.10.2 User Story

As a customer, I want to complete payment for my order so that the restaurant can prepare and deliver my food

4.10.3 Preconditions

User has items in cart, proceeds to checkout with delivery address

4.10.4 Postconditions

Payment processed, order confirmed, restaurant and delivery partner notified

4.10.5 Test Cases

IdDescriptionWeight
CHK-TC-001Verify checkout page displays order summary, delivery address, and payment optionsHigh
CHK-TC-002Verify successful order placement with payment confirmationHigh
CHK-TC-003Verify mobile money payment processing (M-Pesa, Tigo Pesa, Airtel Money)High
CHK-TC-004Verify credit/debit card payment processingHigh
CHK-TC-005Verify order confirmation displays with estimated delivery timeHigh
CHK-TC-006Verify user receives order confirmation via SMS/emailMedium
CHK-TC-007Verify failed payment handling with retry optionsHigh
CHK-TC-008Verify cash on delivery option availabilityMedium

4.11 Ft Location Set

4.11.1 Priority

Must Have

4.11.2 User Story

As a customer, I want to set my delivery location so that my food is delivered to the correct address

4.11.3 Preconditions

User needs to place an order or update delivery preferences

4.11.4 Postconditions

Delivery address confirmed, available restaurants filtered by service area

4.11.5 Test Cases

IdDescriptionWeight
LOC-TC-001Verify user can set delivery location using current GPS coordinatesHigh
LOC-TC-002Verify user can manually enter and search for delivery addressHigh
LOC-TC-003Verify user can save multiple delivery addressesMedium
LOC-TC-004Verify restaurants filter based on delivery location service areaHigh
LOC-TC-005Verify location permission request and handlingHigh

4.12 Ft Order Track

4.12.1 Priority

Should Have

4.12.2 User Story

As a customer, I want to track my order status in real-time so that I can know when my food will be delivered

4.12.3 Preconditions

User has placed an order and order is being processed

4.12.4 Postconditions

Real-time order status updates displayed with push notifications

4.12.5 Test Cases

IdDescriptionWeight
TRACK-TC-001Verify order tracking page displays current order statusHigh
TRACK-TC-002Verify push notifications sent for order status changesHigh
TRACK-TC-003Verify order status updates in real-time (preparing, ready, out for delivery)High
TRACK-TC-004Verify estimated delivery time updates based on order progressMedium
TRACK-TC-005Verify delivery driver location tracking when order is out for deliveryMedium
TRACK-TC-006Verify order completion notification when food is deliveredHigh

4.13 Ft Rest Manage

4.13.1 Priority

Could Have

4.13.2 User Story

As a customer, I want to add restaurants to favorites so that I can easily reorder from preferred places

4.13.3 Preconditions

User is viewing restaurant details or has previously ordered from restaurants

4.13.4 Postconditions

Restaurants added to favorites list, easily accessible for reordering

4.13.5 Test Cases

IdDescriptionWeight
FAV-TC-001Verify user can add restaurants to favorites from restaurant pageMedium
FAV-TC-002Verify user can remove restaurants from favorites listMedium
FAV-TC-003Verify favorites list displays saved restaurants with quick accessMedium
FAV-TC-004Verify favorite status persists across app sessionsMedium
FAV-TC-005Verify favorites list shows restaurant availability statusLow

4.14 Ft Lang Select

4.14.1 Priority

Could Have

4.14.2 User Story

As a customer, I want to choose app language (English/Swahili) so that I can use the app in my preferred language

4.14.3 Preconditions

User has accessed app settings or language preferences

4.14.4 Postconditions

App interface displays in selected language, setting persists across sessions

4.14.5 Test Cases

IdDescriptionWeight
LANG-TC-001Verify language selection option is available in app settingsMedium
LANG-TC-002Verify app interface switches to English when English is selectedHigh
LANG-TC-003Verify app interface switches to Swahili when Swahili is selectedHigh
LANG-TC-004Verify language setting persists after app restartMedium
LANG-TC-005Verify all UI elements display correctly in both languages without text truncationHigh
LANG-TC-006Verify currency and number formatting adapts to selected language localeMedium

5 Technical Requirements

5.1 Performance Standards

RequirementTargetHow To Test
App loads in≤ 3 secondsStopwatch testing on Pixel 4a and iPhone 11
Restaurant list loads≤ 2 secondsManual testing with different network speeds
Menu page loads≤ 2 secondsPerformance monitoring during testing
Search response time≤ 1 secondUser testing with various search queries
Works with users500 concurrentLoad testing with simulated users
Uptime99% or betterMonitoring and alerting systems
Works offlineNoRequires internet for core functionality

5.2 Platform Requirements

PlatformMinimum VersionTarget VersionNotes
AndroidAPI 21 (Android 5.0)API 30+ (Android 11+)Tested on Pixel 4a, Google Play Store requirements
iOSiOS 12.0iOS 15.0+Tested on iPhone 11, App Store guidelines compliance
Web BrowsersN/A - Mobile onlyN/AFuture Phase 3 consideration

5.3 Security Privacy

RequirementMust HaveImplementation
User data encryptionTrueAES-256 encryption for PII data at rest and in transit
Secure passwordsTrueMin 8 characters, complexity requirements, bcrypt hashing
Privacy complianceTrueGDPR + Tanzania Data Protection Act
Data backupTrueAutomated daily backups with 30-day retention
Payment securityTruePCI DSS compliance, tokenized payment data

6 External Dependencies

6.1 Third Party Services

ServiceWhat It DoesCriticalityBackup Plan
Google Maps APILocation services, delivery tracking, address searchCriticalOpenStreetMap fallback
M-Pesa APIPrimary mobile money payment processingCriticalCash on delivery option
Tigo Pesa APISecondary mobile money payment optionImportantM-Pesa and cash alternatives
Airtel Money APIThird mobile money payment optionImportantOther payment methods
Payment GatewayCredit/debit card payment processingImportantMobile money and cash fallback
Twilio SMSOTP delivery, order confirmationsImportantEmail notifications backup
Firebase PushReal-time notifications for order updatesImportantIn-app notifications only
AWS/Cloud InfrastructureApp hosting, database, file storageCriticalMulti-region deployment

6.2 Device Requirements

FeatureRequiredOptionalNotes
CameraFalseTrueProfile photos, food images, receipt scanning
GPS/LocationTrueFalseEssential for delivery address and restaurant discovery
Push NotificationsTrueFalseOrder updates, promotional offers, delivery notifications
BiometricsFalseTrueFingerprint/Face ID for convenient and secure login
Internet ConnectionTrueFalseRequired for all core functionality

7 Release Planning

7.1 Development Phases

PhaseFeatures IncludedTimelineSuccess Criteria
Phase 1 (MVP)['FT-AUTH-REG', 'FT-AUTH-LOGIN', 'FT-AUTH-LOGOUT', 'FT-AUTH-RESET', 'FT-REST-BROWSE', 'FT-MENU-VIEW', 'FT-ORDER-CREATE', 'FT-PAY-PROCESS', 'FT-LOCATION-SET']10 weeksCore food ordering works end-to-end with payment
Phase 2['FT-ORDER-TRACK', 'FT-SEARCH-FOOD', 'FT-AUTH-PROFILE', 'FT-REST-MANAGE', 'customer support']4 weeksEnhanced user experience and order management
Phase 3['FT-LANG-SELECT', 'loyalty program', 'advanced analytics', 'web platform']6 weeksComplete feature set for market expansion

7.2 Release Checklist

  • All 'Must Have' features working on Android and iOS
  • Zero critical bugs (restaurant creation, order placement, payment failures)
  • Performance tests passed (app load ≤ 3s, restaurant list ≤ 2s)
  • Security review completed (payment security, data protection audit)
  • User acceptance testing with real restaurants and customers
  • Google Play Store and Apple App Store approval received
  • Mobile money integration certified (M-Pesa, Tigo Pesa, Airtel Money)
  • Privacy policy and terms of service accessible and compliant
  • Restaurant partner onboarding process established
  • Customer support system operational

8 Risks Assumptions

8.1 Risks

RiskProbabilityImpactMitigation
Restaurant onboarding slower than expectedHighHighEarly outreach, incentives, dedicated managers
Mobile money API integration complexityMediumHighStart early, cash payment backup, multi-provider
Competition from Jumia Food, GlovoHighMediumFocus on local restaurants, competitive pricing, superior service
Delivery logistics challengesMediumHighPartner with existing delivery services, build driver network
Privacy policy accessibility issuesLowHighFix document linking, ensure compliance
Performance during peak meal hoursMediumHighLoad testing, auto-scaling, performance monitoring

8.2 Assumptions

  • Target market has sufficient smartphone penetration (75%+ in urban areas)
  • Restaurants willing to partner and pay commission fees (15-20%)
  • Mobile money adoption is high enough for digital payments
  • Delivery drivers available and willing to partner
  • Internet infrastructure in major cities supports real-time tracking
  • Regulatory environment remains favorable for food delivery
  • Customers prefer convenience over traditional food ordering

9 Market Specific Considerations

9.1 Tanzania Food Delivery Market

9.1.1 Primary Market

  • Dar es Salaam
  • Arusha
  • Mwanza

9.1.2 Target Demographics

  • Urban professionals
  • Students
  • Families
  • Tourists

9.1.3 Local Considerations

  • Swahili language support
  • Local cuisine preferences
  • Prayer times

9.1.4 Payment Preferences

PreferenceValue
Mobile Money85%
Cash30%
Cards15%

9.1.5 Competition

  • Jumia Food
  • local restaurants
  • informal delivery services

10 Sign Off

10.1 Approval

RoleNameSignatureDate

10.2 Document History

VersionDateChanges MadeChanged By
1.02025-08-28Initial comprehensive version with detailed test casesSky Connect Team
1.12025-09-10Added comprehensive detailed feature requirements for ALL features: FT-AUTH-LOGOUT, FT-AUTH-RESET, FT-AUTH-PROFILE, FT-SEARCH-FOOD, FT-ORDER-TRACK, FT-REST-MANAGE, and FT-LANG-SELECT. Moved core payment and location features to core_business_features section. Enhanced test coverage and documentation completeness.Claude AI Assistant

11 Additional Context

11.1 Success Metrics

11.1.1 Customer Acquisition

500+ active users within 3 months

11.1.2 Restaurant Partners

50+ restaurants onboarded within 2 months

11.1.3 Order Volume

100+ orders per day within 6 weeks of launch

11.1.4 Customer Satisfaction

≥ 4.0 star rating average

11.1.5 Order Success Rate

95%+ successful order completion

11.1.6 Average Delivery Time

Under 45 minutes during peak hours