Skip to content

A full stack application that connects to the meetup.com RSVP stream and display them on a heatmap

Notifications You must be signed in to change notification settings

bishengliu/meetup_guider

Repository files navigation

Meetup Guider App

A simple application, that connects to connect to the meetup.com RSVP stream, to retrieve, process and display the most popular meetup locations. The backend is a .net core RESTful API app and frontend is a react app.

Start the application

  • install Docker Compose;
  • run docker-compose up -d in the root of the application folder, where docker-compose.yml is located;
  • backend api documentation: http://localhost:8080;
  • backend api basic healthcheck endpoint: http://localhost:8080/health;
  • frontend ui: http://localhost:80; NB: it will normally take few minutes to collect sufficient data from meetup.com;
  • mssql database: 127.0.0.1,1433. demo credentials are in the docker-compose.yml;
  • rsvp loader: this stand-alone application will automatically connect to the RSVP stream. If no data are collected, it is recommended restarting this container.

Meetup guider demo

meetup guider app demo

Application design

There are several possible ways to design this application. It is currently designed as below, taking servarl factors into considerations: meetup guider app design

  • RSVP loader is a small .netcore application that connects to the RSVP stream and it saves the rsvps into a relational database (mysql in this case);
  • db: a simple mysql database that stores and processes (using views) the rsvp;
  • Meetup Guider Backend is a .net core RESTFul API application;
  • Meetup Guider Frontend is a small react app that displays rsvps on an interactive geo-heatmap.

Project file structure

Folder/File Description
meetupguider-api contains all the source code for backend api and rsvp loader
meetupguider/src/RSVPLoader .net core console that connects to the RSVP Streem
warehouse-api/src/Warehouse.API .net core webapi application
meetupguider/src/Warehouse.Entities entity/database design
meetupguider/src/Warehouse.Services meetupguider services
meetupguider-api/tests/meetupguider.ServiceTests unit tests for meetupguider services
meetupguider-ui contains all the source code for frontend react app
docker-compose.yml bring up the whole app as docker containers
dockerfiles dockerfiles, env and db init script
dockerfiles/loader.Dockerfile rsvp loader docker file
dockerfiles/api.Dockerfile api docker file
dockerfiles/ui.Dockerfile react ui docker file
dockerfiles/demo.env env for api server
dockerfiles/mssql.Dockerfile mssql server dockerfile
dockerfiles/db mssql init script

furture improvements

  • more tests for both backend and frontend!!!
  • if required, the react app can "auto refresh" the heatmap to provide a "live" heatmap.
  • prepare the CI/CD pipeline (for example Github actions, Jenkins/Ansible etc).
  • logs and performance monitoring.

About

A full stack application that connects to the meetup.com RSVP stream and display them on a heatmap

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published