Version number: 1.0
Authors: Krzysztof Antoniak, Robert Michna, Maciej Procyk
- v1.0 (2020-03-17): Initial revision (Krzysztof Antoniak, Robert Michna, Maciej Procyk)
This documents lists use cases for functional testing.
There are three user roles in the system:
- Admin: Manages canteen owners
- Canteen owner: Third-party business owner, manages canteens and owns devices
- No role (unregistered user): Browses public data
Pre-condition: Admin is not logged in and enters any admin panel website.
Post-condition: Admin is logged in.
- Website displays login form with "Username", "Password" fields and submit button.
- User enters credentials in the form and clicks the submit button.
- If 2FA is disabled, go to (5). Otherwise, website shows OTP form with single input and submit button.
- User enters OTP code and clicks the submit button.
- Website shows default admin panel website.
- If username-password pair or OTP code are incorrect, flow goes back to (1). Website will show error message above the form.
Post-condition: New canteen owner account is created
- Admin enters "Add canteen owner" page.
- Website displays form with a field for username and submit button.
- Admin fills in username and clicks the submit button.
- Website displays username and generated one-time password. This password will never be revealed again.
- If username already exists, panel will show form from (2), with an error message.
Pre-condition: Canteen owner is not logged in and enters any canteen owner panel website.
Post-condition: Canteen owner is logged in.
- Website displays login form with "Username", "Password" fields and submit button.
- User enters credentials in the form and clicks the submit button.
- If 2FA is disabled, go to (5). Otherwise, website shows OTP form with single input and submit button.
- User enters OTP code and clicks the submit button.
- If user logged in for the first time, they will be redirected to password change page. Otherwise, website shows default canteen owner panel page.
- If username-password pair or OTP code are incorrect, flow goes back to (1). Website will show error message above the form.
Post-condition: New camera device is registered and ready to transfer data.
- Canteen owner enters "Register new device" page.
- Website displays form with a dropdown and submit button. Dropdown lists owned canteens.
- User selects the canteen and clicks the submit button.
- Website displays new device name and generated API key. This key will never be revealed again.
- User performs device setup.
- Canteen owner enters "Devices" page.
- Website displays a list of managed devices. Each row contains canteen name, device name, device status (on/off/lost connection) and edit/delete buttons.
- If no devices are registered, in (2) website displays an empty state page with a link to "Register new device page".
Post-condition: Selected camera device has new API key.
- Canteen owner enters "Devices" page.
- User clicks the edit button next to selected device entry.
- Website shows confirmation page for API key reset with a submit button.
- User clicks the submit button.
- Website displays device name and new API key. This key will never be revealed again.
Pre-condition: Android app is in the initial screen
Post-condition: Android app is in the concrete canteen screen
- User choose to find canteen based on phone's location
- User clicks "Find by your location"
- The map screen appears with basic map controls and marked points with the cafeterias (with occupancy data for each canteen available after single click on place)
- User can navigate to his location or just select any canteen by double-clicking it on map
- User is navigated to main screen of the selected canteen
- User choose to find canteen based on string search with filters
- User clicks "Find by name"
- Search screen appears with basic filters (occupancy, rating, prices, opened/closed, food tags filters) and user inputs his preferences to search for canteen and clicks search button
- Matching cafeterias appears in list on screen and user makes a decission by clicking by any of them
- User is navigated to main screen of the selected canteen
- After selecting filters there are no matches for user so none of the canteen can be selected and user stays at the search screen or changes his
Pre-condition: Concrete canteen screen was opened by user and user didn't go back to initial or search screen
Post-condition: User can see all the information about specified canteen (address, name, current occupancy, average rating of dishes, opening hours, current status: open/closed)
- User clicks on navigation menu button or swipe from left to right to open navigation menu
- User selects "Place info" item in application navigation menu
Pre-condition: Concrete canteen screen was opened by user and user didn't go back to initial or search screen
Post-condition: User can see all of the specified canteen statistics data
- User clicks on navigation menu button or swipe from left to right to open navigation menu
- User selects "Stats and data" item in application navigation menu
Pre-condition: Concrete canteen screen was opened by user and user didn't go back to initial or search screen
Post-condition: User can see all food served in canteen with names, prices and ratings
- User clicks on navigation menu button or swipe from left to right to open navigation menu
- User selects "Menu" item in application navigation menu
Pre-condition: Concrete canteen screen was opened by user and user selected the "Menu" screen in app
Post-condition: User's feedback sent to server and the ratings in menu is updated
- User clicks on some dish card item in "Menu" view and rating window appears
- User selects his rating by clicking on proper star on rating bar
- Rating abr closes and the menu data is updated
Pre-condition: Concrete canteen screen was opened by user and user didn't go back to initial or search screen
Post-condition: User is back in the concrete canteen screen
- User clicks on special menu button and selects settings
- User can change the application theme, language, turn on/off application notifications (if any available) and get some information about the whole system of canteens
- User goes back and the settings are applied for app