Skip to content

TheKiddos/Restaurant-SyS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Restaurant-SyS

Semester project for Tishreen university.

Introduction

This project aims to show various methods of how software can help in managing and delivering a better restaurant experience for both employees and customers alike.

It was created as a part of a 4th year semester project at Tishreen University (Software Engineering and Data Systems Department).

Structure

We divided the system to 4 main sub-modules:

  • Manager: holds the REST API, Telegram Bot, Payroll System and Restaurant Management System.
  • Recommendation_Engine: contains a basic food and beverages recommendation algorithm, also contains some experiments with these algorithms in the Sandbox folder.
  • Waiter: A Flutter app used to let the customer send orders from to the manager, making the waiter job easier.
  • Website: Small restaurant website can be used for deliveries, rating food and beverages and reserving tables.

Requirements

Unfortunately since this project uses multiple languages and frameworks, there are many requirements for each. Most of them can be seen in a sub-module setting file (eg: Maven POM for Manager) and pubspec file for flutter. So we are not going to list the requirements here.

Notes

You can run each sub-module separately you only need to create the database (you can create it using laravel migrations or with the provided MySQL script). so you need to install MySQL and configure the database connection settings for Manager, Website and Recommendation Engine. Or you can install Wampserver and create the database on it's MySQL server.

The Waiter module depends on the REST API so you need to edit the IP of the REST API to yours.

two files are missing from this repo for security reasons:

  • auth.dart located in Waiter/lib/auth.dart which contains REST API authentication configurations and the website IP. So you need to create it:
import 'dart:convert';
import 'dart:io';

const String website = //website_url;
const String _username = //rest_username;
const String _password = //rest_password;
const String manager_api = //rest_url;
final String _basicAuth =
    'Basic ' + base64Encode(utf8.encode('$_username:$_password'));

final headers = {HttpHeaders.authorizationHeader: _basicAuth};
final jsonHeaders = {
  HttpHeaders.authorizationHeader: _basicAuth,
  "content-type" : "application/json",
  "accept" : "application/json",
};
  • application.yml located in Manager/src/main/resources/application.yml which contains Telegram BOT Token and Bot Email account settings:
bot:
  token: your_token_here
  username: bot_name_here


spring:
  mail:
    host: smtp.gmail.com
    port: 587
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
    username: your_bot_email_here
    password: your_bot_password_here
};

Credits & References:

How to build a Restaurant Recommendation Engine (Part-1)

Recommendation based on Food Review

Baeldung | Java, Spring and Web Development tutorials

Spring Framework 5 - Beginner to Guru By John Thompson

Agile Software Development, Principles, Patterns, and Practices: Pearson New International Edition By Robert C. Martin

Clean Code: A Handbook of Agile Software Craftsmanship By Robert C. Martin

####Icons made by: iconixar Freepik Icongeek26 Flaticon