dario glasl
Software Engineering Project

Spontaneous

Autor:innen
Mirio EggmannJasmin FitzDario GlaslSamuel MaissenNick Wallner
Betreuung
Thomas Kälin
Station
Bachelor of Science in Informatik, OSTNote 6.0

Abstract

Spontaneous is an innovative web application designed to address the challenge of making decisions quick and easy for individuals and groups. The main problem solved is the difficulty in choosing what activity to engage in or where to eat. The objective was to simplify the decision-making process, encourage people to try new things and step out of their comfort zone.

Vision

The app is called "Spontaneous" and it helps users find fun things to do and nice restaurants on the fly. With a simple interface some basic criterias can be choosen, in order to get a random propose for an activity or a place to eat. The app should make it easy to try something new with the condition the user aswell using it as considered.

Approach

To solve this problem, a user-friendly interface was developed. It allows users to input basic criteria and receive random proposals for activities. The proposed activities can easily be shared with friends to facilitate group decision-making. Additionally, it is possible to log in with a Google account to save favorite activities and view past proposals.

Activity diagram of the proposal algorithm: load places from Google, apply checks, fall back to a wider search, pick a random activity and write the history
Activity diagram of the proposal algorithm: load places from Google, apply checks, fall back to a wider search, pick a random activity and write the history

Tech-Stack

The tech stack used in the development of Spontaneous consists of a C# .NET backend, a React and Typescript frontend, as well as a MongoDB for storage. GitLab was used for development collaboration and running the software pipeline, ensuring efficient development processes. Hosting is done over Kubernetes on a cluster in the Google Cloud Platform, providing scalability and reliability for the application.

C4 container diagram: React web application, .NET API backend, MongoDB database, Google Auth and Google Places API
C4 container diagram: React web application, .NET API backend, MongoDB database, Google Auth and Google Places API
Sharded MongoDB setup: two routers, three config servers, two shards with three nodes each, account and visits collections
Sharded MongoDB setup: two routers, three config servers, two shards with three nodes each, account and visits collections
Hosting on Google Kubernetes Engine: three nodes in US Central with 2.5 CPU and 4 GB RAM, 23 pods, separate dev and prod environments
Hosting on Google Kubernetes Engine: three nodes in US Central with 2.5 CPU and 4 GB RAM, 23 pods, separate dev and prod environments

Result

The existing solution provides a solid foundation for possible future development and improvements. Potential consecutive projects could include user preferences that could be saved in the account, some statistics about your usage or the possibility to follow your friends and see what they are doing. However, there are no plans to continue the project at this time. In conclusion, Spontaneous offers a promising solution to the challenge of decision-making, and we enjoyed developing, testing and finishing it together as a team.

Spontaneous web app: choose category, radius, opening hours and location, then get an activity proposed
Spontaneous web app: choose category, radius, opening hours and location, then get an activity proposed

Downloads