Ce projet est né de l'esprit de quelques 4IF au moment critique qu'est le stage, veille du départ en échange pour une majorité d'entre eux. Cette épreuve qu'est la séparation n'étant pas facile à vivre, ils ont décidé de développer cette petite application permettant de connaître les endroits où se trouvent leurs amis et où ils se trouvent eux mêmes.
Allez faire un tour sur le CONTRIBUTING.md tout y est expliqué ! Si vous avez une seulement une idée de fonctionnalité n'hésitez pas à la partager dans les issues.
Le code du serveur est développé en Python 3 actuellement en version 3.5.3
.
Le back utilise Flask, et d'autres librairies python renseignées dans le fichier requirements.txt.
- Installez les dépendances en executant
pip install -r requirements.txt
. - En cas d'erreur de dépendances pip concernant PostgreSQL, exécutez la commande suivante :
sudo apt-get install postgresql python-psycopg2 libpq-dev
,- puis relancez l'installation des dépendances
pip install -r requirements.txt
.
- Vous aurez besoin également de créer le fichier de configuration
mapif.ini
pour ce, prenez exemple sur le fichier mapif.ini.dist. - Pour faire fonctionner reCAPTCHA, il vous faudra entrer votre clé secrète reCAPTCHA dans mapif.ini.dist (votre propre fichier
mapif.ini
, pas lemapif.ini.dist
), ainsi que la clé de site danssrc/templates/modals/signupModal.html
, dans l'attributdata-sitekey
. - Vous devez également créer au choix le fichier
database/mapif.sqlite
à la racine du projet ou mettre en place une base PostgreSQL.
Concernant le lancement de l'application deux possibilités :
- Pour les développeurs :
- Lancer l'application avec un simple
python3 main.py
devrait suffire. - Vous devriez pouvoir y accéder sur http://localhost:5000.
- Si vous souhaitez que le serveur écoute les connexions extérieures, remplacez
localhost
par0.0.0.0
dans
src/mapif.py
, et entrez l'adresse IP du serveur suivie de:5000
danssrc/static/settings.json
(champ SERVER_ADDR).
- Lancer l'application avec un simple
- Pour un déploiement en production utilisez uWSGI via le script mapif.sh.
Le front est développé en HTML5, CSS3, javascript ECMA5.
Le moteur de template utilisé est Jinja2.
Le code exploite principalement jQuery 2.2.3 pour la gestion des évènements et animations, Leaflet.js pour la gestion de la carte, et Nominatim d'OpenStreetMap pour la résolution d'adresse.
Pour le style il s'agit de Bootstrap 3.3.6, augmenté du Bootstrap Material Design.
Le javascript est organisé de la manière suivante :
- Le code commun à toutes les pages se trouve dans app.js
- Le code qui peut etre commun a plusieurs page est organisé par modules. Ces modules sont des objets qui agissent comme des bibliothèques à fonctions triées par fonctionnalité. Leurs dépendances sont notées en haut des fichiers, si vous en utilisez un veillez à inclure le script des dépendances.
- Le code particulier à une page se trouve dans les fichiers pages. Les modules y sont chargés, ainsi que leur dépendances, et initialisés si besoin.
Pour la compatibilité, tout n'a pas été testé, mais cela fonctionne correctement sur la majorité des navigateurs récents.
Projet à l'initiative de Nicolas Bonfante.
Réalisation par Loïc Touzard (Responsable Front), Koromodako (Responsable Back) et Kévin Bulmé.
Remerciements aux contributeurs Lisa Courant pour le logo, Mohamed Haidara et David Wobrock.