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