7isEnough est une application de chasse aux trésors développée dans le cadre du projet SMART à l'INSA Lyon.
Le code source du back est disponible ici
- Tom Bourret
- Julien Charles-Nicolas
- Marc-Antoine Fernandes
- Justin Gally
- Vincent Guillon
- Pierre Jaglin
- Loïc Sérazin
Les différents livrables sont disponibles dans le dossier docs de ce repo.
L'application android est disponible sur le Google Play mais également dans l'onglet release:
Le serveur est un simple serveur web de fichiers. On conseille Caddy Server car il permet d'avoir du HTTPS par défaut.
Prenez également le plugin filemanager pour simplifier le déploiement de nouvelles versions des données.
La configuration de Caddy est simple :
7isenough.app {
root ./path/to/7isenough
filemanager /filemanager ./path/to/7isenough {
database 7isenough.db
}
internal ./path/to/7isenough/internal
gzip
}
Ici, le dossier internal permettra de stocker des informations sensibles.
Pour accéder aux données, allez sur https://7isenough.app/filemanager
et connectez vous avec admin:admin
. Il ne reste plus qu'à créer les différents fichiers
nécessaires et de changer les mots de passes.
Le serveur doit avoir au minimum 1 fichier
manifest.json
, qui contient l'ensemble des cartes disponibles (ainsi que le numéro de version).
Le manifeste est structuré comme suit :
[
{
"id": "String",
"name": "String",
"description": "String",
"startDate": "Number",
"endDate": "Number",
"version": "Number",
"scoreboardId": "String"
}
]
id
: Correspond à l'identifiant de la carte (nom du fichier.json
).name
: Nom de la carte.description
: Description de la carte.startDate
: Début de l'événement (en millisecondes UNIX).endDate
: Fin de l'événement (en millisecondes UNIX).version
: Numéro de version. Sans ça, les utilisateurs risquent de ne pas recevoir les mises à jour.scoreboardId
: Id du scoreboard Google Play Games (Optionnel).
Chaque événement déclaré dans le manifeste doit avoir son propre fichier .json
.
Ces cartes sont générées grâce à deux interfaces:
Dans le dossier mapGrid
de la partie back du projet se trouve le fichier
index
qui permet à l'administrateur de créer et modifier les cartes une par une.
Pour générer les QR Codes, on utilise Java et non plus JavaScript.
Pour lancer le logiciel, il suffit de lancer ./gradlew run
depuis
le repo 7isEnough-back.
Les 2 interfaces contiennent des indications sur la fabrication de A à Z d'une carte.
Pour compiler l'application Android, il suffit de cloner le projet et l'ouvrir avec Android Studio (3.1+).
Il faut ensuite créer le projet Google Cloud (pas détaillé ici).
Les propriétés suivantes sont à définir dans votre $HOME/.gradle/gradle.properties
:
a7isEnough_GMaps_API_KEY
: L'api key concernant Google Maps Androida7isEnough_Google_APP_ID
: L'ID de l'application (voir la doc de Google Play)