Skip to content

A full-stack Flask web app that lets foodies search restaurants, track their eating history, while also connecting with friends

Notifications You must be signed in to change notification settings

itsahsiao/breadcrumbs

Repository files navigation

BREADCRUMBS

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.

Table of Contents

  1. Technologies
  2. Features
  3. Installation
  4. Testing & Coverage
  5. Deployment
  6. Looking Ahead
  7. Author

Technologies

Front-end: HTML5, CSS, Bootstrap, Javascript, jQuery, AJAX

Back-end: Python, Flask, Jinja2, PostgreSQL, SQLAlchemy

Libraries: SQLAlchemy-Searchable

APIs: Yelp, Google Maps

Features

Search for a restaurant

  • 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

Add a restaurant visit

  • 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

See your own personal map for your restaurant history

  • 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

Connect with friends

  • 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

Responsive design (iPhone 6)

  • Breadcrumbs is also accessible by mobile!

Installation

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.

Prerequisite:

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

Set up Breadcrumbs:

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!

Testing & Coverage

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.

Deployment

Breadcrumbs has been deployed. Check it out here: ah-breadcrumbs.herokuapp.com

Looking Ahead

###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!

Author

Ashley Hsiao is a Software Engineer living in Vancouver, BC. Email | LinkedIn | Twitter.

About

A full-stack Flask web app that lets foodies search restaurants, track their eating history, while also connecting with friends

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published