From f2d79a4309c85640e9797e215d04d186474e476f Mon Sep 17 00:00:00 2001
From: Benjamin Bouvier <public@benj.me>
Date: Sun, 21 Jan 2018 17:48:12 +0100
Subject: [PATCH] [readme] add development setup help;

---
 README.md | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 9e0fd7d33..a695085b5 100644
--- a/README.md
+++ b/README.md
@@ -3,13 +3,38 @@
 
 # Eventos
 
-To start your Phoenix server:
+## Development
 
-  * Install dependencies with `mix deps.get`
-  * Create and migrate your database with `mix ecto.create && mix ecto.migrate`
-  * Start Phoenix endpoint with `mix phx.server`
+### Server
 
-Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
+  * Start postgres and make sure the postgis extension is installed.
+  * Create a postgres user with database creation capabilities, using the
+    following: `createuser -d -P elixir` and set `elixir` as the password.
+  * Fetch dependencies with `mix deps.get`.
+  * Create your database with `mix ecto.create`.
+  * Create the postgis extension on the database with a postgres user that has
+    superuser capabilities: `psql eventos_dev`
+
+    ``` create extension if not exists postgis; ```
+
+  * Run migrations: `mix ecto.migrate`.
+  * Start Phoenix endpoint with `mix phx.server`.
+
+Now you can visit [`localhost:4000`](http://localhost:4000) from your browser
+and see the website (server *and* client) in action.
+
+### Client
+
+If you plan to specifically change the client side (frontend), do the following
+once the server is running:
+
+  * Change directory to `js/`.
+  * Install JavaScript package dependencies: `npm install`.
+  * Run the developement server in watch mode: `npm run dev`. This will open a
+    browser on [`localhost:8080`](http://localhost:8080) that gets
+    automatically reloaded on change.
+
+## Production
 
 Ready to run in production? Please [check our deployment guides](http://www.phoenixframework.org/docs/deployment).