Breadcrumbs is a web application designed to let foodies search restaurants, track their eating history, as well as connect with friends. If you have trouble remembering what restaurants you’ve been to before, or what you’ve ordered at a restaurant that was good, then Breadcrumbs is your go-to app.
Search for restaurants by name or address. With the queried results, you can select and add a restaurant that you have visited to your own personal map, leaving behind a trail of breadcrumbs for your restaurant history. Connect with friends to see where your friends have dined at and what dishes they've tried. Breadcrumbs is a social media network built for foodies.
Breadcrumbs is created with love, sweat, and tears by Ashley Hsiao. You can connect with Ashley by email, LinkedIn, or Twitter.
Front-end: HTML5, CSS, Bootstrap, Javascript, jQuery, AJAX
Back-end: Python, Flask, Jinja2, PostgreSQL, SQLAlchemy
Libraries: SQLAlchemy-Searchable
APIs: Yelp, Google Maps
- Users can search for a restaurant by entering the name or address into the search engine at the top of the nav bar, and see all search results
- Users can add a restaurant to their restaurant history by clicking the "Leave A Breadcrumb" button on a particular restaurant's info page
- The restaurant info page also shows which of their friends have visited this particular restaurant and more
- Users can access their profile page (and other users' as well) to see their restaurant history as a trail of breadcrumbs on a map and on a list
- Users can click on the Friends tab to see all their friends, any pending friend requests, and search for friends
- If they are not friends already, users can send a friend request to another user by clicking on the "Add Friend button"
- If there is a request pending or if the two users are friends, the button will show the appropriate connection status between the two users
- Users can see all pending friend requests that they have received and sent to accept or delete
- Breadcrumbs is also accessible by mobile!
If you would like to run Breadcrumbs locally, please follow these instructions. Otherwise, please check out the deployed version of Breadcrumbs here: ah-breadcrumbs.herokuapp.com.
Install PostgreSQL (Mac OSX).
Postgres needs to be running in order for the app to work. It is running when you see the elephant icon:
Add /bin directory to your path to use PostgreSQL commands and install the Python library.
Use Sublime to edit ~/.bash_profile
or ~/.profile
, and add:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin/:$PATH
Clone this repository:
$ git clone https://github.com/ashleyhsia0/breadcrumbs.git
Create a virtual environment and activate it:
$ virtualenv env
$ source env/bin/activate
Install the dependencies:
$ pip install -r requirements.txt
Get an API key from Yelp and store in a secrets.sh or use a JSON per the Yelp API documentation, but make sure to put the file in your .gitignore
.
Run PostgreSQL (make sure elephant icon is active).
Create database with the name breadcrumbs
.
$ createdb breadcrumbs
Seed the database with restaurants:
$ python seed.py
Finally, to run the app, start the server:
$ python server.py
Go to localhost:5000
in your browser to start using Breadcrumbs!
Unit Tests, Integration Tests, and Selenium Tests have been implemented.
Coverage is currently at 82%.
To run tests, run the following command line:
$ coverage run --omit=env/* tests/tests.py
To get a coverage report, run the following:
$ coverage report -m
For an HTML version of the report, run the running:
$ coverage html
$ open htmlcov/index.html
To perform the Selenium tests, run the following command line:
$ python tests/seltests.py
Note: Further tests still to be added, as the sample data needs to include connections and restaurant visits. Also the Selenium tests should check for UI functionality once a user has been logged in.
Breadcrumbs has been deployed. Check it out here: ah-breadcrumbs.herokuapp.com
###Features
- Users can see a feed of friends' recent restaurant activity upon logging in
- Users can upload food pictures for each breadcrumb (restaurant visit) and leave comments
- Users can accept or reject Friend Requests and unfriend their Friends
- Users can message their Friends
###Other:
- More tests!
Ashley Hsiao is a Software Engineer living in Vancouver, BC. Email | LinkedIn | Twitter.