Skip to content

User Stories

ceron edited this page Sep 5, 2024 · 3 revisions

Story Name: Register events and reservations

  • Story Number: 1
  • Dependencies: None
  • Postconditions: Information is loaded into the database
  • Description: As an administrator, I want to upload information about events and reservations to register the events and bookings.
  • Acceptance Criteria:
    • It should be possible to input from an Excel file with the structure as follows (email, number, event_name, start_date, end_date, event_address, reservation_address, entry_date, exit_date, is_house), where only the event or reservation information will be filled per row, not both.
    • Dates must be received in "yyyy-MM-dd" format.
    • Based solely on the Excel file, Users, Events, Reservations, accommodations, and the relationships between them should be registered.
    • Validation: Unit tests for information extraction and writing to the backend, integrated tests with frontend to verify correct Excel file submission.

Story Name: View events

  • Story Number: 2
  • Dependencies: 1
  • Postconditions: Information about registered events is displayed.
  • Description: As an administrator, I want to visualize all the events registered in the system to take actions on them.
  • Acceptance Criteria:
    • Information for each event should be displayed (name, start_date, end_date, address).
    • Validation: Unit tests for reading the events with the specified fields.

Story Name: View users by event

  • Story Number: 3
  • Dependencies: 2
  • Postconditions: All users registered for a specific event are displayed.
  • Description: As an administrator, I want to visualize the users registered for a selected event to send or cancel invitation requests to the users.
  • Acceptance Criteria:
    • The following information should be listed for each user (email, number, status).
    • The status must be one of the following: "registered", "invited", "confirmed".
    • The option to "invite" should only be enabled for users with "registered" status.
    • Validation: Unit tests to confirm the reading of users with the specified fields, and integrated tests to confirm that the "invite" option is only enabled for users with the "registered" status.

Story Name: Send invitations to event

  • Story Number: 4
  • Dependencies: 3
  • Postconditions: Invitation email is sent to the user.
  • Description: As an administrator, I want to be able to send invitations to users associated with a specific event so that they can confirm their registration for the event.
  • Acceptance Criteria:
    • Only one invitation should be sent per user per event. It should not be allowed to send more than one invitation for the same event to the same user.
    • The user should receive an email at their registered email address from user story 1. The email should contain the download link for the mobile application (APK).
    • The email should specify which event it is referring to, sharing the dates and name of the event.
    • It should be possible to send invitations to multiple users in one request.
    • Validation: Unit tests to confirm that the email action is triggered for the specified user. Functional integrated tests to confirm that the email is sent to the selected users from the frontend, and that the emails are correctly associated with the corresponding event, as well as ensuring that the download link works correctly.

Story Name: View reservations

  • Story Number: 5
  • Dependencies: 1
  • Postconditions: Registered reservations are displayed.
  • Description: As an administrator, I want to visualize the accommodation reservations registered in the system to take management actions on them.
  • Acceptance Criteria:
    • The following information must be displayed for each reservation (entry_date, exit_date, address, user_email).
    • Validation: Unit tests for correct reading of the information, as well as handling the specified fields.

Story Name: Send invitations to reservations

  • Story Number: 6
  • Dependencies: 5
  • Postconditions: Invitation email is sent to the user.
  • Description: As an administrator, I want to be able to send invitations to the user associated with a specific reservation so that the user can confirm their attendance.
  • Acceptance Criteria:
    • The user should receive an email at their registered email address from user story 1. The email should contain the download link for the mobile application (APK).
    • The email should specify the reservation it refers to by sharing the entry and exit dates, as well as the address.
    • Validation: Unit tests to verify that the email can be sent. Functional integrated tests to confirm that the email is sent to the selected user from the frontend, and that the email contains all the required information along with a valid link to the application.

Story Name: View sessions

  • Story Number: 7
  • Dependencies: None
  • Postconditions: All registered sessions are displayed.
  • Description: As an administrator, I want to visualize the sessions (devices associated with users) registered to take actions on activating or deactivating them.
  • Acceptance Criteria:
    • The following information must be displayed for each session (user_email, user_number, phone_model, is_active).
    • Validation: Unit tests for correct reading of the information and handling the specified fields.

Story Name: Action on session

  • Story Number: 8
  • Dependencies: 7
  • Postconditions: The session's status is changed.
  • Description: As an administrator, I want to be able to activate or deactivate registered sessions to control from which devices users can manage their events or reservations.
  • Acceptance Criteria:
    • The session should be modified with the new value, which can only be one of two: active or inactive.
    • Validation: Unit tests to validate the correct update of the session.

Story Name: Register in the application

  • Story Number: 9
  • Dependencies: None
  • Postconditions: A new inactive session is created for the device-user.
  • Description: As a user, I want to register my phone with me to manage my events and reservations.
  • Acceptance Criteria:
    • For registration, the user must provide their email and phone number.
    • The IMEI and information about the phone model must also be obtained.
    • The session (inactive by default) should be created for the device and associated with the user based on the email and number entered.
    • If the email and phone number entered do not match a user registered in the system (from user story 1), then nothing is done, and the user is informed.
    • If the user was registered, they are informed that they will be able to use the application once their session is authorized.
    • Validation: Unit tests to validate the correct creation of the session with the received information, integrated tests to confirm that the IMEI and phone model information is obtained from the device, and that the created session is registered with that information.

Story Name: View ongoing events and reservations

  • Story Number: 10
  • Dependencies: 9
  • Postconditions: The user's ongoing events and reservations are displayed.
  • Description: As a user, I want to see my ongoing reservations and/or events (i.e., where the current date is within the range of start and end dates) to request entry or exit from them.
  • Acceptance Criteria:
    • Ongoing events and reservations that the user has confirmed attendance for should be displayed.
    • For each event/reservation, there should be an option to "enter" or "exit," and the displayed option should be selected according to the user's current status (i.e., if the user is inside, the displayed option should be "exit").
    • Validation: Unit tests to confirm the correct reading of the events/reservations with filters for user, date, and confirmed status. Integrated tests to verify that the correct option ("enter" or "exit") is displayed based on the user's current recorded status.

Story Name: View my events

  • Story Number: 11
  • Dependencies: 9
  • Postconditions: The user's events are displayed.
  • Description: As a user, I want to see information about the events I am invited or confirmed for, to confirm my attendance for those I haven't yet done so.
  • Acceptance Criteria:
    • The following information should be displayed for each event (start_date, end_date, address, status, event_name).
    • The event's status should be either "INVITED" or "CONFIRMED."
    • Only for events with "INVITED" status should there be a "confirm" option for the user to select.
    • Validation: Unit tests to verify correct reading with the specified fields. Integrated tests to confirm that the "confirm" option only appears for events with the "INVITED" status.

Story Name: View my reservations

  • Story Number: 12
  • Dependencies: 9
  • Postconditions: The user's reservations are displayed.
  • Description: As a user, I want to see information about the reservations I am invited or confirmed for, to confirm my attendance for those I haven't yet done so.
  • Acceptance Criteria:
    • The following information should be displayed for each reservation (entry_date, exit_date, address, status).
    • The reservation's status should be either "INVITED" or "CONFIRMED."
    • Only for reservations with "INVITED" status should there be a "confirm" option for the user to select.
    • Validation: Unit tests to verify correct reading with the specified fields. Integrated tests to confirm that the "confirm" option only appears for reservations with the "INVITED" status.

Story Name: Confirm attendance

  • Story Number: 13
  • Dependencies: 12 and/or 11
  • Postconditions: The user's attendance for the event or reservation is confirmed.
  • Description: As a user, I want to confirm my attendance for an event or reservation I have been invited to, so I can attend it.
  • Acceptance Criteria:
    • The status should be updated so that the event or reservation appears in the "ongoing" section once it begins, allowing the user to enter.
    • Validation: Unit tests to verify that the status is updated for the specified event or reservation.

Story Name: Entry and exit

  • Story Number: 14
  • Dependencies: 10
  • Postconditions: The user's status with respect to an ongoing event or reservation is updated.
  • Description: As a user, I want to enter or exit an ongoing event/reservation via the mobile app by pressing a button, so I can exit and re-enter if I wish.
  • Acceptance Criteria:
    • The system should identify through the action log whether the action is for entry or exit.
    • Validation: Unit tests to verify that the specified action is recorded. Integrated tests to validate that the user's status ("inside" or "outside") changes accordingly after the action is performed.