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.
- install Docker Compose;
- run
docker-compose up -d
in the root of the application folder, wheredocker-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.
There are several possible ways to design this application. It is currently designed as below, taking servarl factors into considerations:
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.
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 |
- 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.