28 August 2017 00:00 · 3 min
Insapp
Insapp est une application de promotion des associations au sein de l'INSA Rennes.
Défi
Insapp est un projet de 2016. Cette application permet aux associations de l’INSA Rennes de communiquer facilement avec les étudiants. Les associations ont accès à une application web pour poster des nouvelles (tout comme Instagram) ou des événements. Ensuite, nos utilisateurs reçoivent une notification “push” et ont accès au contenu. Il existe également une version iOS.
Les utilisateurs peuvent modifier leur profil, commenter les actualités et les événements, marquer des amis, accéder au calendrier des événements à venir, consulter la page de présentation d’une association ou effectuer des recherches dans tout le contenu. Les utilisateurs peuvent également scanner leur carte de membre pour avoir le code-barres directement dans l’application.
Ce que j’ai fait
J’ai rejoint l’équipe en octobre 2016 (il n’y avait alors que 2 personnes). Nous avons décidé de réécrire l’application Android, la première version étant instable et non material design friendly.
Le client Android s’appuyait sur Retrofit comme client HTTP, Firebase Cloud Messaging pour envoyer des notifications push, Glide pour charger des images et Fabric pour surveiller et comprendre les plantages. Cet outil nous a permis d’améliorer la stabilité et les performances de l’application au fil du temps. Nous avons également mis en place tout un environnement de développement pour Android. Ce projet était l’occasion idéale de s’amuser avec Kotlin. Progressivement, nous convertissons l’application dans ce langage, ce qui rend le code beaucoup plus concis. Actuellement, environ 50 % des lignes sont écrites en Kotlin. Le dépôt client Android est hébergé sur Github.
Le backend est dockerisé. Cela signifie qu’une seule commande est nécessaire pour mettre en place la base de données, l’API et l’interface d’administration. L’utilisateur peut ensuite lancer le script de configuration pour personnaliser l’installation. Traefik est utilisé comme un reverse-proxy pour les conteneurs, et les certificats SSL sont générés automatiquement en utilisant Let’s Encrypt.
La technologie utilisée pour la base de données est MongoDB. Ce projet a été une bonne occasion d’essayer NoSQL.
L’API est écrite en Go et respecte le style de l’architecture REST. Elle nécessite parfois des évolutions (ajout/modification de terminaux) en fonction des fonctionnalités souhaitées dans les applications. Un Docker build multi-étapes est utilisé pour créer une petite image de Go. Vous pouvez trouver le dépôt API sur Github.
Enfin, l’interface d’administration, accessible aux gestionnaires d’associations pour poster du contenu, est écrite en JavaScript, en utilisant ES6 et AngularJS.
Ce projet m’a beaucoup appris dans le sens où il est techniquement transversal, mais aussi parce qu’il implique de communiquer avec les étudiants et de prendre des décisions en équipe.
Usage
Insapp est disponible sur l’App Store et le Play Store. Aujourd’hui, nous comptons plus de 500 utilisateurs actifs, et environ 200 centaines de téléchargements sur iOS et 1100 sur Android. Nous avons travaillé avec l’administration de l’école afin qu’elle puisse également utiliser l’application. C’est un grand projet dans notre école. Maintenant, nous essayons de transmettre notre projet aux autres élèves pour qu’ils puissent innover encore et encore sur Insapp.
Ici est le site officiel. Malheureusement, l’application n’est accessible qu’aux personnes possédant un compte interne. 😖