diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 39cf82842984d546f044382cc0de4bdf5dd66727..906a18aacf75ad873f994ecdacd88eddab976b9a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,13 +33,16 @@ pages: dependencies: - testing script: - - mv htmlcov/ public/ + - mkdir .public + - mv htmlcov/ .public/coverage + - mv docs/ .public/docs + - mv .public public artifacts: paths: - public expire_in: 1 month - only: - - master + # only: + # - master tags: - docker diff --git a/.vscode/settings.json b/.vscode/settings.json index e4ae88354acb152c12b5c8440e41652b6e43ca20..d68b49014379fc9547a253e47efa3cd5bd7fe22e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,6 +9,6 @@ "**/__pycache__":true, "**/.pyc":true }, - "cSpell.language": "en", + "cSpell.language": "en,fr-FR,fr", "python.linting.flake8Enabled": true } \ No newline at end of file diff --git a/README.md b/README.md index 42fc95cc5452591acfcfdd5d8c860e12b2e3cd2d..a167bc71e5e9d6efb91157722ff1b8ee7827fe74 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,7 @@ [![build](/../badges/master/build.svg)](https://gitlab.utc.fr/chehabfl/outgoing_rex/pipelines) -[![coverage](/../badges/master/coverage.svg)](https://chehabfl.gitlab.utc.fr/outgoing_rex/) +[![coverage](/../badges/master/coverage.svg)](https://chehabfl.gitlab.utc.fr/outgoing_rex/coverage/) [![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause) [![Heroku](https://heroku-badge.herokuapp.com/?app=outgoing-preprod&style=flat&svg=1)](http://outgoing-preprod.herokuapp.com/) -# Site blabla -# Installation -``` -git clone -pip ... -./manage.py migrate -``` - -Chargement des données des pays : - -Avec pip requierements installer -``` -./manage.py shell -``` - -puis à l'intérieur de ce shell -``` -%run ./rex/utils/insert_country.py -``` -To populate universities, also run in `./manage.py shell`: -``` -%run ./rex/utils/insert_universities.py -``` - -Follow this tutorial : https://devcenter.heroku.com/articles/heroku-postgresql#local-setup - -in postgre -ALTER USER username CREATEDB; -GREATE DATABASE florent; -GRANT ALL on DATABASE florent to florent; +## Retrouvez la documentation [ici](https://chehabfl.gitlab.utc.fr/outgoing_rex/docs/) diff --git a/docs/API.md b/docs/API.md new file mode 100644 index 0000000000000000000000000000000000000000..c8b387a4cc0f9f209e14af77af5951252911b5c3 --- /dev/null +++ b/docs/API.md @@ -0,0 +1,4 @@ +API +======== + +Il n'y a rien dans cette section, mais ça va arriver :kissing:. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b9aba0ec73300b1e6223e238aea1aae790124c1d --- /dev/null +++ b/docs/README.md @@ -0,0 +1,7 @@ +Présentation +======= + +Bienvenue sur la documentation du projet **`Outgoing`**. Il s'agit d'une plateforme de capitalisation concernant les départs à l'étranger à l'Université de Technologie de Compiègne. + +!> Ce service fonctionne avec `Python 3.6`, `Django 2.0` et `PostgreSQL`. + diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 0000000000000000000000000000000000000000..41de147a2e0ed63b57ac8e2fc2cdb5baaa263248 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,8 @@ + + +* [Présentation](/) +* [Installation](installation.md) +* [Chargement des données](load.md) +* [API](API.md) +* [À propos de cette documentation](this_doc.md) +* [Contributions](contributions.md) \ No newline at end of file diff --git a/docs/contributions.md b/docs/contributions.md new file mode 100644 index 0000000000000000000000000000000000000000..d9010fd31f30e8621797fc3cae7dd41e1c3e521d --- /dev/null +++ b/docs/contributions.md @@ -0,0 +1,4 @@ +Contributeurs et contributrices :thumbsup: +========= + +- Florent Chehab diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000000000000000000000000000000000000..ff6dbe05785854263b8118bc2951c7e3430c7364 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000000000000000000000000000000000000..a77916e5270cb52cef794f67d7d380b825ae4e04 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,181 @@ +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")_ + + +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/). \ No newline at end of file diff --git a/docs/load.md b/docs/load.md new file mode 100644 index 0000000000000000000000000000000000000000..0df3133b5c96d54fdf6328f5eb481e23f82393c9 --- /dev/null +++ b/docs/load.md @@ -0,0 +1,20 @@ +Chargement des données initiales pour l'application +===== + +[SECTION QUI VA ÉVOLUER] + +Chargement des données des pays : + +```bash +./manage.py shell +``` + +Puis à l'intérieur de ce shell : +```python +%run ./rex/utils/insert_country.py +``` + +Pour les universitées, toujours à l'intérieur du shell `./manage.py shell` : +```python +%run ./rex/utils/insert_universities.py +``` \ No newline at end of file diff --git a/docs/this_doc.md b/docs/this_doc.md new file mode 100644 index 0000000000000000000000000000000000000000..9349db7fdfa8b0422df588467bfd10f806e7708f --- /dev/null +++ b/docs/this_doc.md @@ -0,0 +1,29 @@ +À propos de cette documentation +======== + +## docsify.js + +Cette documentation (dans sa version _non markdown brut_) est générée avec l'aide de [`docsify`](https://docsify.js.org/). + + +## Rendu en _local_ + +Pour un rendu en local de la documentation, il suffit de lancer un petit serveur permettant de distribuer les fichiers : + +```bash +#!/bin/bash +cd docs +python -m http.server 3000 +``` +La documentation sera alors disponible à l'adresse : +[http://0.0.0.0:3000/](http://0.0.0.0:3000/). + + +## Résolution de problèmes + + +### Fonction recherche + +!> Si la fonction `recherche` ne semble pas fonctionner après que vous ayez mis à jour la documentation, pensez à vider (`F12`, puis farfouillez) la variable `localStorage` associée à cette documentation dans votre navigateur. + +_Par défaut, les données contenues dans le `localStorage` ont une durée de vie d'une journée._ \ No newline at end of file