Code Monkey home page Code Monkey logo

breadcrumbs's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.