🍕 Cloud-Based Reservation and Food Order System 🍕
A project for
Software Engineering
courses of Computer Science at University of Salerno.
"The Spoon" is a web-application based on Java Spring that provides a cloud-based reservation and food order system. It integrates Telegram and POS APIs, was created for the Software Engineering Exam project at the Univerisity of Salerno.
This WebApp allow users to reserve a table or order food in their favorite restaurants, thanks to the integration with Telegram API all the notifications regarding food order or reservations can be smoothly sent through one of the most popular messaging apps, furthermore, by using the POS APIs, users will be able to pay for their order conveniently from the TheSpoon totem or on their devices.
Build with Java, Javascript, MySQL and love ❤️
- Alessandro Pascarella - Developer - Pascareddum
- Jacopo Gennaro Esposito - Developer - jacopoesposito
- Vincenzo Catone - Developer - v1n555
- Process documentation can be found in DOC directory. (In Italian 🇮🇹)
- TheSpoon software documentation, including: TheSpoonAPI, JaCoCo coverage and JavaDoc can be found here. (In English 🇬🇧)
The Spoon consists of three main components: TheSpoon (Rest Server API), TheSpoonFrontend (SolidJS Frontend) and TheSpoonBot (Telegram Bot Server)
- JDK 21
- Maven
- Spring Boot
- A Telegram bot created on Telegram and its API key/token, installation guide here.
- A developer account on Stripe and its API key.
- MySQL, installed and configured.
- First make a clone of the repository
git clone https://github.com/jacopoesposito/TheSpoon.git
mysql -u your-mysql-username -p < thespoon.sql
Note: This guide is for Unix-like system on Windows, you can use the set command instead of export.
- Set the environment variable for the Telegram bot API key:
export TELEGRAMTOKEN=your_telegram_bot_token
Replace your_telegram_bot_token with the actual token obtained from BotFather.
- Set the environment variable for the Stripe API Key:
export STRIPEKEY=your-stripe-api-key
Replace your-stripe-api-key with the actual API Key obtained from Stripe Developer Dashboard.
- Set the environment variable for the Stripe Webhook Secret
export WEBHOKSTRIPESECRET=your-stripe-webhook-secret
Replace your-stripe-webhook-secret with the actual Webhook secret obtained from Stripe Developer Dashboard.
- Set the environment variable for the Database Password
export DBPASS=your-mysql-password
Replace your-mysql-password with the actual Password of your database.
- Set the environment variable for the JWT Secret.
export SECRETJWT=your-jwt-secret
Replace your-jwt-secret with a Base64 encoded 32 character string
- Move to the project directory and use maven to build it
mvn clean install
java -jar target/your-application.jar
-
Start TheSpoonBot, companion Telegram Bot to receive notification regarding food order and reservation, installation guide here
-
Start TheSpoonFrontend, SolidJS frontend for TheSpoon, installation guide here
-
Have fun!
- Java - The programming language used for the back-end development.
- Maven - The dependency management tool.
- Spring Framework - The java framework used (MVC/Web).
- HTML5 - The markup language used for the front-end.
- Javascript - The programming language used for the front-end development.
- SolidJS - The js framework used for the front-end.
- TailwindCSS - The CSS framework used for the front-end.
- TelegramBotAPI - The Telegram Bot Api used to build TheSpoonBot.
- StripeAPI - The Stripe API used to enable payments.
- MySQL - The RDBMS used for the persistent data.
- Love ❤️