# 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é.