├── .formatter.exs ├── .gitignore ├── LICENSE ├── README.md ├── assets ├── .babelrc ├── css │ └── app.scss ├── js │ └── app.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── static │ ├── favicon.ico │ ├── images │ │ └── phoenix.png │ └── robots.txt ├── tailwind.config.js └── webpack.config.js ├── config ├── config.exs ├── dev.exs ├── prod.exs ├── prod.secret.exs └── test.exs ├── demo └── demo.gif ├── lib ├── locations │ ├── application.ex │ ├── external │ │ ├── http_client.ex │ │ └── http_client │ │ │ ├── http_client_api.ex │ │ │ └── http_client_impl.ex │ ├── geo_encode │ │ ├── address.ex │ │ ├── lookup.ex │ │ └── nominatim.ex │ ├── helpers │ │ ├── db_tuple.ex │ │ └── def_get_impl.ex │ ├── location │ │ ├── add_location.ex │ │ ├── get_locations.ex │ │ ├── get_map_for.ex │ │ ├── remove_location.ex │ │ ├── update_geo_location.ex │ │ └── update_location.ex │ ├── locations.ex │ ├── postgres │ │ └── types.ex │ ├── repo.ex │ └── schema │ │ └── location.ex ├── locations_web.ex └── locations_web │ ├── channels │ └── user_socket.ex │ ├── endpoint.ex │ ├── geo_helpers │ └── geo_helpers.ex │ ├── gettext.ex │ ├── helpers │ └── integer_helpers.ex │ ├── live │ ├── location │ │ ├── delete_location_modal.ex │ │ ├── delete_location_modal.html.leex │ │ ├── geo_error_modal.ex │ │ ├── geo_error_modal.html.leex │ │ ├── location_modal.ex │ │ ├── location_modal.html.leex │ │ ├── show_location.ex │ │ └── show_location.html.leex │ ├── modal.ex │ ├── page_live.ex │ └── page_live.html.leex │ ├── router.ex │ ├── telemetry.ex │ ├── templates │ └── layout │ │ ├── app.html.eex │ │ ├── live.html.leex │ │ └── root.html.leex │ └── views │ ├── error_helpers.ex │ ├── error_view.ex │ ├── layout_view.ex │ └── live_helpers.ex ├── mix.exs ├── mix.lock ├── priv ├── gettext │ ├── en │ │ └── LC_MESSAGES │ │ │ └── errors.po │ └── errors.pot └── repo │ ├── migrations │ ├── .formatter.exs │ ├── 20200908103250_add_postgis.exs │ └── 20200908103323_add_location.exs │ └── seeds.exs └── test ├── locations ├── geo_encode │ ├── address_test.exs │ ├── look_up_test.exs │ └── nominatim_test.exs ├── location │ ├── add_location_test.exs │ ├── get_location_test.exs │ ├── get_map_for_test.exs │ ├── remove_location_test.exs │ ├── update_geo_location_test.exs │ └── update_location_test.exs └── schema │ └── location_test.exs ├── locations_web ├── features │ ├── add_location_test.exs │ ├── edit_location_test.exs │ ├── get_map_test.exs │ ├── get_map_with_error_test.exs │ ├── remove_location_test.exs │ └── shows_front_page_test.exs └── views │ ├── error_view_test.exs │ └── layout_view_test.exs ├── support ├── assert_helpers.ex ├── assert_liveview_helpers.ex ├── channel_case.ex ├── conn_case.ex ├── data_case.ex ├── factories.ex └── nominatim_data.ex └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/README.md -------------------------------------------------------------------------------- /assets/.babelrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/.babelrc -------------------------------------------------------------------------------- /assets/css/app.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/css/app.scss -------------------------------------------------------------------------------- /assets/js/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/js/app.js -------------------------------------------------------------------------------- /assets/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/package-lock.json -------------------------------------------------------------------------------- /assets/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/package.json -------------------------------------------------------------------------------- /assets/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/postcss.config.js -------------------------------------------------------------------------------- /assets/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/static/favicon.ico -------------------------------------------------------------------------------- /assets/static/images/phoenix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/static/images/phoenix.png -------------------------------------------------------------------------------- /assets/static/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/static/robots.txt -------------------------------------------------------------------------------- /assets/tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/tailwind.config.js -------------------------------------------------------------------------------- /assets/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/assets/webpack.config.js -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/config/config.exs -------------------------------------------------------------------------------- /config/dev.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/config/dev.exs -------------------------------------------------------------------------------- /config/prod.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/config/prod.exs -------------------------------------------------------------------------------- /config/prod.secret.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/config/prod.secret.exs -------------------------------------------------------------------------------- /config/test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/config/test.exs -------------------------------------------------------------------------------- /demo/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/demo/demo.gif -------------------------------------------------------------------------------- /lib/locations/application.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/application.ex -------------------------------------------------------------------------------- /lib/locations/external/http_client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/external/http_client.ex -------------------------------------------------------------------------------- /lib/locations/external/http_client/http_client_api.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/external/http_client/http_client_api.ex -------------------------------------------------------------------------------- /lib/locations/external/http_client/http_client_impl.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/external/http_client/http_client_impl.ex -------------------------------------------------------------------------------- /lib/locations/geo_encode/address.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/geo_encode/address.ex -------------------------------------------------------------------------------- /lib/locations/geo_encode/lookup.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/geo_encode/lookup.ex -------------------------------------------------------------------------------- /lib/locations/geo_encode/nominatim.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/geo_encode/nominatim.ex -------------------------------------------------------------------------------- /lib/locations/helpers/db_tuple.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/helpers/db_tuple.ex -------------------------------------------------------------------------------- /lib/locations/helpers/def_get_impl.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/helpers/def_get_impl.ex -------------------------------------------------------------------------------- /lib/locations/location/add_location.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/location/add_location.ex -------------------------------------------------------------------------------- /lib/locations/location/get_locations.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/location/get_locations.ex -------------------------------------------------------------------------------- /lib/locations/location/get_map_for.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/location/get_map_for.ex -------------------------------------------------------------------------------- /lib/locations/location/remove_location.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/location/remove_location.ex -------------------------------------------------------------------------------- /lib/locations/location/update_geo_location.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/location/update_geo_location.ex -------------------------------------------------------------------------------- /lib/locations/location/update_location.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/location/update_location.ex -------------------------------------------------------------------------------- /lib/locations/locations.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/locations.ex -------------------------------------------------------------------------------- /lib/locations/postgres/types.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/postgres/types.ex -------------------------------------------------------------------------------- /lib/locations/repo.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/repo.ex -------------------------------------------------------------------------------- /lib/locations/schema/location.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations/schema/location.ex -------------------------------------------------------------------------------- /lib/locations_web.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web.ex -------------------------------------------------------------------------------- /lib/locations_web/channels/user_socket.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/channels/user_socket.ex -------------------------------------------------------------------------------- /lib/locations_web/endpoint.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/endpoint.ex -------------------------------------------------------------------------------- /lib/locations_web/geo_helpers/geo_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/geo_helpers/geo_helpers.ex -------------------------------------------------------------------------------- /lib/locations_web/gettext.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/gettext.ex -------------------------------------------------------------------------------- /lib/locations_web/helpers/integer_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/helpers/integer_helpers.ex -------------------------------------------------------------------------------- /lib/locations_web/live/location/delete_location_modal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/delete_location_modal.ex -------------------------------------------------------------------------------- /lib/locations_web/live/location/delete_location_modal.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/delete_location_modal.html.leex -------------------------------------------------------------------------------- /lib/locations_web/live/location/geo_error_modal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/geo_error_modal.ex -------------------------------------------------------------------------------- /lib/locations_web/live/location/geo_error_modal.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/geo_error_modal.html.leex -------------------------------------------------------------------------------- /lib/locations_web/live/location/location_modal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/location_modal.ex -------------------------------------------------------------------------------- /lib/locations_web/live/location/location_modal.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/location_modal.html.leex -------------------------------------------------------------------------------- /lib/locations_web/live/location/show_location.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/show_location.ex -------------------------------------------------------------------------------- /lib/locations_web/live/location/show_location.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/location/show_location.html.leex -------------------------------------------------------------------------------- /lib/locations_web/live/modal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/modal.ex -------------------------------------------------------------------------------- /lib/locations_web/live/page_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/page_live.ex -------------------------------------------------------------------------------- /lib/locations_web/live/page_live.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/live/page_live.html.leex -------------------------------------------------------------------------------- /lib/locations_web/router.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/router.ex -------------------------------------------------------------------------------- /lib/locations_web/telemetry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/telemetry.ex -------------------------------------------------------------------------------- /lib/locations_web/templates/layout/app.html.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/templates/layout/app.html.eex -------------------------------------------------------------------------------- /lib/locations_web/templates/layout/live.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/templates/layout/live.html.leex -------------------------------------------------------------------------------- /lib/locations_web/templates/layout/root.html.leex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/templates/layout/root.html.leex -------------------------------------------------------------------------------- /lib/locations_web/views/error_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/views/error_helpers.ex -------------------------------------------------------------------------------- /lib/locations_web/views/error_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/views/error_view.ex -------------------------------------------------------------------------------- /lib/locations_web/views/layout_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/views/layout_view.ex -------------------------------------------------------------------------------- /lib/locations_web/views/live_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/lib/locations_web/views/live_helpers.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/mix.lock -------------------------------------------------------------------------------- /priv/gettext/en/LC_MESSAGES/errors.po: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/priv/gettext/en/LC_MESSAGES/errors.po -------------------------------------------------------------------------------- /priv/gettext/errors.pot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/priv/gettext/errors.pot -------------------------------------------------------------------------------- /priv/repo/migrations/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/priv/repo/migrations/.formatter.exs -------------------------------------------------------------------------------- /priv/repo/migrations/20200908103250_add_postgis.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/priv/repo/migrations/20200908103250_add_postgis.exs -------------------------------------------------------------------------------- /priv/repo/migrations/20200908103323_add_location.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/priv/repo/migrations/20200908103323_add_location.exs -------------------------------------------------------------------------------- /priv/repo/seeds.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/priv/repo/seeds.exs -------------------------------------------------------------------------------- /test/locations/geo_encode/address_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/geo_encode/address_test.exs -------------------------------------------------------------------------------- /test/locations/geo_encode/look_up_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/geo_encode/look_up_test.exs -------------------------------------------------------------------------------- /test/locations/geo_encode/nominatim_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/geo_encode/nominatim_test.exs -------------------------------------------------------------------------------- /test/locations/location/add_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/location/add_location_test.exs -------------------------------------------------------------------------------- /test/locations/location/get_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/location/get_location_test.exs -------------------------------------------------------------------------------- /test/locations/location/get_map_for_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/location/get_map_for_test.exs -------------------------------------------------------------------------------- /test/locations/location/remove_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/location/remove_location_test.exs -------------------------------------------------------------------------------- /test/locations/location/update_geo_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/location/update_geo_location_test.exs -------------------------------------------------------------------------------- /test/locations/location/update_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/location/update_location_test.exs -------------------------------------------------------------------------------- /test/locations/schema/location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations/schema/location_test.exs -------------------------------------------------------------------------------- /test/locations_web/features/add_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/features/add_location_test.exs -------------------------------------------------------------------------------- /test/locations_web/features/edit_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/features/edit_location_test.exs -------------------------------------------------------------------------------- /test/locations_web/features/get_map_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/features/get_map_test.exs -------------------------------------------------------------------------------- /test/locations_web/features/get_map_with_error_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/features/get_map_with_error_test.exs -------------------------------------------------------------------------------- /test/locations_web/features/remove_location_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/features/remove_location_test.exs -------------------------------------------------------------------------------- /test/locations_web/features/shows_front_page_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/features/shows_front_page_test.exs -------------------------------------------------------------------------------- /test/locations_web/views/error_view_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/views/error_view_test.exs -------------------------------------------------------------------------------- /test/locations_web/views/layout_view_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/locations_web/views/layout_view_test.exs -------------------------------------------------------------------------------- /test/support/assert_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/assert_helpers.ex -------------------------------------------------------------------------------- /test/support/assert_liveview_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/assert_liveview_helpers.ex -------------------------------------------------------------------------------- /test/support/channel_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/channel_case.ex -------------------------------------------------------------------------------- /test/support/conn_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/conn_case.ex -------------------------------------------------------------------------------- /test/support/data_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/data_case.ex -------------------------------------------------------------------------------- /test/support/factories.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/factories.ex -------------------------------------------------------------------------------- /test/support/nominatim_data.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/support/nominatim_data.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antp/locations/HEAD/test/test_helper.exs --------------------------------------------------------------------------------