Better docs

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Nicer docs

No 3rd stage

Add mix.deps get before docs

Add :ex_doc on test env so that it runs into CI
This commit is contained in:
Thomas Citharel
2019-03-14 15:00:34 +01:00
parent c20eaa379c
commit bba6629046
19 changed files with 772 additions and 150 deletions

View File

@@ -0,0 +1,53 @@
# Development
Clone the repo, and start the project trough Docker. You'll need both Docker and Docker-Compose.
```bash
git clone https://framagit.org/framasoft/mobilizon && cd mobilizon
make
```
## Manual
### Server
* Install dependencies:
* Elixir (and Erlang) by following the instructions at [https://elixir-lang.github.io/install.html](https://elixir-lang.github.io/install.html)
* Fetch backend Elixir dependencies with `mix deps.get`.
* [PostgreSQL]() with PostGIS
* Start services:
* Start postgres
* Setup services:
* Make sure the postgis extension is installed on your system.
* Create a postgres user with database creation capabilities, using the
following: `createuser -d -P mobilizon` and set `mobilizon` as the password.
* Create your database with `mix ecto.create`.
* Create the postgis extension on the database with a postgres user that has
superuser capabilities: `psql mobilizon_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:
* Install the NodeJS (we guarantee support for the latest LTS and later) ![](https://img.shields.io/badge/node-%3E%3D%2010.0+-brightgreen.svg)
* Change directory to `js/` and do:
* 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.
## Docker
You need to install the latest supported [Docker](https://docs.docker.com/install/#supported-platforms) and [Docker-Compose](https://docs.docker.com/compose/install/) before using the Docker way of installing Mobilizon.
Just run :
```bash
make start
```
to start a database container, an API container and the front-end dev container running on localhost.

View File

@@ -0,0 +1,16 @@
# Styleguide
# Elixir
We format our code with the Elixir Formatter and check for issues with [Credo](https://github.com/rrrene/credo) (a few rules are not blocking).
Please run those two commands before pushing code :
* `mix format`
* `mix credo`
These two commands must not return an error code, since they are required to pass inside CI.
# Front
We use `tslint` with the `tslint-config-airbnb` preset.
Errors should be reported when running in dev mode `npm run dev` or when building a production bundle `npm run build`.

View File

@@ -0,0 +1,36 @@
# Tests
## Backend
The backend uses `ExUnit`.
To launch all the tests:
```bash
mix test
```
If you want the coverage:
```bash
mix coveralls.html
```
It will show the coverage and will output a `cover/excoveralls.html` file.
If you want to test a single file:
```bash
mix test test/mobilizon/actors/actors_test.exs
```
If you want to test a specific test, block or line:
```bash
mix test test/mobilizon/actors/actors_test.exs:85
```
> Note: The coveralls.html also works the same
## Front-end
Waiting for [https://framagit.org/framasoft/mobilizon/merge_requests/42](https://framagit.org/framasoft/mobilizon/merge_requests/42) to be ready.