The main aim of “GreenCity” project is to teach people in a playful and challenging way to have an eco-friendly lifestyle. A user can view on the map places that have some eco-initiatives or suggest discounts for being environmentally aware (for instance, coffee shops that give a discount if a customer comes with their own cup). А user can start doing an environment-friendly habit and track their progress with a habit tracker.
As Unregistered user, I want to sign in the application so that I can have a view of site as Registered user.
Acceptance criteria:
WHEN Unregistered user access the application THEN he/she can see "Sign in" button on the right upper corner of the site.
WHEN Unregistered user click on "Sign in" button THEN, he/she can see new page with the next fields to enter:
a. Login (placeholder - Email address)
b. Password (placeholder - Password)
c. "Sign in" button
WHEN Unregistered user fills in required fields and clicks "Sign in" button, THEN he/she is navigated to "Home page" as Registered user.
As an admin I want to be able to approve or decline proposed cafés. Mockups:
Acceptance Criteria:
Provided there is at least one unapproved cafe in the list of proposed cafes, system shall display 2 buttons "Approve" (green) and "Decline" (red) to the right of the respective cafe description.
Provided admin approved a proposed cafe, by clicking on the "Approve" button AND it was successfully approved, then system shall:
a. remove the item from the list of proposed places
b. add the item to the list of approved places
c. add the place to the map
d. display a notification flash message "Approved" (green color) at the top of the screen (it shall disappear in 3 seconds)
Provided admin approved a proposed place AND it was not successfully approved due to a system or other error, then system shall display a notification flash message "Error. Item was not approved. Please try again" (red color) at the top of the screen. (the item shall not disappear from the proposed list.
Provided admin declined a proposed place, by clicking on the "Decline" button, then system shall:
a. remove the item from the list of proposed places
b. add the item to the list of declined places
c. display a notification flash message "Declined" (green color) at the top of the screen (it shall disappear in 3 seconds)
Provided admin declined a proposed place AND it was not successfully declined due to a system or other error, then system shall display a notification flash message "Error. Item was not declined. Please try again" (red color) at the top of the screen. (the item shall not disappear from the proposed list.
As an unregistered user I want to be able to access to the detail information about a place on the map so that I can choose the place to go.
Mockups:
Acceptance criteria:
WHEN Unregistered or Registered user clicks on the one of test places, THEN he/she should be able to see small pop-up with detailed info about place (test data):
a. Name
b. Address (City, Street, Number of building)
c. Working times (day; hh:mm-hh:mm)
d. Discount
e. Feedback
f. Unactive star-icon in order to add this place to Favorites (as Registered user)
Assumptions and Constraints:
This User story is related to user story #20
As an unregistered user I want to access the application, so that I can see a map with places on the right side and a list with places on the left side of the window.
Mockups:
Acceptance Criteria:
WHEN Unregistered user access the site, THEN system should navigate him/her to the main page of website with:
a. Map zoomed out to area of Lviv
b. List of places (Names)
Test places are on the map
System allows to zoom in/out a map.
Sidebar list of cafes include names of test cafes and their address.
List of places should be sorted by name.
Test cafes, which are in the list of sidebar should be visible on the map in parallel.
As an admin I want to see the list of Places, so that I can approve/decline them later. Mockups:
Acceptance Criteria:
WHEN an admin user navigates to the tab "Places" in the admin page, THEN an admin shall see them in a table list;
The list of Places shall contain the following columns:
a. "Category"
b. "Name"
c. "Address"
d. "Working times"
e. "Added by" (login of user who proposed a place)
f. "Added on" (date of proposed place)
e. "Status" (Proposed/Approved/Declined)
System sorts records in the list of places by date added (newest at the top) and status by default.
System shall display data in the columns as follows:
a. category (dropdown list with data)
a. name - free text (max # of chars = 30)
b. address - free text (max # of chars = 30)
c. working times - time range in format "HH:MM-HH:MM"
d. added by - user login (email)
e. added on - in format "DD.MM.YY HH:MM"
f. Status - dropdown list (Proposed/Approved/Declined)
The table can have a maximum number of record rows that can fit on a page. There shall not be a scroll.
Provided there are more record rows that can fit the page, system shall display a page counter and buttons "Previous", "Next" at the bottom of the page.
GIVEN user is on a page AND there is a page counter and button "Previous" or "Next" respectively, WHEN
user clicks on "Next" button, THEN system shall navigate him to the next page
user clicks on "Previous" button, THEN system shall navigate him to the previous page.
We have to register our user. User has to write email. We have to submit this email. So i have to create this logic that sent some submit-email to user email.
As unregistered user I want to be able to register so that I can have wide access to the application (save favorite places in a profile, leave a feedback for a place).
(new version #385 )
WHEN Unregistered user accesses the main page of application, THEN on the upper right side of the window he/she can see "Sign Up" button.
WHEN Unregistered user clicks on the "Sign Up" button, THEN he/she can see popup with the next fields to fill in:
a. First Name (max chars 20)
b. Last Name (max chars 20)
c. Email Address (with check of existence @....com in filled in text)
d. Password
All fields, mentioned above, should be obligatory to enter.
Criteria to create a password should be the next:
a. Be a minimum of eight (8) characters in length
b. Contain at least one (1) character from three (3) of the following categories:
c. Uppercase letter (A-Z)
d. Lowercase letter (a-z)
e. Digit (0-9)
f. Special character (~`!@#$%^&*()+=_-{}[]|:;”’?/<>,.)
WHEN Unregistered user fills in all necessary fields AND clicks "Sign Up" button, THEN he/she see popup with text "You successfully registered on this site. Please verify your email address in mailbox". And at once unregistered user should receive a verification email about registration in the application to his/her email address, mentioned in form.
Verification email is active during 24 h after registration.
When Unregistered user clicks "Verify Email" button, THEN system should navigate him/her to the initial application's page with "Sign in" button available.
As a registered user I want to propose a new café to be added to the map/list, so that information about cafes is up-to-date and full.
Mockups:
Acceptance Criteria:
GIVEN a registered user is successfully logged in to the system, WHEN he clicks on "Add place" button at top right corner of the screen, THEN system shall open a modal window with the following:
a. input field "Type"
b. input field "Name"
c. input field "Address"
d. input field "Working times"
e. Buttons "Add" and "Cancel"
Provided user clicks on field "Type", system shall open a drop-down with the following elements:
a. Cafe
b. Restaurant
c. Add new
Provided user selects "Add new" option in the Type field, system shall let him enter a new type of place.
Fields "Name" and "Address" shall be char + digit fields. User can input max number of 30 chars into each field.
Provided user clicks on "Working times" field, system shall open a pop-up, where user has to choose opening and closure times. There shall be buttons "OK" and "Cancel".
All fields are mandatory to be populated. Provided at least one field is not populated, then "Add" button shall be disabled.
Provided user clicks on "Add" button, system shall close the modal window, add the proposed place to the system and display it in the "Proposed places" tab of the Admin page.
Provided user clicks on "Cancel" button, system shall close the modal window and not save data entered in the fields (if any).
As Admin I want to create new place so that it will be shown on the list of Places and map.
Mockup:
Acceptance criteria:
"Create new place" button is available on the "Places" tab.
WHEN Admin see "Places" tab, THEN he can click on "Create new place" button.
WHEN Admin clicks "Create new place" button THEN he can see popup with next fields:
a. input field "Type/Category"
b. input field "Name"
c. input field "Address"
d. input field "Working times"
e. "Save" button
WHEN Admin fill in all required fields for new place and clicks "Save" button THEN he/she can see newly created place on the top of the list on Places tab.
When Unregistered user clicks "Sign up" button, THEN he/she can have an option with "Sign up with Google" button to register the application with Google account.
When Unregistered user clicks "Sign up with Google" button, THEN he/she should see fields where he/she can enter their email address and password.
When Unregistered user clicks "Submit" button, THE he/she should see the application as Registered user in case of successfully sign up.
As an admin I want to be able to moderate registered users.
Mockups:
Acceptance Criteria:
Provided admin navigates to "Users" tab in the admin page, system shall display the list of all registered users.
The list shall be in a form of a table and shall contain the following columns:
a. E-mail address
b. First name
c. Last name
d. Date of registration
e. Actions
Actions column shall contain the following buttons:
a. "Block"
b. "Make Admin"
c. "Deactivate"
d. "Unblock"
e. "Activate"
Records in the list shall bu automatically sorted in alphabetical order (A-Z) by the E-mail address column.
*5. The table can have a maximum number of ??TBD?? record rows on a page. There shall not be a scroll.
6. Provided there are more record rows that can fit the page, system shall display a page counter and buttons "Previous", "Next" at the bottom of the page.
As an admin I want to be able to search for particular items within the Admin page, so that I can easily find needed items.
Mockups:
*TBD for field width and location
Acceptance Criteria:
System shall display a search input field in the Admin page.
After entering search criteria, Admin can initiate the search action by:
a. pressing "Enter"
b. clicking on the magnifying icon in the search field
Provided admin entered search criteria into the search field and initiated the search, system shall do search within the active tab in the Admin page. (e.g. if admin is in "Approved places" tab - system shall search only within this tab. To search within other tabs, admin needs to navigate to other tabs)
Search shall be available without any restrictions as to input criteria (letters, digits, symbols), EXCEPT for blank search criteria (i.e. provided admin clicks the magnifying icon when there is no search criteria, system shall not initiate search).
Search action shall do search by means of "contains" parameter AND within all columns (i.e. given there is "Intempo" entry and admin searches for "int" - system shall display the result + any other possible results which include "int")
Provided there is(are) items that are identified by the search criteria after admin initiates search, system shall display them within the tab in alphabetical order (A-Z). System shall display the whole entry row.
Provided there is no item identified by search criteria after admin initiates search, system shall display message "No matches found" within the tab.
As a registered user I want to be able to add available places to Favorites, so that I can easily find them in one convenient place.
Acceptance Criteria:
Provided a registered user opens a Detail View pop-up of a place on the map (by clicking on a place on the map), system shall display a Star (i.e. Favorites) icon (white, unfilled with color) at the top right corner of the pop-up.
GIVEN the Star icon is unfilled with color, WHEN user clicks on it, THEN system shall fill the Star icon with color (yellow) AND save the place to the user's Favorites list.
GIVEN the Star icon is filled with color (yellow), WHEN user clicks on it, THEN system shall make it unfilled with color (blank) AND remove the place from the Favorites list.
Provided a registered user has at least one saved favorite place, system shall display "Favorites" button near the map.
Provided user clicks on "Favorites" button, system shall open the Favorites modal pop-up (over the map) which shall include:
a. header "Favorite places"
b. list of all user's saved favorite places.
Provided user clicks on a place from the Favorites list, system shall
a. close the modal pop-up
b. display this place as selected on the map
Only on place can be selected at a time.
Available actions for user within the Favorites screen shall include:
a. edit name of saved place, by clicking on "Edit" button next to a place. Max number of characters for a name = 30
b. delete saved place, by clicking on "Delete" button next to a place
TBD - provided user has a list of saved favorite places - they shall be displayed on a map by a star icon (instead of default icon) - separate story #167