Functional Requirements - COS301-SE-2025/AI-Powered-African-Wildlife-Detection GitHub Wiki

v0.3

FR1: Authentication and Authorisation

  • FR1.1: Users should be able to register an account
    • FR1.1.1: Users should be able to register with an email address
    • FR1.1.2: Users should be able to register with their phone number
  • FR1.2: Users should be able to log into their account
  • FR1.3: Users should be able to log out of their account
  • FR1.4: Users should be able to reset their passwords

FR2: Account Management

  • FR2.1: Users should manage account settings
    • FR2.1.1: Users should be able to switch their account between private/public
    • FR2.1.2: Users should be able to toggle their Geolocation to On/Off
  • FR2.2: Users should be able to edit their credentials such as email, phone number or password
  • FR2.3: Users should be able to see users that sent them friend requests
  • FR2.4: Friend Request Handling
    • FR2.4.1: Accepting friend requests
    • FR2.4.2: Declining friend requests

FR3: Animal Identification

  • FR3.1: Users should be able to identify animals by using their camera
    • FR3.1.1: Identification by uploading an image
    • FR3.1.2: Identification in real-time by using the apps camera interface
  • FR3.2: Users should be able to identify animals via audio
    • FR3.2.1: Identification by uploading an audio clip to the app
    • FR3.2.2: Identification in real-time by making use of the users microphone
  • FR3.3: (Optional)Identification confidence should be shown to the user after prediction
  • FR3.4: (Optional) Users can confirm if the identification is correct

FR4: Discovery

  • FR4.1: Users should be provided information on animals once identified
  • FR4.2: Interactive Geolocation System
    • FR4.2.1: Users should be able to view a map
    • FR4.2.2: The map should have pins of locations where animals were identified
    • FR4.2.3: Pins should be interactable and display information related to the sighting
    • FR4.2.4: Users should be able to filter the map(by animal type, date, etc)
  • FR4.3: Users should be provided a Bestiary
    • FR4.3.1: It should contain all of the animals the app is able to identify
    • FR4.3.2: Animal icons should be interactable
      • FR4.3.2.1: All the information should be displayed to the user once interacted with
    • (Optional) FR4.3.3: Users should be able to favourite animals for faster access
    • FR4.3.4: Users should be able to search for animal in the bestiary
    • FR4.3.5: Users should be able to filter animals in the bestiary(by animal type for example)
  • FR4.4: Users should be able to follow animals
    • FR4.4.1: By making use of the bestiary after finding the animal
    • FR4.4.2: After successful identification of an animal
  • FR4.5: Users have a list/log of past animals they identified with the app

FR5: Social Platform

  • FR5.1: Provide Post functionality for identifying animals
    • FR5.1.1: Users should be able to Post images of identified animals
    • FR5.1.2: Protected animals locations may not be allowed to be shared in the post
    • FR5.1.3: Users should be able to remove their own posts
    • FR5.1.4: Users should be able to report unsafe posts
  • FR5.2: Users should be able to interact with other User profiles
    • FR5.2.1: Users should be able to view other user profiles
    • FR5.2.2: User profiles should only display content when set to public
    • FR5.2.3: Users should be able to send Friend Requests to other users
  • FR5.3: Users should control what is displayed on their posts
    • FR5.3.1: If Geolocation should be shared
    • FR5.3.2: Adding descriptions to their posts

FR6: User Data Management

  • FR6.1: User details should be securely transmitted
  • FR6.2: User details should be securely stored
  • FR6.3: Users should be prompted for access to their devices for certain features to be enabled
    • FR6.3.1: Prompted for Camera access
    • FR6.3.2: Prompted for Microphone access
    • FR6.3.3: Prompted for Media Album access
    • FR6.3.4: Prompted for Geolocation access

FR7: Admin Functionalities

  • FR7.1: Admins should be able to view reported posts
  • FR7.2: Admins can delete posts deemed unsafe
  • FR7.3: Admins can view AI model performance statistics
  • FR7.4: Admins should be able to view usage statistics
    • FR7.4.1: Uploads
    • FR7.4.2: Animal Identifications
  • FR7.5: Admins should have normal user functionalities

FR8: AI Model Integration

  • FR8.1: The system should log AI model predictions and results
  • FR8.2: The system should display performance metrics of the model, like accuracy, precision and other related performance metrics
  • FR8.3: Model logs should only be accessible by admins
  • (Optional following on FR3.4) FR8.4 System should allow for feedback loops from user validation to improve model accuracy
  • (Optional following on FR8.2)FR8.5: AI inference latency should be tracked, and displayed

FR9: Notifications

  • FR9.1: Friend requests notifications
  • FR9.2: Notifications for animals being followed and spotted near the user
  • FR9.3: Notifications if a users post has been removed or delayed before postings
  • FR9.4: Notifications if users received/accepted a friend request
  • (Optional)FR9.5: Users should be able to be view a notification log/list