This app provides a list of upcoming events for any given city. The app works offline using cached data from the last time it was used online. The user can search for events in a specific city or browse all events, customize how many events are shown on screen, click an event for more details, and see how many events are upcoming in those cities.
- HTML
- CSS
- JavaScript
- React
- Google Calendar API
- Recharts
- AWS Lambda
- Jest/Enzyme
- Jest-Cucumber
- Puppeteer
As a user, I would like to be able to filter events by city so that I can see the list of events that take plae in that city.
Given user hasn't searched for any city
When user opens the app
Then the user should see a list of all upcoming events
Given the main page is open
When user starts typing in the city textbox
Then user should see a list of cities (suggestions) that match what they've typed
Given the user was typing "Berlin" in the city textbox
When the user selects a city (e.g., "Berlin, Germany") from the list
Then Their city should be changed to that city and the user should receive a list of upcoming events in that city
As a user, I would like to be able to show/hide event details so that I can see more/less information about an event.
Given the user is on the homepage
When no events have been selected
Then the event details will not be shown and will instead be "collapsed"
Given an event's details are not shown
When a user clicks on a given event
Then the event's details will be revealed
Given the user has expanded the details on an event
When the user clicks again on the expanded details
Then the details of this event shall be hidden
As a user, I would like to be able to specify the number of events I want to view in the app so that I can see more or fewer events in the events list at once.
Given the number of events hasn't been specified by the user
When the user opens the app
Then the user will see 32 events by default
Given the list of events is being shown
When the user changes the number of events to display
Then the app will display the number of events specified by the user
As a user, I would like to be able to use the app when offline so that I can see the events I viewed the last time I was online.
Given the user is not connected to the internet
When previous data has been cached
Then cached data will be shown to the user
Given the user is not connected to the internet
When the user updates settings like location or the time
Then an error message will display
As a user, I would like to be able to see a chart showing the upcoming events in each city so that I know what events are organized in which city.
Given the user wants to know how many upcoming events are happening in each city
When the user clicks on a link for displaying this data
Then the chart will be shown so the user can see what events are happening in each city