Coder Social home page Coder Social logo

mysfmovies's Introduction

mysfmovies

###SF Moives### A service that shows on a map where movies have been filmed in San Francisco. The user can filter the view using autocompletion search.

![SF Movies v1.0] (https://github.com/zwlego/mysfmovies/blob/master/doc/layout.png)

It mashes up the following APIs to achieve its goal -Google Maps -Google GeoLocation -DataSF

###The Technology Stack and Architectures### The following technologies are used to implement SF Movies V1.0

  1. JavaScript | Jquery | CSS
  2. Java | Maven
  3. 3rd Party APIs

The Diagram below shows the Architectures of SF Movies V1.0

SF Movies v1.0

###Problems and Solutions### This application is fully functional with focus on back-end.

  1. Source Data Redirection

    Problem: The source data of SF Movies is from DataSF. Every query from a client will cause back-end server to retrieve source data from DataSF, a third party API. This redirection can slow down the response effectively.

    Solution: First to retrieve the Data from DataSF and store it in the back-end Server. Now the service will use the local data to compele a query, which will improve the response time. In addition, the service is implemented to retrieve data every desired time interval so that the data can be up to date. A little trade-off here is that the if a update has been made in DataSF, but the service has not retrieved it yet and at this time a user may get an complete result. However, the data of movies updated not often and the response time is of more importance. Another thing is the memory cost of storing source data locally, but the size of data is small. To sum up, the trade off is worthwhile.

  2. Not Standard Location Address

    Problem: The location information in the source data from DataSF is not standard, which will cause Google GeoLocation fail to get the coordinates of the location.

    Solution: If the service failed to get coordinates with the original location, the service will parse the location and try with the new location.

  3. Implementation of "search in results"

    Problem: "Search in results" require service to remember the results of the current thread.

    Solution: Instead of storing data in the back-end, service requires the front-end to send the original results back to back-end.

###Missing Out###

  1. Store all the coordinates information locally

    Query coordinates of all locations in the source Data once it is updated. This will make the response faster beacuse service will get the coordinates from local storage instead of redirecting to the Goecode API.

  2. Combine search portals

    Instead of letting user input query information according to different attributes, the combined search portal lets user input all the query information into a single search portal. The back-end of the service will recognise and parse the input automatically.

  3. Implement a on-map search tool

    Right now the service only allows users to type in address to complete the search. By on-map search tool, user can search filming locations fall in desired area on map.

  4. Redesign front-end Since this is the first time i implement a front-end, i code the front-end intuitively most of the time. If i was to spend more time on it, i can redesign the page and refator the code.

###Unit Tests### Under src/main/test a set of unit tests are included. SF Movies v1.0

###Link### Link to to this hosted application: http://hazel-envoy-816.appspot.com

mysfmovies's People

Contributors

zwlego avatar

Watchers

James Cloos avatar  avatar

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.