This is a trial for Uber coding challenge.
- Uber's tools team coding challenge
- coding-challenge-tools/coding_challenge.md at master · uber/coding-challenge-tools · GitHub
This sample site shows a map which shows movie locations with pins. Users can filter locations by using a text filter with autocompletion function.
- 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.
You need to prepare the following things to run this app in your environment.
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)
.
- 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.