MySports is the final group project which was created in order to complete the Berlin TechLabs Bootcamp. The team disciplines included UX/UI design, Web Development, and Data Science. All disciplines were put into practice to develop MySports. MySports is an event creation platform specifically aimed to match users into teams for various sports. Users are matched based on search criteria and filters and then are able to communicate in an integrated event chatroom to discuss details. A deployed version can be found here:
https://blooming-ridge-65166.herokuapp.com/login
The project is still in production. MVP restrictions include:
- Event location is restricted to popular Berlin districts.
- Event type list is restricted to Basketball, Volleyball, Football, Running, Yoga, Table-Tennis, and Bouldering.
- Data Science matching and optimization added but not implemented yet.
The aim is to remove all mentioned restrictions as future versions are produced.
Clone down this repository. You will need node, and npm/yarn installed globally on your machine.
Installation:
npm install
cd my_sports_front
yarn
Run:
node index.js
Open a new terminal tab and then:
cd my_sports_front
yarn start
Please make sure to have MongoDB installed to run locally. Default local port for mongo is 27017.
To Visit App:
localhost:3000/login
Ideation Session: https://miro.com/app/board/o9J_lbXvb6I=/
Figma Prototype: https://www.figma.com/proto/f1xKrE8iHwOKpr0qSLL2fb/MYSports-Prototype?node-id=541%3A307&viewport=1190%2C709%2C0.060248423367738724&scaling=scale-down
Figma Link: https://www.figma.com/file/f1xKrE8iHwOKpr0qSLL2fb/MYSports-Prototype?node-id=487%3A4363
Since the project My-Sports itself is not a traditional Data Science project, some improvisation was required. While help with structuring the Database in the backend was imperative, there were no real usage data to handle. As the app/website would be set up from scratch with no real users or other (external) datasets it was decided to set up a fake user-database. Based on this you will find python code for imaginary events with the ultimate goal in mind to have a matching algorithm to match users with the type of (sports)events that would be interesting for them.
Prerequisites
Before you continue, ensure you have met the following requirements:
- You have installed the latest version of Python.
- You have installed the necessary modules datetime, random, names, pandas, matplotlib and seaborn.
There are four runnable python scripts, namely user_gen.py, event_gen.py, stats.py and reco.py.
The first one to execute is user_gen.py, as it serves as basis for the other two scripts. Its output is a dataframe of fake users which is dependent on the number you type in and confirm as the programme asks: Select a number of fake user you want to generate: Do enter a number and confirm with enter. The output is created in csv and json format within the same folder.
The second script event_gen.py reads the csv file created by user_gen.py. It works quite similar to the first script. You will again have to type in the number of events you want to generate. Note: The input can not extend the number you typed in for user_gen.py. The output is again a dataframe which is exported in csv and json format (same folder).
The third script, stats.py, lets you visualize the distribution of male and female fake users generated as well as their respective height and weight.
Reco.py generates recommandations of best active games. It works by generating a matrix with a row for each user and the best available active game in each columns. Please note that this last script is not complete yet.
The technologies implemented in this project include Figma, Express, Node, Python, React, Redux, MongoDB, Nodemailer, Socket.io, PassportJS, Axios, MomentJs, Bootstrap, and SCSS.
- Alex Neuschäfer - UX/UI Design
- Ashneil Sakhrani - Web Development / Project Lead
- Barney Riley - UX/UI Design
- Cátia Goncalves - Web Development
- Jan-Henrik Pott - Data Science
- Kwame Agard - Web Development *
- Samy Bouras- Data Science