Snack Rice - A Rice University servery finder, customized for your needs!

Overview

🍚 Snack Rice

Table of Contents

  1. About
  2. Feature List
  3. 15 Simple Steps
  4. Future Todos
  5. Techstack
  6. Hosting

Quick Info:

Built in under 36 hours, Snack Rice is your go-to place for Rice University's serveries (cafeterias for non-Ricers). Snack Rice combines a Yelp-like website for rating food with a notification system for getting custom recommendations based on distance, quality, and dietary restrictions. With the ability to review all servery food, filter food based on dietary restrictions, and set up custom SMS messages to alert you of your favorite foods, Snack Rice will help you to get the most out of your meal plan.

📚 Feature List:

- Automated tasks to scrape meal information from dining.rice.edu
- Customized meal text notifications using the Twilio API and a Node.js server
	- Dietary restrictions (vegan, vegetarian, gluten free, and more)
	- Proximity from serveries (Google Maps API)
	- Reviews of dishes
	- Notification timing
- Review every dish with star rating and review text
- View weekly future meals
- Option for crowdsourcing data and images if Rice website is incorrect
- Infinite scroll leaderboard of users with the most reviews
- Infinite scroll leaderboard of dishes with the best reviews
- Persistent light/dark themes based off user choice and browser settings

👣 15 Simple Steps to Communicate Between Text, Django, Flask, and Google Maps:

1. User sets up account with Snack Rice
2. User puts in phone number, preferences about walking and food quality, dietary restrictions, and notification timing
3. Django timed task calls notification loop
4. Django calls Google Maps API to determine distances between serveries and default locations
5. Django determines the best choice based on distances, reviews, and restrictions
6. Django sends the best servery choice and menu
7. If user is not in default location, user responds to text
8. Flask server reads text
9. Flask server sends request to Google Maps API
10. Flask texts user detailed location choices based on their input
11. User responds to text with one of the location choices
12. Flask sends text to django with user info and location choice
13. Django calls Google Maps API to get distances
14. Django determines the best choice based on distances, reviews, and restrictions
15. Django sends text with Twilio to user

🔮 Future Todos:

- Add food poisoning alert
- Adding information for calories for each meal
- Suggests what food you should try out in your next adventure - machine learning 😉
- Reviews with markdown and likes
- See where your friends/followers are eating

🤖 Techstack:

- Django (python)
- Django templates (html/css/js/python)
- SQLite
- Flask (python)
- ngrok (Flask on the internet)
- Twilio (sms)
- Google Cloud (Google Maps API)
- Domain.com (domain registration and management)
- Cloudflare (security and performance)

🖥️ Instructions on how to host locally

First, clone the repository.

$ git clone [email protected]/AidanG1/snackRice.git
$ cd snackRice

Then set up your virtual environment and install the requirements.

$ pip install -r requirements.txt

Next apply database migrations

$ python manage.py migrate

Finally, run the website on localhost. Visit localhost:8000 in your browser!

$ python manage.py runserver

To receive notification messages, create environment variables account_sid, auth_token, and msg_service_sid with your Twilio credentials and GOOGLE_KEY with your Google Maps API key. Then open up the flask server.

$ python notification.py

After that, use ngrok to open port 5050 to the internet.

$ ngrok.exe http 5050

Copy the url from ngrok into the Twilio GUI and you are now set up to receive notifications!

Created by Aidan Gerber, Ian Rundle, Karl Hernandez, and Phoebe Scaccia

Owner
Aidan Gerber
Creator of basketballstocks.com and tradethisandthat.com
Aidan Gerber
A beacon generator using Cobalt Strike and a variety of tools.

Beaconator is an aggressor script for Cobalt Strike used to generate either staged or stageless shellcode and packing the generated shellcode using your tool of choice.

Capt. Meelo 441 Dec 17, 2022
Python Monopoly Simulator

Monopoly simulator Original creator: Games Computer Play YouTube: https://www.youtube.com/channel/UCTrp88f-QJ1SqKX8o5IDhWQ Config file (optional) conf

Games Computers Play 37 Jan 03, 2023
take home quiz

guess the correlation data inspection a pretty normal distribution train/val/test split splitting amount .dataset: 150000 instances ├─8

HR Wu 1 Nov 04, 2021
A simple interface to help lazy people like me to shutdown/reboot/sleep their computer remotely.

🦥 Lazy Helper ! A simple interface to help lazy people like me to shut down/reboot/sleep/lock/etc. their computer remotely. - USAGE If you're a lazy

MeHDI Rh 117 Nov 30, 2022
This repository contains each day of Advent of Code 2021 that I've done.

Advent of Code - 2021 I will use this repository as my Advent of Code1 (AoC) repo for the 2021 challenge. I'm changing how I am tackling the problems

Brett Chapin 2 Jan 12, 2022
Another Provably Rare Gem Miner 💎 (for Raritygems)

Provably Rare Gem Miner Go (for Rarity) Pull Request is strongly welcome as I don't know anything about Golang/Python/Web3. Usage Install Python 3.x i

朱里 6 Apr 22, 2022
python scripts to perform coin die clustering (performed on Riedones3D).

python scripts to perform coin die clustering (performed on Riedones3D).

Sofiane 2 Apr 29, 2022
Python Cheat Sheet

Introduction Pysheeet was created with intention of collecting python code snippets for reducing coding hours and making life easier and faster. Any c

CHANG-NING TSAI 7.5k Dec 30, 2022
A modern Python build backend

trampolim A modern Python build backend. Features Task system, allowing to run arbitrary Python code during the build process (Planned) Easy to use CL

Filipe Laíns 39 Nov 08, 2022
Social reading and reviewing, decentralized with ActivityPub

BookWyrm Social reading and reviewing, decentralized with ActivityPub Contents Joining BookWyrm Contributing About BookWyrm What it is and isn't The r

BookWyrm 1.4k Jan 08, 2023
This is a python package to get wards, districts,cities and provinces in Zimbabwe

Zim-Places Features This is a python package that allows you to search for cities, provinces, and districts in Zimbabwe.Zimbabwe is split into eight p

RONALD KANYEPI 2 Mar 01, 2022
This is an implementation of NeuronJ work with python.

NeuronJ This is an implementation of NeuronJ work with python. NeuronJ is a plug-in for ImageJ that allows you to create and edit neurons masks. Image

Mohammad Mahdi Samei 3 Aug 28, 2022
1000+ ready code templates to kickstart your next AI experiment

AI Seed Projects Start with ready code for your next AI experiment. Choose from 1000+ code templates, across a wide variety of use cases. All examples

BlobCity, Inc 98 Jan 03, 2023
Tenda D151 & D301 - Unauthenticated configuration download

Exploit Title: Tenda D151 & D301 - Unauthenticated configuration download (login included)

Ayoub 3 Jul 14, 2022
Schemdule is a tiny tool using script as schema to schedule one day and remind you to do something during a day.

Schemdule is a tiny tool using script as schema to schedule one day and remind you to do something during a day. Platform Python Install Use pip: pip

StardustDL 4 Sep 13, 2021
kodi addon 115网盘

plugin.video.115 kodi addon 115网盘 插件,需要kodi 18以上版本,原码播放需配合 https://github.com/feelfar/115proxy-for-kodi 使用 安装 HEAD 由于release包尚未释出,可直接下载源代码zip包

109 Dec 29, 2022
Simple Wayland HotKey Daemon

swhkd Simple Wayland HotKey Daemon This project is still very new and I'm making new decisions everyday as to where I should drive this project. I'm u

Aakash Sen Sharma 407 Dec 30, 2022
PyPI package for scaffolding out code for decision tree models that can learn to find relationships between the attributes of an object.

Decision Tree Writer This package allows you to train a binary classification decision tree on a list of labeled dictionaries or class instances, and

2 Apr 23, 2022
A brainfuck-based game oriented language written in python.

GF.py STILL WIP Gamefuck.py is a programming language based off brainfuck. It is oriented towards game development, and as such has many commands spec

Xenon 1 Feb 23, 2022
Fithub is a website application for athletes and fitness enthusiasts of all ages and experience levels.

Fithub is a website application for athletes and fitness enthusiasts of all ages and experience levels. Our website allows users to easily search, filter, and sort our comprehensive database of over

Andrew Wu 1 Dec 13, 2021