Skip to content
This repository has been archived by the owner on Oct 31, 2019. It is now read-only.

gh640/coding-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coding challenge

This is a trial for Uber coding challenge.

Links

The sample app I selected: SF Movies

This sample site shows a map which shows movie locations with pins. Users can filter locations by using a text filter with autocompletion function.

capture

Functions

  • The site shows locations for a page on a map when the page is loaded.
  • Users can filter locations by entering parts of movie titles in a textbox.
  • The site shows movie titles which match the entered text below the textbox.
  • Users can select one among suggested titles with either cursor keys or pointer.

Technology stack used

Usage

Prerequisition

You need to prepare the following things to run this app in your environment.

Steps

After you've got ready, you can run the app with the following steps.

Clone this repository.

$ git clone https://github.com/gh640/coding-challenge

Install the dependencies with pipenv command.

$ cd coding-challenge/
$ pip install pipenv
$ pipenv install

See the page below for more information on pipenv.

Run gunicorn server.

cd src/
GOOGLE_API_KEY=[YOUR API KEY] pipenv run gunicorn app:app --log-file -

Change the [YOUR API KEY] to your Google API key.

If the command above runs successfully, you can see the app through the address displayed in the standard output like Listening at: http://127.0.0.1:8000 (63838).

TODOS

  • Overall
    • Add tests.
  • Backend
    • Organize views.
    • Change the granularity of files.
  • Frontend
    • Split components out to different files.
    • Change the source of the libraries from CDN to the site.
    • Modernize the code using ESxxx features.
    • Improve the look with css.
    • Introduce SCSS.
    • Introduce a cache system for queries.
  • DB
    • Normalize the tables (Split movie data and location data).
    • Migrate from SQLite to MySQL or something else.

About

A trial on a coding challenge.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published