User Stories
Charter Projects
The client's project charters are on the SAPAA page Student Opportunities – 2026 to 2027. The charter projects are:
- 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
- 2 – SIR-SAPAA v2.0: 2a – Development Environment, 2b – Person Management, 2c – Map Management
- 3 – SAPAA and iNaturalist: 3a – iNaturalist Internal Improvements, 3b – iNaturalist for non-Naturalist
The line below each story title names the one charter project that is the best match for the story. If the line says "none (team request)", the story is not in a charter project.
1 - People Management
US 1.0.1 - Add User Profiles | Story Points: 5
Charter project: 2b – Person Management
As a Steward, I want to view my own profile and the profiles of other stewards, including their skills, focus areas and how many SIRs they have submitted, so that I can judge how credible an observer someone is and know whom to ask about a topic
Acceptance Tests
- Given I am viewing a profile, I am able to see the user's name, skills, focus area, contact info, and inspection count.
- Given I am currently not viewing my profile, I can navigate to my own profile from the main menu.
- Given I am on a site page, I can navigate to a profile by clicking on a user's inspection
- Given I opened a user's profile via their site inspection, I can navigate back to my previous page
- Given the user's details are changed in the database, When the profile page is reloaded, Then it shows the most recent stored values
US 1.0.2 - Allow Editing Own Profile | Story Points: 3
Charter project: 2b – Person Management
As a Steward, I want to edit my own profile, including my skills and focus areas, so that my details stay up to date and other stewards know what I can help with
Acceptance Tests
- The user can only edit their own information.
- Requests to edit another user's information should fail
- Given I remove my name or email, When I select Save, Then the save is blocked and the name or email field is highlighted.
- Given I enter valid values, When I select Save, Then the page shows the new values
- Given I saved changes, When I sign out and sign in again, Then my profile shows the saved values
- Given I add skills or focus areas, When I select Save, Then they are shown on my profile
US 1.0.3 - Show history of Site Inspections on a Steward's Profile | Story Points: 2
Charter project: 2b – Person Management
As a Steward, I want to view the site inspections a steward has submitted across all sites, so that I know their level of contributions and experience
Acceptance Tests
- Given I am viewing a Steward's profile, I see a list of their previous inspections with the corresponding site and date submitted.
- Given I am viewing a Steward's profile, I can click on a past inspection and view the submitted information
- Given that a steward has chosen to hide certain fields, I am not able to see their answers when reading through their past SIRs
US 1.0.4 - Aggregate User Activity and Contributions on a user's profile | Story Points: 2
Charter project: 2b – Person Management
As a Steward, I want to see quick stats on a user's activity, so that I can get a quick overview of their activity and common activities
Acceptance Tests
- Aggregates accurately reflect the user's data (SIR count, activities reported)
- Given that a steward has submitted a new report, their SIR count updates +1.
US 1.0.5 - Earn Points for Inspection Activity | Story Points: 5
Charter project: 2b – Person Management
As a Steward, I want to earn points for visiting Sites, contributing photos, and other inspection activity, so that I have a reason to visit more natural areas
Acceptance Tests
- Given I submit a SIR, When the submission succeeds, Then my activity points increase by the amount of activity-specific points I earned from the site
- Given I contribute a photo directly, When the upload succeeds, Then my activity points increase by the amount specified for uploading a photo for that site
- Given I have activity points, When I open my profile, Then the current total is shown
US 1.0.6 - Select and Edit Skills and Focus Areas | Story Points: 2
Charter project: 2b – Person Management
As a Steward, I want to select and edit my skills and focus areas from an existing list, so that skill names and focus areas are consistent across the app
Acceptance Tests
- Given I edit my profile, When I open skills or focus areas, Then I can select values from dropdowns with an "Other" option
- Given I type a skill or focus area, Then similar existing values are suggested
- Given I have chosen a skill or focus area, When I edit it and save, Then the changed value appears on my profile
2 - Place Management
US 2.0.1 - View Sites and Past Visits on an Interactive Map | Story Points: 8
Charter project: 2c – Map Management
As a Steward, I want a map that shows where a natural area is, if it has been visited and what other stewards have done there, so that I can know what to expect and do on my next visit
Acceptance Tests
- Given the map view is open, When it loads, Then every active Site is drawn with its boundary
- Given a GPX track was uploaded for a Site, When I zoom to that Site, Then the track is drawn as a line in a style different from the Site boundary
- Given I am on a Site's page, I can navigate to view its location on the map
- Given a Site is selected on the map, When the selection changes, Then only the newly selected Site is highlighted
US 2.0.2 - Allow Admins to Add New Sites | Story Points: 3
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to be able to add a new Site through the app UI, so that I am not limited to direct database inserts.
Acceptance Tests
- Given I am an Admin creating a site, I can manually select the boundary for a site
- Given a Site with the same name already exists, When I enter it, Then a possible-duplicate warning is shown before the Site is saved
- Given a required field (ex. name) is empty, site creation is blocked and the empty fields are highlighted
- Given I am signed in as a Steward, When I send the create-Site request directly to the server, Then it is refused and no Site is created
- Given a site was added, it appears in the search results for the site.
- Given I am selecting a boundary for a site, site suggestions are given based on what already exists in the Alberta government KML but not in SIR-SAPAA
US 2.0.3 - Deactivate and Reactivate a Site | Story Points: 3
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to deactivate and reactivate a site, so that I can toggle its visibility throughout the app
Acceptance Tests
- Should be able to toggle a site between active and inactive
- Site is deactivated -> Site no longer appears in site pickers or search results
- Site is reactivated -> Site reappears everywhere it was previously listed
- Given a site was deactivated, the inspections on the site can still be viewed
- Given a new site was created, by default it should be active
US 2.0.4 - Delete a Site | Story Points: 8
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to delete a site, so that I can remove incorrect or duplicate site information
Acceptance Tests
- Given I am an admin deleting a site, I should be asked to confirm the delete before it occurs
- Site has existing inspection reports or images -> Should show a confirmation naming how many records are affected before the delete proceeds
- Site is deleted -> The agreed cascade behaviour is applied consistently to its inspections, images, and any user visit counts
- Cascade cannot complete -> Deletion is rejected with an error and the site and all of its records are left unchanged
Design note. Delete archives the site by default (
sites_pa.archived_at), as the TA advised, so the inspections, images and visit counts stay and the site can be restored. This is the cascade behaviour that AT3 refers to. A separate admin hard delete also exists, because the client asked for more than one level of delete. It works only on an archived site and removes the site, its steward link and its links (SAPAA website and iNaturalist). The inspections and images stay, with no site. See Software Design for the reasons.
US 2.0.5 - Update a Site | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to update an existing site page with new fields from a designated steward, so that I can direct stewards where to seek out more information
Acceptance Tests
- Given that I am an admin, I can enter 'edit mode' on a site page
- Given that I am not an admin, I am prevented from entering edit mode
- Given that I am in edit mode for a site page, I can easily tell which fields I have selected to be included/excluded from the site page.
- On saving the update, the site page should have the new fields and remove those that were hidden
US 2.0.6 - Search and Filter Sites by County on the Map | Story Points: 5
Charter project: 2c – Map Management
As a Steward, I want to search and filter Sites on the map by county, so that I can easily find the Site I am looking for
Acceptance Tests
- Given the map view is open, When I apply one or more filters, Then only Sites matching those filters stay on the map
- Given a filter is applied, When I clear it, Then all active Sites reappear
- Given I type a Site name in the search box, When I select the match, Then the map centres on that Site
US 2.0.8 - View a Site's Details From the Map | Story Points: 3
Charter project: 2c – Map Management
As a Steward, I want to see a Site's details by selecting the Site on the map, so that I can gather context on the Site while exploring the map
Acceptance Tests
- Given the map view is open, When I select a Site, Then that Site's detail view opens
- Given the detail view is open, When it loads, Then it shows the same name, county and last inspection date as the Site page reached from the home page
- Given the detail view is open, When I select "View SIRs", Then I am directed to the past SIRs
US 2.0.9 - Upload a GPX Track of a Site Visit | Story Points: 5
Charter project: 2c – Map Management
As a Steward, I want to upload the GPX file my GPS device or phone app recorded during a Site visit, so that the visit is logged and the next steward can see which part of the Site was already covered
Acceptance Tests
- Given I am a signed-in Steward on a Site's page, When I upload a valid .gpx file, Then the track is saved and linked to that Site and to my account
- Given I upload a file that does not have a .gpx extension, a message pops up that only GPX files are accepted
- Given I upload a file named .gpx that is not valid GPX or has no track points, Then it is refused with a message and nothing is saved
- Given I uploaded a track, When the stored track is read back, Then it has the same track points as the uploaded file
- Given I choose a .gpx file larger than the stated maximum size, When I upload it, Then it is refused with a message that names the limit
- Given I choose several .gpx files at once, When I upload them, Then every valid file is saved and linked to that Site and to my account, and each refused file is listed with the reason
AT6 follows the October 9, 2026 client meeting, where Frank asked for bulk upload of GPX files (docs/meetings/week6/2026_10_09_meeting_frank.txt).
US 2.0.10 - Add links to Site Page | Story Points: 1
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to click on a link to the SAPAA website and iNaturalist from a site page, so that I can quickly navigate to learn more about natural areas
Acceptance Tests
- Given I am on the site page, I should see a clear link (shortened URL) to the SAPAA website
- Given I am on the site page, I should see a clear link (shortened URL) to iNaturalist
- Given I click on a link from the site page, a new window should open to the site instead of using my current window
US 2.0.11 - Show Safety Information for a Site | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to know the nearest hospital, the known hazards at a Site, and other safety information, so that I can prepare for an emergency
Acceptance Tests
- Given safety information is stored for a Site, When I open the Site page, Then I see the nearest hospital, the known hazards, and the other safety information
- Given a safety value is empty, When I open the Site page, Then that value is shown as not recorded
- Given I am an Admin, When I save new safety information for a Site, Then a reload shows the new values
- Given I am a Steward, When I try to change the safety information, Then the server refuses and the stored values stay unchanged
US 2.0.12 - Score a Site for To-Visit Priority | Story Points: 8
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to give a Site points for abuses, biological imperatives, and time since the last visit, and combine those points into a to-visit priority, so that a Steward can see the state of the Site and decide whether to prioritize contributions to it
Acceptance Tests
- Given I am an Admin on a Site, When I enter points for abuses, biological imperatives, and time since the last visit, Then those points are saved
- Given the three scores are saved, When the Site page loads, Then it shows one to-visit priority calculated from those scores
- Given two Sites have the same three scores, When both pages load, Then they show the same to-visit priority
- Given I am a Steward, When I open the Site, Then I can see the to-visit priority and the three scores
- Given I am a Steward, When I try to change the scores, Then the server refuses and the scores stay unchanged
US 2.0.13 - Flag Site Points That Are a Year Old | Story Points: 3
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to know when a Site's points have not been updated for a year, so that I have a reminder to reassess them
Acceptance Tests
- Given a Site's priority points (US 2.0.12) were last saved more than one year ago, When I open that Site as an Admin, Then I see a reminder to reassess the points
- Given the points were saved less than one year ago, When I open the Site as an Admin, Then the reminder is absent
- Given the reminder is showing, When I save new points, Then the reminder is absent and the saved date is the new date
- Given I am a Steward, When I open the Site, Then the Admin reminder is not shown
US 2.0.14 - Color Map Sites by Type | Story Points: 2
Charter project: 2c – Map Management
As a Steward, I want to see the boundary colors that an Admin sets for sites or site types, so that I can use those colors to identify sites on the map
Acceptance Tests
- Given an Admin has saved different boundary colors for sites or site types, When I view those sites on the map, Then each boundary uses its saved color
3 - Admin Persona
US 3.0.2 - Steward Designation | Story Points: 5
Charter project: 2b – Person Management
As an Admin, I want to assign an individual to a site, so that other stewards can reach out to them for more information
Acceptance Tests
- Given I am an admin, I can search for a steward to assign to a site
- Given I am an admin, I can assign a new steward, replacing the previous one
- Given a steward is assigned to a site, the assigned relationship is visible on both the site's page and the steward's profile
- Given a user who is not permitted to assign attempts to designate a steward, the action is rejected and no assignment is created
US 3.0.3 - Export all digital files from SIR-SAPAA | Story Points: 8
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to be able to extract all images and other digital files in the app at once, so that I can back them up and use them for business processing
Acceptance Tests
- Extracting files -> Should zip files
- Extraction should include all images, at minimum
US 3.0.4 - Add a Steward Without an Account | Story Points: 3
Removed from scope on October 26, 2026. Frank requires stewards to have an account and sign in. PR #310 was closed without merge. The original story and tests below are retained as a record. Charter project: 2b – Person Management
As a Admin, I want to add a steward by name, email and phone number without an account and show these details on a site page, so that a site can list its steward even when that person has no account
Acceptance Tests
- Given I am an Admin, When I add a steward with only a name, email and phone number, Then I can save the steward without a user account
- Given I have added a steward without an account, When I assign the steward to a site, Then I can click their name and view their contact info
- Given I save a steward without an account, Then the person does not need to sign up or sign in to be listed
Design suggestion: a Contacts table could store these details without an account link. The table design is not decided.
4 - General Features
US 4.0.2 - Offline and Online Map Layers | Story Points: 13
Charter project: none (team request)
As a Steward, I want offline/online map layers, so that I can navigate complex areas.
Acceptance Tests
- Should be able to download a map area for offline use and see its download status
- Device is offline -> Downloaded tiles render and the map stays pannable and zoomable inside the downloaded area
- Device is offline and the user pans outside the downloaded area -> Missing tiles are indicated rather than failing silently
- Device is online -> The map uses live tiles and does not fall back to the cached layer
US 4.0.4 - Edit My Previous Inspections | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to be able to edit my previous inspections, so that I can easily fix incorrectly submitted entries
Platform: Web
Acceptance Tests
- Given I have previously submitted a SIR, I can open it and enter edit mode
- Given I am viewing another steward's SIR, I am prevented from entering edit mode and making changes
- A required answer is cleared and submit is attempted -> submission is blocked and the missing questions are listed
- An edit is saved -> The updated answers are reflected everywhere the report is rendered
US 4.0.5 - iNaturalist integration | Story Points: 5
Charter project: 3a – iNaturalist Internal Improvements
As a Steward, I want to be able to see the photos I took on iNaturalist in the app, so that I do not have to upload them a second time in my SIR
Acceptance Tests
- User can upload an image inside their SIR by selecting images from their iNaturalist account
- Identifier field is autofilled from the iNaturalist observation
US 4.0.6 - Demote Photo Identifier to optional field | Story Points: 1
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to skip entering a photo Identifier, so that I do not have to repeat my description in this field
Acceptance Tests
- Given I leave the Identifier field empty and fill in all required fields in valid format, the report submits successfully
- Given I am filling out a site inspection report, there is no note beside the identifier field that reads "required"
US 4.0.7 - Show the Top iNaturalist Observations for a Site | Story Points: 5
Charter project: 3a – iNaturalist Internal Improvements
As a Steward, I want to see up to the top 5 iNaturalist observations for a Site, so that I can see more information in the app without an iNaturalist account
Acceptance Tests
- Given a Site has iNaturalist observations, When I open the Site page, Then I see at most 5 observations
- Given a Site has more than 5 observations, When the page loads, Then the 5 shown are the 5 most popular (engagement-wise) observations for that Site
- Given a Site has no observations, When the page loads, Then the page says that no iNaturalist observations were found
- Given I am a Steward with no iNaturalist account, When I open the Site page, Then the observations are still shown
- Given an observation is shown, When I read it, Then it shows the species name from iNaturalist
5 - Access and Accounts
US 5.0.2 - Reset a Forgotten Password | Story Points: 2
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a User, I want to reset my password myself, so that I do not need an Admin to get back in
Acceptance Tests
- Given I am on the sign-in page, When I select "Forgot password" and enter my email, Then an email is sent
- Given I requested to reset my password, I am asked to verify with a code before I can proceed to reset my password
- Given I set a new password, Then I can sign in with the new password and not with the old one
- No admin intervention is required at any step of resetting my password
US 5.0.4 - Sign Out Properly | Story Points: 2
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a User, I want signing out to keep me signed out, so that the next person on a shared device cannot use my account
Acceptance Tests
- Given I signed out of the web app, When I open the app again in the same browser, Then the sign-in page is shown and I am not signed in
- Given I signed out of the web app, When I press the browser Back button, Then no signed-in page is shown
- Given I am on any page of the web app, I can sign out without navigating to a specific page
US 5.0.5 - Request Access During Email Sign-Up | Story Points: 8
Charter project: 2b – Person Management
As a prospective user, I want to request access while I create my account, so that I do not need to complete a separate website form.
Acceptance Tests
- Given I open the sign-up page, I see fields for:
- Full name: required
- Email: required
- Phone: optional
- Reason for access: required
- Other details: optional
- Password: required
- Password confirmation: required
- Both access terms are visible and unchecked by default.
- I cannot submit the form until I accept both terms.
- Invalid or missing required values show clear errors.
- A valid submission creates an unapproved account and a linked pending access request.
- The request records which terms version I accepted and when I accepted it.
- The success message explains email verification and administrator approval.
- A partial failure does not report success. The user can safely resume or retry.
- The phone number and access details are not available to stewards or other applicants.
- Existing accounts are not changed and do not need to accept the new terms.
- Include the terms and conditions from Say Hello to SIR-SAPAA!.
US 5.0.6 - Complete an Access Request With Google or Microsoft | Story Points: 5
Charter project: 2b – Person Management
As a prospective user, I want to use Google or Microsoft while I request access, so that I can use my preferred sign-in method without bypassing the access process.
Acceptance Tests
- Google and Microsoft buttons remain available.
- After the first successful OAuth sign-in, an applicant without an access request is sent to the access-request form.
- The form uses the provider name and email when they are available.
- The applicant must still enter a reason and accept both terms.
- Phone and other details remain optional.
- The applicant cannot access protected application pages before completing the request and receiving approval.
- An applicant who leaves the form can return and continue the process.
- An existing approved OAuth user continues to use the application without accepting the new terms.
- An existing pending account is not automatically rejected or approved.
- A failed or cancelled OAuth sign-in does not create an access request.
US 5.0.7 - Review and Decide Access Requests | Story Points: 8
Charter project: 2b – Person Management
As an administrator, I want to review each access request and approve or reject it, so that only eligible applicants receive access.
Acceptance Tests
- The account-management page has separate pending, approved, and rejected states.
- A pending request shows:
- Full name
- Phone, when supplied
- Reason for access
- Other details, when supplied
- The two accepted terms
- Acceptance date
- Request date
- An administrator can approve a pending request.
- Approval changes both the request status and the existing account approval flag.
- An administrator can reject a pending request.
- Rejection keeps application access disabled.
- The system records the administrator and time for each decision.
- A repeated approval or rejection does not create duplicate records.
- A non-admin cannot list requests, read private request details, approve, or reject.
- If part of a decision fails, the system reports the error and does not show a false final state.
- Legacy accounts without request data remain visible and manageable.
US 5.0.8 - Manage Access Terms | Story Points: 5
Charter project: 2b – Person Management
As an administrator, I want to edit the two access terms from the administration page.
Acceptance Tests
- An administrator can view and edit both terms.
- Neither term can be saved as empty.
- A saved change becomes the active version for new access requests.
- Each access request keeps the version that the applicant accepted.
- Changing the terms does not require existing users to accept them again.
- A terms edit records the administrator and update time.
- A non-admin cannot read the editor or save changes.
- Failed updates leave the previous active terms unchanged.
- The sign-up and OAuth onboarding forms always show the active terms.
US 5.0.9 - View My Access-Request Status | Story Points: 3
Charter project: 2b – Person Management
As an applicant, I want to know whether my request is pending, approved, or rejected, so that I understand why I cannot use the application.
Acceptance Tests
- A pending applicant sees a pending-review message.
- A rejected applicant sees a rejected status instead of the pending message.
- An approved applicant enters the application normally.
- An applicant can see only their own status.
- Private administrator information is not shown.
- A signed-out visitor cannot read a request status.
- Existing approved users do not see an onboarding or terms prompt.
6 - Data and Places
US 6.0.1 - Store Each Site's Geometry From the Shared Source | Story Points: 5
Charter project: 2c – Map Management
As an Admin, I want each Site linked to its boundary from the shared Alberta KML source, and a list of the Sites that have no boundary, so that the website and the app never disagree about a Site's shape and I can fix the Sites that are missing one
Acceptance Tests
- Given an active Site and a boundary for it in the Alberta government KML data the website uses, When the Sites are linked, Then the Site is linked to that boundary and the boundary it reads is exactly the same as the KML
- Given the Sites are linked, When a Site is read from the database, Then it has a link to its boundary or no link
- Given the list of active Sites, When the link is finished, Then each Site is linked to a boundary or is on a list of Sites with no boundary for an Admin to fix
- Given I am a Steward, When I request the list of Sites with no boundary, Then the server refuses
7 - Inspections and Media
US 7.0.1 - Let Stewards Export Their Own Reports | Story Points: 2
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to export my own SIR as a PDF, so that I can keep or share a copy of my report
Acceptance Tests
- Given I submitted a SIR, When I select Export PDF on it, Then a PDF of that SIR is downloaded
- Given I am a Steward, When I request a PDF of a SIR I did not submit, Then the server refuses
- Given a PDF of my SIR is generated, When I open it, Then it contains the same answers and photos as the SIR page
US 7.0.3 - See All Inspections in One View | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want a summary across all SIRs rather than one Site at a time, so that I can report on the state of all Sites at once
Acceptance Tests
- Given SIRs exist for many Sites, When I open the all-SIR summary, Then it shows SIR counts per Site, per steward and per reason for the visit (Q42), and the spread of naturalness scores (Q31)
- Given the summary is open, When I set a date range, Then every figure is recalculated for that range
- Given I am a Steward, When I request the summary data directly, Then the request fails
US 7.0.4 - Compare One Question Across Years | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to pick one question and see how its answers changed over the years at a Site, so that I can see what is getting better or worse
Acceptance Tests
- Given a Site with SIRs from several years, When I choose one question, Then its answers are listed by date, oldest to newest
- Given I choose Q63 (motorized disturbance), When the list loads, Then answers from every SIR for that Site are shown (SAPAA's own check: "Compare historical motorized disturbances across all inspections (Question 63)")
- Given a question's wording was changed in the form editor, When I choose it, Then old and new answers stay grouped under the same Q-number
US 7.0.5 - Delete an Image and Clean Up After It | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want deleting an image to remove it from view and remove the stored file, so that inaccurate images are not shown to others and deleted images stop costing storage money
Acceptance Tests
- Given I am an Admin, When I delete an image from a Site, Then it no longer appears in the Site gallery or in any report that shows that gallery
- Given I am not allowed to delete images, When I view a Site gallery, Then no delete control is shown, and When I send a delete request directly, Then the server refuses
- Given an image was deleted, When the S3 bucket is checked, Then its file is gone
- Given an Admin deactivates a SIR, When the S3 bucket is checked, Then the SIR's image files are still there, so reactivating restores its photos
- Given a SIR submission fails and is rolled back (rollbackSiteInspectionSubmission), When the S3 bucket is checked, Then the files uploaded for that SIR are gone
US 7.0.6 - Export More Than 50 Site Inspection Reports | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to export more than 50 Site Inspection Reports at once, so that I can back them up for my records faster
Acceptance Tests
- Given more than 50 SIRs exist, When I select more than 50 and export them, Then the export completes and contains each selected SIR
- Given I export a set of SIRs, When I open the export, Then each SIR has the same answers as its page
- Given I am a Steward, When I request the bulk export, Then the server refuses and no export is created
- Given the export fails, When I check the SIRs, Then the stored reports are unchanged
US 7.0.7 - Hide Fields on a SIR Before Export | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to select fields to hide on a SIR before export, so that confidential or non-public fields stay out of the export
Acceptance Tests
- Given I am an Admin exporting a SIR, When I select fields to hide, Then those fields are marked for the export
- Given I hid fields, When the export is generated, Then the hidden fields are absent and the other fields are present
- Given I hid fields for an export, When I open the SIR page, Then the stored answers are still there
- Given I am a Steward, When I request an export with hidden fields, Then the server refuses
- Given I select no fields to hide, When I export, Then the export contains the full SIR
US 7.0.8 - Delete a Site Inspection Report | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As an Admin, I want to delete a Site Inspection Report, so that I can remove a report that is out of date or inaccurate
Acceptance Tests
- Given I am an Admin deleting a SIR, When I choose delete, Then I must confirm before the report is removed
- Given I confirm the delete, When it succeeds, Then the report no longer appears on the Site or in report lists
- Given the report has images, When the delete succeeds, Then those images are no longer shown with that report
- Given I am a Steward, When I request the delete, Then the server refuses and the report stays unchanged
- Given the delete cannot complete, an error is shown and the report and its answers stay unchanged
US 7.0.9 - Record Audio During a Site Inspection | Story Points: 5
Charter project: 1 – Critical SIR-SAPAA Bug Fixes & Minor Enhancements
As a Steward, I want to record audio during a site inspection, so that I can capture observations without typing in the field
Acceptance Tests
- Given I am filling out a SIR, When I start an audio recording, Then the recording is saved and linked to that SIR
- Given a recording is saved, When I open the SIR, Then I can play back the recording
- Given I am a Steward, When I request a recording from a SIR I did not submit, Then the server refuses
- Given the recording fails to save, When I check the SIR, Then the stored report is unchanged and an error is shown
MoSCoW
Must Have
19 stories, 85 story points.
| ID | Story | Points |
|---|---|---|
| US 1.0.1 | Add User Profiles | 5 |
| US 1.0.2 | Allow Editing Own Profile | 3 |
| US 1.0.4 | Aggregate User Activity and Contributions on a user's profile | 2 |
| US 2.0.2 | Allow Admins to Add New Sites | 3 |
| US 2.0.4 | Delete a Site | 8 |
| US 2.0.5 | Update a Site | 5 |
| US 2.0.8 | View a Site's Details From the Map | 3 |
| US 2.0.9 | Upload a GPX Track of a Site Visit | 5 |
| US 2.0.10 | Add links to Site Page | 1 |
| US 3.0.3 | Export all digital files from SIR-SAPAA | 8 |
| US 4.0.6 | Demote Photo Identifier to optional field | 1 |
| US 5.0.2 | Reset a Forgotten Password | 2 |
| US 5.0.5 | Request Access During Email Sign-Up | 8 |
| US 5.0.6 | Complete an Access Request With Google or Microsoft | 5 |
| US 5.0.7 | Review and Decide Access Requests | 8 |
| US 5.0.8 | Manage Access Terms | 5 |
| US 5.0.9 | View My Access-Request Status | 3 |
| US 6.0.1 | Store Each Site's Geometry From the Shared Source | 5 |
| US 7.0.7 | Hide Fields on a SIR Before Export | 5 |
Should Have
13 stories, 62 story points.
| ID | Story | Points |
|---|---|---|
| US 1.0.3 | Show history of Site Inspections on a Steward's Profile | 2 |
| US 2.0.1 | View Sites and Past Visits on an Interactive Map | 8 |
| US 2.0.3 | Deactivate and Reactivate a Site | 3 |
| US 2.0.6 | Search and Filter Sites by County on the Map | 5 |
| US 3.0.2 | Steward Designation | 5 |
| US 4.0.2 | Offline and Online Map Layers | 13 |
| US 4.0.4 | Edit My Previous Inspections | 5 |
| US 5.0.4 | Sign Out Properly | 2 |
| US 7.0.5 | Delete an Image and Clean Up After It | 5 |
| US 7.0.6 | Export More Than 50 Site Inspection Reports | 5 |
| US 7.0.8 | Delete a Site Inspection Report | 5 |
| US 1.0.6 | Select and Edit Skills and Focus Areas | 2 | | US 2.0.14 | Color Map Sites by Type | 2 |
Could Have
5 stories, 23 story points.
| ID | Story | Points |
|---|---|---|
| US 1.0.5 | Earn Points for Inspection Activity | 5 |
| US 2.0.12 | Score a Site for To-Visit Priority | 8 |
| US 2.0.13 | Flag Site Points That Are a Year Old | 3 |
| US 7.0.1 | Let Stewards Export Their Own Reports | 2 |
| US 7.0.3 | See All Inspections in One View | 5 |
Won't Have
6 stories, 28 story points.
| ID | Story | Points |
|---|---|---|
| US 7.0.4 | Compare One Question Across Years | 5 |
| US 7.0.9 | Record Audio During a Site Inspection | 5 |
| US 4.0.5 | iNaturalist integration | 5 |
| US 2.0.11 | Show Safety Information for a Site | 5 |
| US 4.0.7 | Show the Top iNaturalist Observations for a Site | 5 |
| US 3.0.4 | Add a Steward Without an Account | 3 |