Git Product home page Git Product logo

vppelli / meet Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 7.58 MB

To build a serverless, progressive web application (PWA) with React using a test-driven development (TDD) technique. The application uses the Google Calendar API to fetch upcoming events.

Home Page: https://vppelli.github.io/meet/

HTML 3.87% CSS 3.42% JavaScript 90.99% Gherkin 1.71%
event-list progressive-web-app react serverless-framework

meet's Introduction

MeetApp link

Outline

Objective of Meet App

To build a serverless, progressive web application (PWA) with React using a test-driven development (TDD) technique. The application uses the Google Calendar API to fetch upcoming events.

Meet App Live Demo

Project Features & Scenarios

User stories and scenarios 1-6

Feature 1 Filter Events By City

As a user, I should be able to filter events by city. So that I can see a list of events taking place in that city.

  • Scenario 1: When the user hasn’t searched for a specific city, show upcoming events from all cities.
    • Given the main page with the search option has been opened;
    • When the user enters a city;
    • Then they should be shown upcoming events for that city.
  • Scenario 2: Users should see a list of suggestions when they search for a city.
    • Given the main page with the search option has been opened;
    • When the user opens the app;
    • Then they should be shown a list of all events for all the cities available.
  • Scenario 3: The user can select a city from the suggested list.
    • Given 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.

Feature 2 Show/Hide Event Details

As a User, I should be able to Show/Hide Event Details. So that I can learn more about the Event.

  • Scenario 1: An event element is collapsed by default.
    • Given the user has found an event
    • When the user views an event element
    • Then the event details should be collapsed by default
  • Scenario 2: The user can expand an event to see details.
    • Given the user has found an event
    • When the user clicks an event details
    • Then the event details should be expanded
  • Scenario 3: The user can collapse an event to hide details.
    • Given the user has expanded the event details, and wants to close it
    • When the user clicks the hide details
    • Then the event details should collapse

Feature 3 Specify Number of Events

As a User, I should be able to Specify the Number of Events. So that viewing events is better.

  • Scenario 1: When the user hasn’t specified a number, 32 events are shown by default.
    • Given the user wants to see all events without specifying a number
    • When the user views the event shown on the search
    • Then the number of events shown will be 32
  • Scenario 2: The user can change the number of events displayed.
    • Given the user wants to see all events but 5 at a time
    • When the user specifies 5 in the search field
    • Then the events will show only 5

Feature 4 Use the App When Offline

As a User, I should be able to use the App When Offline. So that when there's no connection I can still view my Event history.

  • Scenario 1: Show cached data when there’s no internet connection.
    • Given the user has no internet access and is in offline mode
    • When the user opens the events from last time
    • Then it will show the last loaded events
  • Scenario 2: Show error when the user changes search settings (city, number of events).
    • Given the user changes search settings in offline mode
    • When the user attempts to change the search
    • Then the page will not load and show an error message indicating that changes will not load offline

Feature 5 Add an App Shortcut to the Home Screen

As a User, I should be able to Add an App Shortcut to the Home Screen. So that it is easy to access.

  • Scenario 1: User can install the Meet app as a shortcut on their device home screen
    • Given the user wants to add the app as a shortcut
    • When the user adds it to their device's home screen
    • Then they will have easy access from their device's home screen to the events app

Feature 6 Display Charts Visualizing Event Details

As a User, I should be able to Display Charts Visualizing Event Details. So that I am aware of how many events are available and where.

  • Scenario 1: Show a chart with the number of upcoming events in each city.
    • Given the user wants to view the number of events upcoming based on the city
    • When the user selects the option to view a chart of upcoming events
    • Then the events should display a chart of upcoming events in a city and how many

How Meet App will use serverless function

Serverless functions can be used to enhance the functionality of the app. It can provide Real-time updates, Personalized experiences as event recommendations, Event data processing, Notifications, Geolocation and Location-Based services for events, Handle API requests to Google Cloud, and be able to automatically scale based on demand!

To The Top

Meet App Diagram Exercise 4.2

Meet App Diagram Image

API Used

Google Cloud API https://console.cloud.google.com/welcome/new?authuser=1&project=unique-badge-410116&supportedpurview=project

meet's People

Contributors

vppelli avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.