Skip to content

The Spoon is a web-application based on Java Spring that provides a cloud-based reservation and food order system, which integrates Telegram and POS APIs.

License

Notifications You must be signed in to change notification settings

Pascareddum/TheSpoon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Spoon

GitHub

🍕 Cloud-Based Reservation and Food Order System 🍕
A project for
Software Engineering
courses of Computer Science at University of Salerno.

Introduction

"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 ❤️

Authors

Documentation

  • 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 Ecosystem

The Spoon consists of three main components: TheSpoon (Rest Server API), TheSpoonFrontend (SolidJS Frontend) and TheSpoonBot (Telegram Bot Server)

Requirements

  • 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.

Installation

Clone this repository

  • First make a clone of the repository
git clone https://github.com/jacopoesposito/TheSpoon.git

Run the database script

mysql -u your-mysql-username -p < thespoon.sql

Set Up Environment Variables

Note: This guide is for Unix-like system on Windows, you can use the set command instead of export.

  1. 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.

  1. 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.

  1. 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.

  1. Set the environment variable for the Database Password
export DBPASS=your-mysql-password

Replace your-mysql-password with the actual Password of your database.

  1. Set the environment variable for the JWT Secret.
export SECRETJWT=your-jwt-secret

Replace your-jwt-secret with a Base64 encoded 32 character string

Build the project

  1. Move to the project directory and use maven to build it
mvn clean install

Run it

java -jar target/your-application.jar

Post-installation

  1. Start TheSpoonBot, companion Telegram Bot to receive notification regarding food order and reservation, installation guide here

  2. Start TheSpoonFrontend, SolidJS frontend for TheSpoon, installation guide here

  3. Have fun!

Buid with

  • 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 ❤️

Contributors

License

GNU/AGPL 3.0

About

The Spoon is a web-application based on Java Spring that provides a cloud-based reservation and food order system, which integrates Telegram and POS APIs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published