Skip to content

Repository files navigation

CPSC 304 Kitchen Database

Project Overview

This project was a full-stack web application developed with two other people for CPSC304 at UBC. The Oracle database for the app was originally hosted on UBC's servers. I migrated the Oracle database to be hosted on a Docker image so the application could still run on a local computer. This project is only configured to run on a Windows machine.

Getting Started

First, download the basic and SQL*Plus instant client packages from Oracle.

Then, create an .env file that has

ORACLE_HOST=localhost
ORACLE_PORT=1521
ORACLE_DBNAME=XE
ORACLE_DIR={absolute path to Oracle Instant Client}                              
ORACLE_USER={your set app user}
ORACLE_PASS={your set app pass}

Modify the path in local-start.cmd to point to the Oracle Instant Client too.

Then, set up the docker image

docker run -d -p 1521:1521 -e ORACLE_PASSWORD=MySecurePassword123 gvenzl/oracle-xe

Wait about ~30 seconds for the Docker container to fully initialize before trying to connect to the database.

Create the app user, replacing user and password with your own that match in the .env file

CREATE USER {USER} IDENTIFIED BY {PASSWORD};
GRANT CREATE SESSION, RESOURCE, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, UNLIMITED TABLESPACE TO {USER};

Run .\local-start.cmd in one terminal which runs the backend on http://localhost:10000

Then run the frontend in another terminal

npm run dev

You should be able to view the application at http://localhost:3000

What is the domain of the application?

This application is for a restaurant test kitchen. It helps with menu development for restaurants. The domain is contained within the entirety of the kitchen plus the suppliers. The application also contains the recipes for each menu item which are provided by the chefs. We have chefs who develop recipes which take Ingredients, and those Ingredients will all be supplied by suppliers. Each recipe requires equipment to be made into menu items. The recipes are used by the chefs and they make menu items, and those menu items are either foods or drinks. Each menu item can also be a part of a combo, or have add-ons such as fries or drinks.

What aspects of the domain are modeled by the database?

We have chefs who develop recipes which take ingredients, and those ingredients will all be supplied by suppliers. Each recipe requires equipment to be made into menu items. The recipes are used by the chefs and they make menu items, and those menu items are either foods or drinks. Each menu item can also be a part of a combo, or have add-ons such as fries or drinks.

Database specifications

What functionality will the database provide? People using this database will be able to look up all the menu items that have been created. They will have access to all the necessary information to put together a menu, such as the kind of food or beverage, the price, and possible combos and add-ons. They will also be able to look up all the necessary information to create those menu items, such as the recipe, the required equipment, the ingredients, and the suppliers of those ingredients. Finally, they will be able to look up the chefs who created each recipe as well as which menu items they make and recommend. All of these features will allow anyone to easily put together a complete menu.

About

A website that stores recipes and related kitchen domain items in a Oracle database.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages