Organise your lunch break to socialize with friends and colleagues.
Our small group of computer science students are developing the Lunch Planner during the SEP (Software engineer project), at the university of applied sciences Mannheim. We decided to advance our project from beeing a software, only in use by companies to beeing a open source software, usable for all. We had the luck to work together with a high motivated company, that spent very much time supporting us and encouraged us to take our creativity to the next level.
Have fun and find some new friends!
The Core-Features this Web-Application is based on, are:
- create events
- invite friends or colleagues to events
- get a push notification
- write comments in events
- add tasks to events
- subscribe to locations
This project is divided in two parts
The backend is a stateless REST-API written in Java with the framework Spring Boot.
The frontend is a responsive Web-APP written in JS with the framework React.
When you clone the repo it will not work out of the box. You need to set some parameters:
Open the file frontend/lunchplanner/src/Config.js
and change HOST
to the url of your
backend-server and FRONTEND_HOST
to the url of your frontend-server.
Change in src/main/resources/application.properties
the fields spring.datasource.url
spring.datasource.username
spring.datasource.password
and apply src/main/resources/quart-table.sql
to your database.
Change in src/main/resources/application.properties
the field upload.location
to an absolute path beginning and ending with /
.
At this location all uploaded files will be saved.
Push Notifications are send with Firebase-Cloud-Messaging.
To get this work you have to create you an developer account and follow this
instruction to update the fields configFirebase
and publicKey
in src/Config.js
.
Once you have created a Firebase console project and downloaded a JSON file with your service account credentials, save this file as lunchplanner-private-fcm-config.json
in src/main/resources
.
The frontend is with csp-meta-tags secured to prevent Cross-Side-Scripting. Update this meta-tag
in the public/index.html
to your needs.
You need these software to run the Foodastic APP.
Clone the repo to your locale machine.
git clone https://github.com/GreenByte-group/Lunch-Planner
and change to the created folder
cd Lunch-Planner
If you are lazy just run
chmod +x install.js
chmod +x gradlew
./install.js
Or you build and start the servers yourself.
The default port is 8080. Your can change this in src/main/resources/application.properties
by
changing the value of the field server.port
You can build the backend with gradle. Just run
chmod +x gradlew
./gradlew build
A executable jar is now in build/libs
and can be executed with
java -jar build/libs/jarName.jar
The frontend is in the folder frontend/lunchplanner
. Change your working directory to it
Please check the configuration section to set your backend-server and to make the notifications work correctly.
cd frontend/lunchplanner
Now we build a version that we can be served over a web-server.
yarn install
yarn build
This creates an optimized production build in the folder build
.
Copy the content of this folder into your web-root or start a new server by typing
npm install -g serve
serve -s build -l <PORT>
This project is licensed under the HSMannheim License - see the LICENSE.md file for details
Acknowledgments We want to thank VSFExperst and our professors for helping us ans sharing theire knowledge to improve ourselves