YesChef! is an integrated point-of-sale and inventory management system for restaurants built as an Epicodus class project.
YesChef! demonstrates object-oriented programming with Java, routing using the Spark web framework, CRUD and database querying with PostgreSQL.
- Create, manage, and delete ingredients, deliveries, menu items, and orders.
- Creating an order automatically deducts the ingredients required for that order from the inventory.
- Unique views for kitchen, managers, and servers.
- Kitchen can mark orders as 'up' (ready to serve); servers can mark orders as paid or complete.
- Orders can be 're-fired' if they are sent back or ruined and the inventory will be debited again.
- Users can see an '86 list' of dishes that are not available due to lack of ingredients in inventory.
- Creating an order deducts ingredients from the inventory, using SQL queries joining multiple tables.
- Use of MetroUI CSS library provides a more familiar and mobile-first UI.
Make sure you have Java, PostgreSQL, and Gradle installed, then clone this repository.
- Open
postgres
andpsql
- In
psql
, create a new database named kitchen:CREATE DATABASE kitchen;
- Navigate to the project directory in your terminal and populate the database:
psql kitchen < kitchen.sql
- Make any necessary changes to the
OWNER
of the kitchen database and its tables inpsql
In kitchen\main\java\DB.java
, change the null
parameters to the username and password of the OWNER
of your kitchen database, or otherwise alter your psql authentication configuration to allow this program to access the database.
Navigate to your kitchen directory and gradle run
.
Java, Spark, JUnit, FluentLenium, Velocity, PostgreSQL, Gradle, MetroUI CSS library
MIT License. See LICENSE.md for details.
Copyright (c) 2016 Jeffrey Ruder, Chris Siems, and Midori Bowen