Installation ======= ## Locale Petit guide pour installer proprement cette application `django` et pouvoir contribuer. ### postgreSQL #### Installation L'installation de `postgreSQL` est peut être le plus gros challenge de cette partie. Pour ce faire, utiliser ~~Google~~ DuckDuckGo. Vous devez faire en sorte que `postgreSQL` soit accessible en local, c'est suffisant : - Dans le fichier `postgresql.conf` (disponible en standard sous linux dans le dossier `/var/lib/pgsql/data/` après installation), décommentez/modifiez les lignes : ```conf listen_addresses = 'localhost' port = 5432 ``` - Dans le fichier `pg_hba.conf` (disponible en standard sous linux dans le dossier `/var/lib/pgsql/data/` après installation), ajoutée la ligne : ```conf host all all 127.0.0.1/32 trust ``` **Penser à relancer `postgreSQL` après ces changements _- et profitez-en pour activer le lancement automatique au démarrage si vous le souhaitez_.** **Les contributions sont les bienvenues pour compléter cette partie d'installation/configuration de base.** #### Initialisation Pour un fonctionnement simplifié avec ce projet il faut procéder aux changement suivants. _Petite commande à faire au début : nous allons avoir besoin de votre nom d'utilisateur._ ```bash whoami ``` C'est par le résultat de cette commande qu'il faudra que vous remplaciez chaque `` dans les autres commandes. Changer d'utilisateur pour l'utilisateur classique de `postgresql` : ```bash su - postgres ``` _(Si vous avez un problème de mot de passe, contourner le problème : `sudo su - postgres`)_ Puis ouvrez l'interface en ligne de commande postgres : ```bash psql ``` Si vous ne voyez pas `postgres=#` c'est qu'il y a un problème, vérifier votre installation. Créer un utilisateur correspondant à votre utilisateur/login classique dans postgre : ```sql CREATE USER ; ``` Donner lui le droit de créer des bases de données (utile lors des tests en local) : ```sql ALTER USER CREATEDB; ``` Créer une base de données qui lui sera associée : ```sql CREATE DATABASE ; GRANT ALL on DATABASE to ; ``` Sortez de `psql` (`\q`) et retrouver votre utilisateur normal (`CRTL` + `D`). À ce stade, si vous tappez dans votre console : ```bash psql -d ``` Vous devez accéder à votre base de données sans soucis. _Si vous êtes arrivés jusque là, c'est tout bon !_ ### virtualenv Afin d'avoir des environnements reproductibles il est **fortement** suggéré d'utiliser un environnement virtuel pour ce projet. (Ce projet est développé sur `python-3.6`) ```bash python3.6 -m venv ``` _(chemin = "chemin" + "nom-du-venv")_ Si vous utilisez `VScode` comme éditeur, nous vous suggérons de prendre ` = ~/Env/outgoing`. Cet environnement virtuel doit être **systématiquement** activé lorsque vous travaillez sur ce projet : ```bash source /bin/activate ``` Les lignes de votre console doivent alors commencez par `()`. _Pour le désactiver, faîtes : `deactivate`_. !> Il est essentiel à ce stade de modifier votre environnement virtuel pour ajouter des variables d'environnement spécifiques, **pour que ce projet fonctionne correctement**. Éditer le fichier `/bin/activate` : - À la fin de la fonction `deactivate ()`, avant le `}` de fin, rajouter les deux linges : ```bash unset ENV unset DATABASE_URL ``` - À la fin du fichier, ajouter les lignes : ```bash export DATABASE_URL=postgres://$(whoami)@127.0.0.1:5432/$(whoami) export ENV=development ``` Cela permet d'ajouter et d'enlever automatiquement des variables d'environnement **essentielles** au fonctionnement du projet. ### git Il ne vous reste plus qu'à cloner le projet : ```bash git clone git@gitlab.utc.fr:chehabfl/outgoing_rex.git cd outgoing_rex ``` (Il va de soit qu'il faut savoir installer/utiliser `git` pour ce projet...) ### C'est parti Activer votre environnement virtuel (voir plus haut). Puis installer les dépendances : ```bash pip install -r requirements.txt ``` Téléchargez les dépendances `npm` nécessaires : ```bash npm i ``` _Migrez_ la base de donnée : ```bash ./manage.py migrate ``` _Collectez_ les éléments statistiques : ```bash ./manage.py collectstatic ``` _Checkez_ le système : ```nash ./manage.py check ``` ```bash ./manage.py test ``` Tout ce qu'il y a jusqu'ici **doit** fonctionner. :smile: _Il ne vous reste plus qu'à lancer le serveur et à contribuer :_ ```bash ./manage.py runserver ``` ## Django Si vous n'avez jamais travailler avec Django, un tutoriel [s'impose](https://tutorial.djangogirls.org/fr/django_start_project/) ! ## Déploiement _externe_ À ce jour le déploiement externe est réalisé sur la plateforme proposée par [Heroku](https://www.heroku.com) à l'adresse : [http://heroku-badge.herokuapp.com/](http://heroku-badge.herokuapp.com/).