krtierney / dreamteam

Simple app built to practice using Google Maps APIs and Node.js

Home Page:https://make-good-time.herokuapp.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make Good Time

Make Good Time is, ironically, an application about planning one's time wisely. Users can select their interests, then plot a route to up to eight different places in their vicinity. Theoretically, a very nice day can be had by walking around one's neighbourhood to visit a cinema, cafe, book store, etc.

homepage screenshot

index screenshot

Planning

We used Trello for project management, assigning cards to members of the group. Wireframes were created in Adobe Illustrator.

trello screenshot

makegoodtime-phone-version

makegoodtime-web-version

Project Requirements

This project was created for General Assembly's Web Development Immersive (WDI) third project, and only group project assignment. Groups were assigned by the instructional team, and the project had several arbitrary requirements associated with it:

  • Use Mongo & Express to build an API and a front-end that consumes it
  • Create an API using at least 2 models, one of which should be a user
  • Include all major CRUD functions in a RESTful API for at least one of those model
  • Consume your own API by making your front-end with HTML, Javascript, & jQuery
  • Add authentication to your API to restrict access to appropriate users
  • Craft thoughtful user stories together, as a team
  • Manage team contributions and collaboration using a standard Git flow on Github
  • Layout and style your front-end with clean & well-formatted CSS
  • Deploy your application online so it's publically accessible

registration screenshot

Necessary Deliverables

According to the project's requirements, there were several components to include:

  • A working API, built by the whole team, hosted somewhere on the internet
  • A handmade front-end that consumes your own API, hosted somewhere on the internet
  • A link to your hosted working app in the URL section of your Github repo
  • A team git repository hosted on Github, with a link to your hosted project, and frequent commits from every team member dating back to the very beginning of the project

We did achieve each of these goals.

place options screenshot

Build

Technologies

  • Using BCrypt with JSON Web Tokens for authentication
  • Node.js with Express and MongoDB/Mongoose
  • Google Maps APIs: Javascript API, Google Maps Directions Service API, Google Places API.
  • Bower to manage client-side dependencies: Bootstrap, Underscore (for templates), Bluebird (for promises)
  • Mocha, Chai for testing
  • Istanbul for test coverage reporting

Installation Instructions

We're using Node.js with MondoDB on the server-side. Run npm install to install all dependencies. These include express, mongoose, bcrypt, body-parser, morgan and a few others, all included in the package.json file.

plotted route screenshot

Unsolved Problems

Most of our current outstanding issues are around the user experience. The "user favorite" feature was added very late in the build cycle. No wireframes were created for that feature, and insufficient planning went into the design of interactions and user journeys incorporating that feature. Thus, we still have many open tickets on our Trello board to improve this feature. These include:

  • Hiding the user favorite toggle when a user is not logged in
  • Maininting a persistent state for the favorites in the sidebar (i.e., if a user has included a place in their favorites, it should be indicated any time that place is included in a route)
  • Allow users to un-favorite a place from their Favorites view
  • Add links to external resources for each returned result in the route, because an photo and address is insufficient for a user to make an informed decision about each place to visit.

During user testing, it was indicated that the path to "start over" or start creating a new day plan was unclear. We'd also like to add an additional icon to the header for a user to begin a new search directly on the map screen. And, our reset function to clear previously plotted routes is still not working perfectly (markers loaded from previous searches are still displayed when a user initiates a new search).

favorites screenshot

Credits

Our team is comprised of Axel Berdugo, Kaitlyn Tierney, and Andy Xiang-Hua Liu.

About

Simple app built to practice using Google Maps APIs and Node.js

https://make-good-time.herokuapp.com


Languages

Language:JavaScript 62.1%Language:HTML 27.0%Language:CSS 10.9%