annuaire-eleves/README.md
Ludovic Stephan 317077951b Markdown fix
2020-11-16 19:12:22 +01:00

79 lines
No EOL
3.3 KiB
Markdown

# Annuaire des élèves de l'ENS
## Environnement de développement
### Méthode facile : environnement virtuel python
Il est fortement conseillé d'utiliser un environnement virtuel pour Python.
Il vous faudra installer pip, les librairies de développement de python ainsi
que sqlite3, un moteur de base de données léger et simple d'utilisation. Sous
Debian et dérivées (Ubuntu, ...) :
sudo apt-get install python3-pip python3-dev python3-venv sqlite3
Si vous décidez d'utiliser un environnement virtuel Python (virtualenv;
fortement conseillé), déplacez-vous dans le dossier où est installé GestioCOF
(le dossier où se trouve ce README), et créez-le maintenant :
python3 -m venv venv
Pour l'activer, il faut taper
. venv/bin/activate
depuis le même dossier.
Vous pouvez maintenant installer les dépendances Python depuis le fichier
`requirements.txt` :
pip install -U pip # parfois nécessaire la première fois
pip install -r requirements.txt
python manage.py migrate
Vous êtes prêts à développer ! Lancez l'annuaire avec :
python manage.py runserver
### Plus compliqué : machine virtuelle Vagrant
Pour avoir une situation plus proche de la situation en production, il est possible de faire tourner le site depuis une
machine virtuelle Windows. Pour cela, il faut d'abord installer `vagrant` et `virtualbox` :
sudo apt install vagrant virtualbox
Ensuite, la commande `vagrant up` devrait créer et configurer la machine virtuelle ; un peu de patience, cela peut prendre
du temps ! Une fois fini, il y a deux possibilités :
- `vagrant ssh` permet de se connecter à la machine, et d'effectuer des opérations à l'aide de `manage.py`. On peut effectuer
à peu près les mêmes opérations que pour un virtualenv classique, à une différence près : il faut utiliser
```
python manage.py runserver 0.0.0.0:8000
```
pour lancer le serveur, afin d'y avoir accès depuis son navigateur.
- un serveur normalement très proche de celui de production (avec `gunicorn` + `nginx`) tourne en permanence sur la machine ;
il suffit de visiter `127.0.0.1:8080` pour y avoir accès !
## Développement
En manque d'inspiration ? N'hésitez pas à aller lire les issues ouvertes actuellement, il y en a pour tous les niveaux !
### Style de l'annuaire (CSS et SCSS)
Le style de l'annuaire repose sur deux fichiers CSS :
- [`normalize.css`](https://necolas.github.io/normalize.css/), qui contient des règles visant à normaliser le style par défaut des éléments de la page;
- `annuaire.css`, qui contient les règles qui définissent le style propre à l'annuaire.
Le style de l'annuaire (`annuaire.css`) est en réalité écrit en [SASS](https://sass-lang.com/), un pré-processeur CSS.
Si vous souhaitez modifier les règles de style, il faut donc modifier les fichiers du dossier `scss` (le fichier racine du SCSS étant `annuaire.scss`), puis utiliser [un outil comme `sass`](https://sass-lang.com/install) afin de générer une nouvelle version du fichier `annuaire.css`.
Depuis la racine du dépot, vous pouvez par exemple exécuter la commande
sass --no-source-map --watch fiches/static/fiches/scss/annuaire.scss fiches/static/fiches/css/annuaire.css
afin de lancer sass en mode _watch_, _i.e._ générer un nouveau fichier `annuaire.css` dès que l'un des fichiers SCSS dont dépend `annuaire.scss` est modifié.