Skip to content

Requirements

mustafaozturkmen edited this page Apr 30, 2026 · 19 revisions

1. Functional Requirements

1.1 User Requirements

1.1.1 Media Recording & Ingestion

  • 1.1.1.1 The application shall allow users to upload pre-recorded historical photographs, videos, and audio from the device's gallery.

1.1.2 Geospatial-Temporal Mapping

  • 1.1.2.1 Users must be able to drag and interact with the map to manually pin the exact location their story is about.

1.1.3 Workflow & Moderation

  • 1.1.3.1 User shall create post with a button on the main page.
    • 1.1.3.1.1 User shall choose a location at the post creating page.
    • 1.1.3.1.2 User shall choose a specific time at the post creating page.
    • 1.1.3.1.3 User shall specify a range for the time for the post.
    • 1.1.3.1.4 User shall create text content.
    • 1.1.3.1.5 User shall be able to pin a story to multiple geographic locations to represent a route or journey.
  • 1.1.3.2 User shall upload a post after completing necessary fields using a button.
  • 1.1.3.3 User shall see a successfully posted page after posting.

1.1.4 Authentication & Authorization

  • 1.1.4.1 Users shall provide their usernames, e-mail addresses, and passwords to sign up.
  • 1.1.4.2 User shall login with their registered email and password.

1.1.5 Interaction Features (Comments & Likes)

  • 1.1.5.1 The system shall allow authenticated users to comment on published content.
  • 1.1.5.2 The system shall allow authenticated users to like published content.
  • 1.1.5.3 The system shall allow unauthenticated users to view and consume publicly approved content.
  • 1.1.5.4 The system shall allow authenticated users to save items for later.

1.1.6 Filtering Results (Search & Filter)

  • 1.1.6.1 The users should be able to search places by their names.
  • 1.1.6.2 The users should be able to filter contents by their types (photos, videos, texts, and audio).
  • 1.1.6.3 The users should be able to filter items by their related date.
  • 1.1.6.4 The users should be able to filter items by country, city, or neighborhood.

1.1.7 Post Data Persistence & Storage

  • 1.1.7.1 Authenticated users must have access to a personal dashboard where they can see view counts for each of their published stories.

1.1.8 Anonymous Story Sharing

  • 1.1.8.1 Users shall be able to publish a story anonymously so that their username and profile are not visible to anyone viewing the story.

1.1.9 Timeline View

  • 1.1.9.1 Users shall be able to view stories tied to the same or nearby location arranged in chronological order as a timeline.

1.2 System Requirements

1.2.1 Media Recording & Ingestion

  • 1.2.1.1 The application shall provide an interface for recording audio and video directly within the application.
    • 1.2.1.1.1 The recorded audio must be automatically transcribed into text and shown to the user for review before posting.

1.2.2 Geospatial-Temporal Mapping

  • 1.2.2.1 The application shall map every story to a geospatial coordinate (Latitude/Longitude).
  • 1.2.2.2 The application shall execute geospatial queries to display "Stories near me" based on the user's current device location.
  • 1.2.2.3 The application shall display a preview of the information associated with a marker.
  • 1.2.2.4 The system shall support zoom-in and zoom-out operations using platform-appropriate buttons.
  • 1.2.2.5 The system shall store and render all location pins for a multi-location story, displaying a map marker at each pin; clicking any marker shall open the same story.

1.2.3 Workflow & Moderation

  • 1.2.3.1 The system shall allow users to report posts based on the content. A user with admin priviliges can review these reports and decide to remove the post and/or restrict the poster from future uploads.
  • 1.2.3.2 After a user successfully publishes their very first post, the system must display a First Post badge on the screen as a reward.

1.2.4 Authentication & Authorization

  • 1.2.4.1 The system shall provide a user authentication mechanism that allows users to register and log in securely.
    • 1.2.4.1.1 E-mail addresses shall be unique.
    • 1.2.4.1.2 E-mail addresses shall be confirmed.
    • 1.2.4.1.3 The system must provide a Google account sign-in option as an alternative to email registration.
    • 1.2.4.1.4 When a user enters their first and last name during sign up, the system must automatically generate a username and display it to the user for optional editing.
  • 1.2.4.2 The system shall differentiate between authenticated users and unauthenticated users.

1.2.5 Content Upload Permissions

  • 1.2.5.1 The system shall allow only authenticated users to upload video, audio, and image content.
  • 1.2.5.2 The system shall prevent unauthenticated users from uploading any media or documents.

1.2.6 Interaction Features (Comments & Likes)

  • 1.2.6.1 The system shall prevent unauthenticated users from posting comments or liking content.

1.2.7 Post Data Persistence & Storage

  • 1.2.7.1 The system shall store each post together with the identity of the creator.
  • 1.2.7.2 The system shall ensure that required fields are completed before allowing submission.
  • 1.2.7.3 The system shall display the created post after successful submission.
  • 1.2.7.4 The system shall store each created post as a persistent record in the database.
  • 1.2.7.5 The system shall ensure that each post is uniquely identifiable with a primary key.
  • 1.2.7.6 The system shall associate each post with the authenticated user through a foreign key reference.
  • 1.2.7.7 The system shall store uploaded media files (image, audio, video) in a cloud-based object storage service.
  • 1.2.7.8 The system shall associate each cloud-stored media file with a corresponding database record.

1.2.8 Anonymous Story Sharing

  • 1.2.8.1 When a story is posted anonymously, the system shall replace the author's username and profile link with an anonymous placeholder in all views of that story, ensuring no personally identifiable information about the creator is exposed.

1.2.9 Timeline View

  • 1.2.9.1 The system shall provide a timeline view that aggregates and displays stories associated with the same or nearby location in ascending chronological order based on the story's historical date.

2. Non-Functional Requirements

2.1 User Requirements

2.1.1 Platform Compatibility

  • 2.1.1.1 The UI must automatically adjust based on the user's device's screen size and orientation.

2.1.2 Performance

  • 2.1.2.1 The timeline visualization must render changes in under 2 seconds on a standard 1000 Mbits/s internet connection.

2.2 System Requirements

2.2.1 Platform Compatibility

  • 2.2.1.1 The application must be developed as a responsive web application accessible via the web browser Chrome, and as a responsive mobile application compatible with at least the latest version of Android at the time of delivery.

2.2.2 Authentication & Authorization

  • 2.2.2.1 User passwords shall meet safety criteria.

2.2.3 Scope

  • 2.2.3.1 The application shall allow content upload related to/from all parts of the world.

2.2.4 Data Limits

  • 2.2.4.1 The application shall validate file sizes upon upload and reject files exceeding the defined limit.
Team Members

Milestones


Lab Reports


Weekly Meetings

Other Meetings


Templates

Scenarios

Use Case Diagrams

Class Diagram

Sequence Diagrams

Requirements


Implementation

Clone this wiki locally