Commit e83c29a8 authored by Florent Chehab's avatar Florent Chehab

documentation added, test for CI

parent 718d9f6c
Pipeline #21976 passed with stages
in 1 minute and 35 seconds
......@@ -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
......
......@@ -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
[![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/)
API
========
Il n'y a rien dans cette section, mais ça va arriver :kissing:.
\ No newline at end of file
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`.
<!-- docs/_sidebar.md -->
* [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
Contributeurs et contributrices :thumbsup:
=========
- Florent Chehab
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="UTF-8">
<link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
loadSidebar: true,
maxLevel: 4,
subMaxLevel: 4,
name: 'Outgoing',
search: {
placeholder: 'Recherche...',
noData: 'Pas de résultat :(',
paths: ['/installation']
},
}
</script>
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/emoji.min.js"></script>
<script src="https://unpkg.com/docsify-copy-code@2"></script>
<script src="//unpkg.com/prismjs/components/prism-bash.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-sql.min.js"></script>
</body>
</html>
\ No newline at end of file
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 `<login>` 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 <login>;
```
Donner lui le droit de créer des bases de données (utile lors des tests en local) :
```sql
ALTER USER <login> CREATEDB;
```
Créer une base de données qui lui sera associée :
```sql
CREATE DATABASE <login>;
GRANT ALL on DATABASE <login> to <login>;
```
Sortez de `psql` (`\q`) et retrouver votre utilisateur normal (`CRTL` + `D`).
À ce stade, si vous tappez dans votre console :
```bash
psql -d <login>
```
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-du-venv>
```
_(chemin = "chemin" + "nom-du-venv")_
Cet environnement virtuel doit être **systématiquement** activé lorsque vous travaillez sur ce projet :
```bash
source <chemin-du-venv>/bin/activate
```
Les lignes de votre console doivent alors commencez par `(<nom-du-venv>)`.
_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 `<chemin-du-venv>/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
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
À 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment