This is a serverless, progressive web application (PWA) built with React using a test-driven development (TDD) technique. The application uses the Google Calendar API to fetch upcoming events.
- Given user hasn't searched for any city
- When the user opens the app
- Then the user should see a list of upcoming events from all locations
- Given the main page is open
- When user starts typing in the city textbox
- Then the user should see a list of cities (suggestions) that match what they've typed
- Given the user was typing “Berlin” in the city textbox
- And the list of suggested cities is showing
- When the user selects a city (e.g., “Berlin, Germany”) from the list
- Then their city should be changed to that city (i.e., “Berlin, Germany”)
- And the user should receive a list of upcoming events in that city
- Given the user has started the app
- When the user doesn't click on an event
- Then the event details will be collapsed
- Given the user has started the app
- When the user clicks on an event
- Then the event details will expand
- Given the user has expanded the details of an event
- When the user clicks on the event details
- Then the event details will collapse
- Given the user is on the main page
- When the user has not specified the numbers of events
- Then the default number of displayed events will be 32
- Given the user is on the main page
- When the user changes the number of events
- Then the number of events will change accordingly
- Given the user has no internet connection
- When the user starts the app
- Then the app will operate with cached data
- Given the user has no internet connection
- When the user tries to change the settings
- Then the app will display an error
- Given the user has started the app
- When the user has not searched for a city
- Then a chart with the number of upcoming events will be displayed
- Given that the user has not enabled browser settings for light mode
- When the user has started the app
- Then the app should be displayed in dark mode by default
- Given the user has started the app
- When the user clicks on the dark and light mode switch
- Then the styling of the app will change the dark or light mode
- Javascript
- React
- Axios
- nprogress
- React
- React-DOM
- React-Router-DOM
- Recharts
Use the command:
npm run start