Skip to content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config persistent login + user admin May 15, 2019
lib [CRM] Crm stock reminder from 2018-09-01 to 2019-03-31 (#73) May 24, 2019
priv rome csv in codebase May 23, 2019
rel init May 29, 2018
test New search 2 (#51) Jan 31, 2019
web [CRM] Crm stock reminder from 2018-09-01 to 2019-03-31 (#73) May 24, 2019
.buildpacks Add pdf and remove process_path from email (#21) Sep 20, 2018
.env.example updated docs May 16, 2019
.gitignore Feature/mailjet (#10) Jul 31, 2018
CONTRIBUTING.md Create CONTRIBUTING.md Jun 6, 2018
Dockerfile User profile (#63) Apr 16, 2019
FROM_RAILS.md User profile (#63) Apr 16, 2019
LICENSE Create LICENSE Jun 6, 2018
Procfile init May 29, 2018
README.md updated docs May 16, 2019
brunch-config.js [Analytics] Fix Apr 29, 2019
deploy.exs init May 29, 2018
docker-compose.yml updated docs May 16, 2019
ebert.yml Commit ebert conf Jun 26, 2018
elixir_buildpack.config Typo + elixir buildpack Apr 16, 2019
mix.exs restore swoosh newest version May 22, 2019
mix.lock Merge branch 'master' into seo-optim May 14, 2019
package-lock.json User profile (#63) Apr 16, 2019
package.json
phoenix_static_buildpack.config init May 29, 2018
server.sh
upgrade.exs init May 29, 2018

README.md

Avril

Avril est un projet Open Source des Startups d'Etat Pôle emploi.

Avril traite le sujet de la VAE : validation des acquis de l'expérience. La VAE permet d'obtenir un diplôme grâce à ses compétences.

Dépendences

L'application est codée avec le language Elixir et utilise le framework Phoenix et stocke ses données dans une base PostgreSQL. NodeJS est nécessaire pour générer le front.

En outre, elle utilise wkhtmltopdf pour générer des documents PDF ainsi que la librairie Goon.

Installation

Il est possible d'installer directement les dépendences sur sa machine, mais il est préconisé d'utiliser Docker et Docker Compose pour une installation accélérée. En effet, l'ensemble des dépendances sus-citées sont installées grâce au Dockerfile.

Une fois docker-compose installé, il ne reste plus qu'à faire docker-compose build puis docker-compose run --rm --service-ports app bash (que l'on recommande d'aliaser en dkp, plus d'infos) pour ouvrir un terminal dans le docker applicatif.

Variables d'environnement

Dupliquer le fichier .env.example en .env. Récupérer les clés API des différents services utilisés (Algolia, Crisp).

Installer le dump de la BDD

Télécharger un dump de la BDD (probablement via flynn si accès à la prod : flynn pg dump -c -f db/latest.dump).

Copier le dump dans db pour qu'il soit accessible dans un docker.

Puis exécuter :

  • docker-compose run --rm app bash
  • Dans le docker, exécuter : mix ecto.create pour créer la BDD
  • Puis dans un autre terminal, exécuter : docker-compose run --rm postgres pg_restore --verbose --clean --no-acl --no-owner -d vae_dev -U postgres /app/db/latest.dump

Attention : cela génère un warning, ne pas hésiter à lancer deux fois la requête pour que le restore se passe bien (suivre l'issue).

Démarrer le serveur

Une fois dans le docker, iex -S mix phx.server démarre un serveur disponible à http://localhost:4000/ ainsi qu'une console interactive dans le terminal.

Démarrer PG Admin

PG Admin est un programme GUI qui permet d'inspecter simplement le contenu de sa base de donnée. La dernière version est un client web à 100, aussi, il est dockerisé pour plus de facilité.

docker-compose up -d pgadmin puis accessible via http://localhost.

Les logins utilisés sont ceux définis dans .env:

PGADMIN_DEFAULT_EMAIL=email@example.com
PGADMIN_DEFAULT_PASSWORD=password

Une fois connecté, vous pouvez a minima accéder à la BDD locale via la config suivante :

Name : Avril Local
Host name : postgres
Port : 5432
Username : postgres
Password :

A propos de Phoenix

Phoenix est un framework très inspiré de Ruby On Rails.

Aussi, FROM_RAILS.md rassemble quelques équivalents pour ceux qui viennent de ce monde.

You can’t perform that action at this time.