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!
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.
All the test cases are located in
- Jubin Soni
- [email protected]
This project is hosted on Heroku: feel free to create accounts https://cornershop-meals-app.herokuapp.com/signup/
and test the app.