Cornershop-Meals
Cornershop meals is a meal management app built using Python-Django that provides a very convenient way of meal reservation to employees. This app has following features:
- There is a custom Login page, Signup page, Employee profiles and Admin panel.
- Admin can create a menu with various options for employees to choose, modify the menu and send Slack messages to all the employees in the company.
- Employees can login using their credentials, view the menu and make their food selection. Employees cannot make a selection after 11 AM ET, they also have option to write custom notes to modify their meals or mention their diet restrictions.
- Employees can only view their own selection, not the selection of other employees.
- Admin can view selections of all the employees.
Go to the menu page to see what's in today's menu and use the app!
Setup
This app is deployed on Heroku https://cornershop-meals-app.herokuapp.com. Please follow below steps if you would like to setup the project locally.
-
Clone this repository
$ git clone https://github.com/jubins/Cornershop-Meals.git
-
Create a virtual env with Python 3
$ virtualenv venv $ virtualenv source venv/bin/activate
-
Install dependences
$ pip install -r requirements.txt
-
I am using Postgres database for storing the data, Redis as message broker, Celery for asynchronous slack messaging and Slack webhook. Configure these environment variables in
corenershopmeals/env.ini
. -
Apply Django migrations
$ cd cornershopmeals $ python manage.py makemigrations $ python manage.py migrate
-
Start Django server
$ python manage.py runserver
-
Run Celery (in a different terminal window)
$ celery -A cornershopmeals worker -l info
-
Go to
localhost:8000/signup
to create a food admin employee account that will be the food admin, by checkingis_staff
option and make sure to choose goodusername
andpassword
otherwise Signup will not occur. You can also create a superuser.$ python manage.py createsuperuser
-
Go to
localhost:8000/login
to create some employee accounts and use the app. -
Slack notifications are sent on a channel. Please configure your slack
WEBHOOK_URL
incorenershopmeals/env.ini
to test slack notifications.
Tests
All the test cases are located in
Contact
- Jubin Soni
- jubinsoni27@gmail.com
Demo
This project is hosted on Heroku: feel free to create accounts https://cornershop-meals-app.herokuapp.com/signup/
and test the app.