{"id":15968884,"url":"https://github.com/monicaalyssa/meet","last_synced_at":"2026-04-16T14:02:35.445Z","repository":{"id":255681400,"uuid":"853362822","full_name":"monicaalyssa/meet","owner":"monicaalyssa","description":"Meet is a serverless web application that allows users to search for upcoming events in different cities.","archived":false,"fork":false,"pushed_at":"2024-11-30T20:09:00.000Z","size":11410,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-10T19:37:00.373Z","etag":null,"topics":["aws-lambda","cucumber","jest","oauth2","pwa","react","recharts","serverless"],"latest_commit_sha":null,"homepage":"https://monicaalyssa.github.io/meet/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monicaalyssa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-06T14:02:51.000Z","updated_at":"2024-11-30T20:08:49.000Z","dependencies_parsed_at":"2024-09-15T01:26:29.340Z","dependency_job_id":"4a3bf19f-0a81-4040-91f8-18e3cc2e043d","html_url":"https://github.com/monicaalyssa/meet","commit_stats":null,"previous_names":["monicaalyssa/meet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/monicaalyssa/meet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monicaalyssa%2Fmeet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monicaalyssa%2Fmeet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monicaalyssa%2Fmeet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monicaalyssa%2Fmeet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monicaalyssa","download_url":"https://codeload.github.com/monicaalyssa/meet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monicaalyssa%2Fmeet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31888936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T11:36:10.202Z","status":"ssl_error","status_checked_at":"2026-04-16T11:36:09.652Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","cucumber","jest","oauth2","pwa","react","recharts","serverless"],"created_at":"2024-10-07T19:04:22.435Z","updated_at":"2026-04-16T14:02:35.305Z","avatar_url":"https://github.com/monicaalyssa.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meet \u003ca name=\"top\"\u003e\u003c/a\u003e\nMeet is a serverless, Progressive Web App built in React that allows users to search for upcoming events in different cities.\n\n## Features ✨\n\n- **Browse events:** View various events from different locations along with their details.\n- **Filter Events by City:** Search for events in a specific city.\n- **Offline Access:** Access previously viewed events and data, even when offline.\n- **Add to Home Screen:** Users can add the app to their home screen.\n- **Data Visualization:** Interactive scatterplot and pie chart to display the number of events based on location, and the popularity of event genres.\n- **Google Authentication:** Users can sign in securely using their Google account.\n\n\n## User Stories \u0026 Test Scenarios 🔍\nThis app follows a Test-Driven Development (TDD) approach, meaning the tests were written before the actual implementation of features.\n\n\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003cstrong\u003eFeature 1: Filter Events by City\u003c/strong\u003e \u003c/summary\u003e\n\u003cbr\u003e\n\nAs 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`.\n\n\n```\nScenario 1: When user hasn’t searched for a specific city, show upcoming events from all cities.\n\n- Given user hasn’t searched for any city\n- When the user opens the app\n- Then the user should see a list of upcoming events\n```\n```\nScenario 2: User should see a list of suggestions when they search for a city.\n\n- Given the main page is open\n- When user starts typing in the city textbox\n- Then the user should receive a list of cities (suggestions) that match what they’ve typed\n```\n```\nScenario 3: User can select a city from the suggested list.\n\n- Given user was typing “Miami” in the city textbox AND the list of suggested cities is showing\n- When the user selects a city (e.g., “Miami, Florida) from the list\n- Then their city should be changed to that city (i.e., “Miami, Florida\") AND the user should receive a list of upcoming events in that city\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003cstrong\u003eFeature 2: Show/Hide Event Details \u003c/strong\u003e \u003c/summary\u003e\n\u003cbr\u003e\n\n\nAs a `user`, I should be able to `collapse or show event details` so that `I can get more information about a specific event`.\n\n```\nScenario 1: An event element is collapsed by default. \n\nGiven the user is on the upcoming events page\nWhen the user views a list of different upcoming events\nThen the events should be collapsed by default AND the user should be given the option to show a specific events details\n```\n```\nScenario 2: User can expand an event to see details. \n\nGiven the user is on the upcoming events page\nWhen the user clicks on expand details\nThen the user should given more information on the event AND should be given the option to hide details\n```\n```\nScenario 3: User can collapse an event to hide details.\n\nGiven the user expands a specific events details\nWhen the user clicks on the collapse option\nThen the event element should hide additional details AND should be given the option to show details again\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003cstrong\u003eFeature 3: Specify Number of Events\u003c/strong\u003e \u003c/summary\u003e\n\u003cbr\u003e\n\n\nAs a `user`, I should be able to `change the number of events displayed` so that `I can get a list of a specific number of events`.\n\n```\nScenario 1: When user hasn’t specified a number, 32 events are shown by default. \n\nGiven the user is on the upcoming events page\nWhen the user hasn’t specific a number of events to display\nThen the list of events should be 32 events shown by default\n```\n```\nScenario 2: User can change the number of events displayed. \n\nGiven the user is on the upcoming events page\nWhen the user selects a different number of events to display\nThen the list of events should change to display the number of events the user has selected\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003cstrong\u003eFeature 4: Use the App When Offline \u003c/strong\u003e \u003c/summary\u003e\n\u003cbr\u003e\n\n\nAs a `user`, I should be able to `use the app offline` so that `I can get still get a list of upcoming events when I am not connected to the internet`.\n\n```\nScenario 1: Show cached data when there’s no internet connection. \n\nGiven the user is viewing the upcoming events page\nWhen the user has no internet connection\nThen the list of events should still be shown using the most recent cached data AND the user should seen a message indicating data is still being shown offline\n```\n```\nScenario 2: Show error when user changes search settings (city, number of events). \n\nGiven the user tries to edit the search filter\nWhen the user has no internet connection\nThen the user should receive an error stating that they are offline AND this action can not be performed with no internet connection\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003cstrong\u003eFeature 5: Add an App Shortcut to the Home Screen\u003c/strong\u003e \u003c/summary\u003e\n\u003cbr\u003e\n\n\n\nAs a `user`, I should be able to `add the app to my home screen` so that `I can easily access the app as a shortcut from my home screen`.\n\n```\nScenario 1: User can install the meet app as a shortcut on their device home screen. \n\nGiven the user is on the meet app in their web browser\nWhen the user adds the app as a shortcut on their device\nThen the user should have a shortcut icon on their home screen to access the meet app\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003cstrong\u003eFeature 6: Display Charts Visualizing Event Details\u003c/strong\u003e \u003c/summary\u003e\n\u003cbr\u003e\n\n\nAs a `user`, I should be able to `display charts with event details` so that `I can easily visualize and understand event data`.\n\n```\nScenario 1: Show a chart with the number of upcoming events in each city.\n\nGiven the user is on the upcoming events page\nWhen the user clicks on display chart details\nThen the user should see a pie chart visualizing the popularity of event genres and a scatterplot showing how many events will take place in each location\n```\n\n\u003c/details\u003e\n\n## Technologies \u0026 Dependencies 🛠️\n### Frontend\n\u003ca href=\"https://reactnative.dev/\"\u003eReact\u003c/a\u003e: A JavaScript library to create user interface components. This application integrates object-oriented programming principles for handling warning messages, as well as loop and state management for the events list.\n\n\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps\"\u003eProgressive Web App\u003c/a\u003e (PWA): Service workers for offline funcionality, and a manifest JSON for home screen installation.\n\n### UI Components\n\u003ca href=\"https://recharts.org/en-US/\"\u003eRecharts\u003c/a\u003e: React library for creating interactive charts.\n\n### Backend\n\u003ca href=\"https://aws.amazon.com/pm/lambda/?gclid=Cj0KCQiA_9u5BhCUARIsABbMSPuqN4VQDI0LuzqhRIJwH0xkshl_XEL9TAR4XisgeEclmbxD9nsy4rgaApBwEALw_wcB\u0026trk=73f686c8-9606-40ad-852f-7b2bcafa68fe\u0026sc_channel=ps\u0026ef_id=Cj0KCQiA_9u5BhCUARIsABbMSPuqN4VQDI0LuzqhRIJwH0xkshl_XEL9TAR4XisgeEclmbxD9nsy4rgaApBwEALw_wcB:G:s\u0026s_kwcid=AL!4422!3!651212652666!e!!g!!lambda!909122559!45462427876\"\u003eAWS Lambda\u003c/a\u003e: Serverless functions for handling authentication and API interactions.\n\n\u003ca href=\"https://datatracker.ietf.org/doc/html/rfc6749\"\u003eOAuth2\u003c/a\u003e: Handles user authentication securely, allowing users to sign in via Google without the need to create a separate account.\n\n### API\n\u003ca href=\"https://developers.google.com/calendar/api/guides/overview\"\u003eGoogle Calendar API\u003c/a\u003e: Fetches event data to display in the app to users.\n\n\n### Testing\n\u003ca href=\"https://jestjs.io/\"\u003eJest\u003c/a\u003e: Testing framework for unit and integration testing ensuring all components work as expected.\n\n\u003ca href=\"https://cucumber.io/\"\u003eCucumber\u003c/a\u003e: Testing framework for writing acceptance testing in Gherkin syntax.\n\n\u003ca href=\"https://pptr.dev/\"\u003ePuppeteer\u003c/a\u003e: End-to-end testing library for automating the browser.\n\n## Demo 🎥\n\nhttps://github.com/user-attachments/assets/a57406f6-1ac2-422a-8db2-c9095b296309\n\n##\n[Back to top](#top)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonicaalyssa%2Fmeet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonicaalyssa%2Fmeet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonicaalyssa%2Fmeet/lists"}