Skip to content

rbrands/MeetUpPlanner

Repository files navigation

Server-master to slot dev Functions-master to slot dev

MeetUp-Planner

Everything you need to organize and track a "MeetUp", e.g. organizing a group bike-ride.

The first idea for this application came up during "Corona"-time: In order to arrange group bike rides or other "MeetUps" ensuring the traceability of the participants the corresponding tool was missing.

Therefore the following design principles for this web-app are:

  • Easy to use without complex registration and authentication process. Therefore only "keywords" are used as very basic access control.
  • Responsive design, usable on PC and smartphones with all modern browsers (Chrome, Edge, Firefox, Safari) supporting the WebAssembly Standard.
  • Minimal administrative effort: All meetups data should be deleted automatically after the configured time (typically 28 days). Everyone should be able to organize a MeetUp.
  • Availability of "private" MeetUps: The ability to organize a MeetUp and protect it with a "keyword" that can be given to potential participants.
  • Adaptable: The application has a front-end layer implemented with ASP.NET Core Blazor The application logic is provided via serverless Azure Functions. In this way it is possible to use the application layer independently with a different front-end.

About this repository

  • Folder "MeetUpFunctions" has the source code of the Azure Functions used for the backend. The master branch is CI enabled with GitHub Actions and deployed to the slot "dev" of the Azure Functions App.
  • Folder MeetUpPlanner holds the source code of the Blazor WebAssembly and the ASP.NET Core hosting app. The master branch is CI enabled with GitHub Action and deployed slot "dev" of the web application.
    • Client - The Blazor WebAssembly project
    • Server - The ASP.NET Core web backend for the application
    • Shared - Model classes shared with all projects for serializing the objects to JSON

For documentation including deployment instructions see Wiki

References

The application is build on the following technology stack:

Some helpers: Blazored is an excellent colletion with some tools to make the life easier with Blazor. MeetUpPlanner uses the TextEdit and LocalStorage components.

The Blazor Component Library from Radzen provides a comprehensive set of components used by MeetUpPlanner for notification messages and numeric input.

Another handy tool to provide file download in Blazor: https://github.com/arivera12/BlazorDownloadFile

And of course Bootstrap for the responsive design is used.

Contributors