Coffeteria is a SPA (single page application) that organizes ordering from our institute's cafeteria, where the admin can add products and categorizes them, he can manage his running order and checks. The user can place an order if he is registered or he can log in using his favorite social media account.
The project is developed using PHP (Laravel Framework) with MySQL DBMS for the back-end, and Vue.js Framework for the front-end.
You can find a demo for the project deployed in the following link:
http://coffeteria.herokuapp.com/
To use and run this project you need to:
Before executing the following commands, please make sure that you have all dependencies.
1- Run the following command to install the project locally.
git clone https://github.com/hossamkhalil01/coffeteria.git
cd coffeteria/
npm install
npm run dev
you may also run the following to start the live watch for laravel-mix so that you don't have to run dev on every change.
npm run watch
2- Apply the database migrations First you will have to add your database credentials as mentioned in configurations section
php artisan migrate
3- Run the server
php artisan serve
4- Go to the browser and go to the following URL: http://localhost:8000
For the project to work as expected, you will have copy the .env.example file with a name of .env to fill it with your own credentials.
The following variables represents your applications' configurations where you can setup the application name, URL or debug mode.
The URLs are used by the front-end to send requests to the back-end, while the application name is used by Laravel to use as a data whenever needed.
Note: you'll have to edit bot APP_URL and MIX_APP_URL with your application's URL by default it's set to the localhost.
APP_NAME=Coffeteria
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8000
MIX_APP_URL=http://localhost:8000
LOG_CHANNEL=stack
LOG_LEVEL=debug
For your database you need to fill the following variables with the credentials of your database.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Mail server is used for various reasons such as sending verification emails or password reset emails to users. by default it's configured to use gmail with smtp server on port 587.
You may want to change those values to suite your needs as well as putting in the email credentials such as username and password.
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="${APP_NAME}"
The application uses the social media accounts as a way to authenticate users, currently three providers are supported (Facebook, GitHub and Google).
If you want to use this feature you will have to insert your social app ID and Secret Key to the following variables.
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
FACEBOOK_CLIENT_ID=""
FACEBOOK_CLIENT_SECRET=""
- Admins only are made by other admins which means the first admin user has to be created manually (through tinker shell or database directly)
- Allowing payment system so that user don't have to always pay in cash.
We are a team of software engineering students at ITI intake 41, Smart Village branch, Open-source application track. We built this application for learning purposes which is free to share and use.
- Hossam Khalil
- Leena Sherif
- Mai Maher
- Sarah Magdy