Skip to content

Lab 9 Report ‐ 30.04.2026

Alper Kartkaya edited this page Apr 30, 2026 · 23 revisions

Lab 9 Report

Requirements Review

Requirements Review

Acceptance Testing Strategy

Acceptance Testing Strategy

Data Strategy

Data Strategy

Example Acceptance Tests

Acceptance Test 1: User Registration & Profile Setup

Feature: User Management & Preparedness Profile
Author: Rojhat Delibaş

Related Issues: #374

Description: Verifies the end-to-end flow of a new user joining the platform, from registration to completing a detailed preparedness profile.

Prerequisites:

  • Deployment URL is accessible.
  • Clean database state.
# Instruction Expectation Result Note
1 Open the browser and navigate to the application URL. Landing page loads successfully.
2 Click on the "Sign Up" button in the navigation bar. Sign-up form is displayed.
3 Click the "Continue with Email" button. Email registration fields appear.
4 Click on the "Email" input field. Field is focused.
5 Type a valid email address (e.g., test-resident@example.com). Input reflects the typed text.
6 Click on the "Password" input field. Field is focused.
7 Type a strong password (at least 8 characters, with numbers). Input reflects the typed text (masked).
8 Click on the "Confirm Password" input field. Field is focused.
9 Re-type the same password. Validation indicator shows passwords match.
10 Click the checkbox for "I agree to the Terms of Service". Checkbox is marked.
11 Click the "Create Account" button. Loading state is shown.
12 Observe the redirection to the "Verify Email" page. Page heading says "Verify Email".
13 Access the simulated email inbox for the user. Verification email is present.
14 Copy the 6-digit verification code from the email. Code is copied to clipboard.
15 Return to the app and click the first digit box. Input is focused.
16 Paste or type the 6-digit code. Code is entered across the boxes.
17 Click the "Verify" button. Page redirects to "Complete Your Profile".
18 Click on the "Full Name" input field and type "John Resident". Text is entered correctly.
19 Click on the "Phone Number" field and type "5550001122". Format validation passes.
20 Click the "Age" dropdown and select "30". Selection is displayed.
21 Select "Male" from the "Gender" options. Radio button/Select is marked.
22 Select "A Rh+" from the "Blood Type" dropdown. Selection is displayed.
23 Click the "Chronic Diseases" field and type "None". Text is entered.
24 Select "Engineer" from the "Profession" dropdown. Selection is displayed.
25 Check the "First Aid" checkbox under Expertise Areas. Checkbox is marked.
26 Select "Turkey" from the "Country" dropdown. City dropdown becomes enabled.
27 Select "Istanbul" from the "City" dropdown. District dropdown becomes enabled.
28 Select "Besiktas" from the "District" dropdown. Neighborhood dropdown becomes enabled.
29 Select "Levazim" from the "Neighborhood" dropdown. Selection is displayed.
30 Click the "Save and Continue" button. User is redirected to /profile with a success toast.

Acceptance Test 2: Emergency Help Request Submission

Feature: Help Request Creation
Author: Mehmet Can Gürbüz

Related Issues: #375

Description: Verifies that a resident in distress can navigate the multi-step help request process and successfully alert the community.

Prerequisites:

  • User is logged in and has a completed profile.
  • Browser is on the Home page.
# Instruction Expectation Result Note
1 On the Home page, locate the "Need Emergency Help?" card. Card is visible and prominent.
2 Click the "Create Request" button. Form loads at /help-requests/new.
3 Click the "Help Category" dropdown. List of categories (Medical, Food, SAR, etc.) appears.
4 Select "Medical Assistance". Medical-specific sub-fields are revealed.
5 Click the "Urgency Level" selector. Levels (Low, Medium, High, Critical) are shown.
6 Select "High". Selection is highlighted in red/orange.
7 Click on the "Description" text area. Field is focused.
8 Type "I have a deep cut on my leg and cannot stop the bleeding." Text is visible; character count updates.
9 Click the "Affected People" numeric input. Input is focused.
10 Type "1" into the field. Value is accepted.
11 Locate the "Risk Flags" section. Multiple checkboxes are visible.
12 Check the "Severe Bleeding" checkbox. Checkbox is marked.
13 Check the "Immobility" checkbox. Checkbox is marked.
14 Click on the "Contact Phone" field. Field is focused.
15 Verify it is pre-filled with the profile phone number. Number "5550001122" is visible.
16 Click the "Alternative Contact" field. Field is focused.
17 Type "5550009988". Text is entered.
18 Scroll to the "Location" section of the form. Map and address fields are visible.
19 Verify the address is pre-filled from the profile. Correct neighborhood/city is shown.
20 Click the "Refine on Map" button. Map expands or opens in a modal.
21 Drag the marker to the exact house location. Coordinates are updated internally.
22 Click "Confirm Location". Modal closes; refined address is shown.
23 Check the "I consent to sharing my location with helpers" box. Checkbox is marked.
24 Check the "All information provided is accurate" box. Checkbox is marked.
25 Click the "Submit Request" button. A confirmation spinner appears.
26 Wait for the success animation. "Request Submitted" checkmark is shown.
27 Click "Go to My Requests". Redirection to request list occurs.
28 Verify the new request is at the top of the list. Request is visible with "PENDING" status.

Acceptance Test 3: Helper Availability and Matching

Feature: Matching & Assignment
Author: Ethem Erinç Cengiz

Related Issues: #376

Description: Verifies that a qualified volunteer can signal availability and receive a relevant emergency assignment.

Prerequisites:

  • A "Medical" help request exists within 500m of the helper's location.
  • Helper user has "First Aid" expertise listed in their profile.
# Instruction Expectation Result Note
1 Login as the Helper user. Dashboard loads.
2 Click on the User Avatar in the top right. Dropdown menu opens.
3 Click on "My Profile". Profile page loads.
4 Locate the "Helper Status" card. Card shows "Inactive" or "Unavailable".
5 Click the toggle switch to "Available". Toggle turns green; status text changes to "Searching for requests...".
6 Navigate back to the Home page. Home page loads.
7 Observe the "Active Duty" section. Section shows "Looking for nearby requests...".
8 Wait for the matching algorithm to run (approx. 5-10 seconds). Browser plays a notification sound/vibration.
9 Observe an "Emergency Assignment" card appearing. Card shows "Medical Assistance Needed - 300m away".
10 Click the "View Details" button on the card. Assignment detail page loads.
11 Review the requester's name and description. Info matches the seeded help request.
12 Click the "View Location" button. Map opens showing the route to the requester.
13 Click the "I am on my way" button. Status updates to "RESPONDING"; requester is notified.
14 Click the "Open Chat" button. Real-time chat window opens.
15 Type "I am a first-aider and will be there in 2 minutes." Message is sent.
16 Click "Arrived at Scene" button. Status updates to "ON-SITE".
17 Perform the necessary aid (offline/manual action). N/A
18 Click the "Issue Resolved" button. A resolution form appears.
19 Click the "Resolution Type" dropdown. Options (Successful, Handed to Professional, etc.) appear.
20 Select "Successful". Selection is marked.
21 Type a brief note: "Applied bandage, bleeding stopped." Text is entered.
22 Click "Submit Resolution". Assignment is closed; success message shown.
23 Verify status returns to "Available" for new assignments. Status bar shows green "Available" text.

Acceptance Test 4: Discovery of Gathering Areas

Feature: Gathering Areas & Location Features
Author: Kağan Can

Related Issues: #377

Description: Verifies that a user can explore safe zones, shelters, and assembly points during or before an emergency.

Prerequisites:

  • Browser Geolocation is enabled.
  • User is logged in or browsing as Guest.
# Instruction Expectation Result Note
1 From any page, click "Gathering Areas" in the main menu. Page loads at /gathering-areas.
2 Observe the "Requesting Location" overlay. Spinner is visible while browser resolves GPS.
3 Wait for the map to center on the current location. Map shifts to the user's vicinity.
4 Observe the sidebar on the left/bottom. A list of nearby areas is displayed.
5 Click the "Filter" button. Filter options (Category, Open Status, Capacity) appear.
6 Select "Park" from the category filters. List updates to show only parks.
7 Click "Apply Filters". Filter menu closes; results are filtered.
8 Click on the first item in the list: "Abdi Ipekci Park". Map zooms in on the park marker.
9 Click the "More Info" button on the popup. Detail side-panel opens.
10 Verify the "Category" label says "Assembly Point". Data is accurate.
11 Check the "Estimated Capacity" field. Value (e.g., "500 people") is visible.
12 Locate the "Amenities" section. Icons for water, power, and first-aid are visible.
13 Click the "Get Directions" button. Google/Apple Maps opens in a new tab with the route.
14 Return to the NEPH app. N/A
15 Click the "Search Area" button on the map. App fetches areas for the current map viewport.
16 Zoom out on the map using the "-" button. Viewport expands.
17 Click "Refresh Results". New markers appear for the wider area.
18 Click on a "Shelter" icon (different color). Popup shows shelter details.
19 Click the "Call Contact" button (if available). Phone dialer opens with the shelter's number.
20 Close the detail panel. Panel slides away; list is visible again.

Acceptance Test 5: Admin Emergency Dashboard Monitoring

Feature: Admin Dashboard
Author: Berat Sayın

Related Issues: #378

Description: Verifies that a city coordinator can analyze community needs, monitor helper deployment, and view trends.

Prerequisites:

  • Admin account with "COORDINATOR" permissions.
  • Active and past help requests seeded in the database.
# Instruction Expectation Result Note
1 Login with Admin credentials. App redirects to /admin or dashboard view.
2 Click on the "Overview" tab in the admin sidebar. Key metrics (Active, Responded, Resolved) are shown.
3 Click the "Region" dropdown at the top. List of districts appears.
4 Select "Besiktas". Metrics update to reflect only Besiktas data.
5 Hover over the "Help Types" pie chart. Tooltip shows percentage of Medical vs. Food requests.
6 Click on the "Insights" tab. Trend graphs (e.g., Requests per Hour) load.
7 Adjust the time range to "Last 24 Hours". Graphs refresh with more granular data points.
8 Click on the "Active Requests" link in the summary. Redirects to a filtered list of all open requests.
9 Click on a specific request ID (e.g., #REQ-101). Full request details and assignment history load.
10 Click the "View on Map" link for the request. Map centers on the request location with responder locations.
11 Click the "Broadcast" button in the header. A "Create Announcement" modal appears.
12 Type Title: "Water Distribution at Park". Text is entered.
13 Type Message: "Clean water is available at central park until 8 PM." Text is entered.
14 Select "Besiktas" as the target region. Filter is applied.
15 Click "Send Broadcast". Success message confirms notification sent.
16 Click on the "Monitoring" tab. Helper availability map loads.
17 Observe blue dots representing available helpers. Dots are visible on the map.
18 Click on a helper dot. Tooltip shows helper name and skills.
19 Click the "Export Report" button. A CSV file download starts.
20 Open the downloaded CSV file. File contains the correct columns and data rows.

Acceptance Test 6: Authorization and Access Control

Feature: System Security
Author: Alper Kartkaya

Related Issues: #379

Description: Verifies that the platform strictly enforces role-based access to protect sensitive user and emergency data.

Prerequisites:

  • One unauthenticated session (Guest).
  • One "Resident" user account.
  • One "Admin" user account.
# Instruction Expectation Result Note
1 Open a new Incognito/Private window. Browser starts with no session data.
2 Type the URL /admin into the address bar and press Enter. Page redirects to /login?returnTo=/admin.
3 Verify that an "Unauthorized Access" message is NOT visible yet. User is simply prompted to log in.
4 Log in using a standard "Resident" account. Login succeeds; user is redirected to /home.
5 Verify that the "Admin" link is NOT visible in the navigation. Nav bar only shows Home, Profile, etc.
6 Manually type /admin into the address bar and press Enter. Page redirects to /home with an "Access Denied" toast.
7 Attempt to access /api/admin/metrics via a direct GET request. Server returns 403 Forbidden JSON response.
8 Navigate to the "Gathering Areas" page. Page loads (this is a public/resident feature).
9 Attempt to click a "Delete Area" button (if visible). Button is absent for Residents.
10 Log out of the "Resident" account. Session is cleared; redirected to Landing page.
11 Log in using an "Admin" account. Dashboard loads at /admin.
12 Verify the "Admin" link IS visible in the navigation. Nav bar shows the additional Admin option.
13 Click on the "User Management" section. List of users is displayed.
14 Log out of the Admin account. Session is cleared.
15 Navigate to /profile. Redirected to /login (Profile is protected).
16 Click the browser's "Back" button after logout. Page shows "Session Expired" or redirects to Login.
17 Attempt to access a specific help request detail by ID: /help-requests/999. Redirected to Login.
18 Log in as Resident. Redirected to /home.
19 Attempt to access a different user's private profile via ID. Server returns 403 Forbidden or redirects to self-profile.
20 Verify that session tokens are cleared from LocalStorage on Logout. Developer tools show no neph_access_token remaining.

Individual Contributions

Kağan Can

  • Conducted the requirements review by analyzing the current state of the system and identifying completed and missing requirements
  • Evaluated how the system aligns with initial project goals and defined priorities for final delivery
  • Created and contributed an example acceptance test for discovering gathering areas using geolocation #377

Alper Kartkaya

  • Contributed to defining the acceptance testing strategy
  • Helped structure acceptance tests and determine evaluation criteria from a user perspective
  • Created and contributed an example acceptance test for authorization and access control #379

Berat Sayın

  • Worked on the acceptance testing strategy alongside Alper
  • Defined test scenarios and ensured alignment with stakeholder expectations
  • Created and contributed an example acceptance test for admin dashboard monitoring #378

Mehmet Can Gürbüz

  • Contributed to defining the data strategy for the system
  • Focused on generating and structuring test data for realistic testing scenarios
  • Created and contributed an example acceptance test for emergency help request submission #375

Ethem Erinç Cengiz

  • Worked on the data strategy alongside Mehmet Can
  • Helped define validation approaches to ensure test data reflects real-world usage
  • Created and contributed an example acceptance test for helper availability and matching #376

Rojhat Delibaş

  • Compiled and finalized the report by integrating all sections
  • Ensured consistency and clarity across the document
  • Created and contributed an example acceptance test for user registration and profile setup #374
🎓 Team Members

📄 Templates

📅 Weekly Meetings

🧪 Lab Reports

🎬 Scenarios and Mock-ups

🧩 Use Case Diagrams

🏗️ Class Diagram

🔁 Sequence Diagrams

🛠️ Implementation Plan

📦 Deliverables

MVP Deliverables
Final Milestone Deliverables

📚 Project

✅ Acceptance Tests

🚀 Releases

Clone this wiki locally