# CAMPUS - Application pour l'Amicale

Créée pendant l'été 2019, cette application compatible Android et iOS permet aux étudiants d'avoir un accès facile aux informations du campus :
 - News de l'amicale
 - État des machines à laver
 - Liste des événements sur le campus
 - Stock du Proximo
 - Emploi du temps
 - Menu du RU
 - Disponibilité des salles libre accès
 - Réservation des Bib'Box
 - Et d'autres services de l'INSA
 
Ce dépôt contient la source de cette application, sous licence GPLv3.

## Contribuer

Vous voulez influencer le développement ? C'est très simple !

Pas besoin de connaissance, il est possible d'aider simplement en proposant des améliorations ou en rapportant des bugs par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)) ou sur [cette page](https://git.etud.insa-toulouse.fr/vergnet/application-amicale/issues), en vous connectant avec vos login INSA.

Si vous avez assez de connaissances et vous souhaitez proposer des modifications dans le code, [installez l'application](INSTALL.md) sur votre machine, réalisez votre modification et créez une 'pull request'. Si vous avez des problèmes ou des questions, n'hésitez pas à me contacter par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)).

## Technologies Utilisées
Cette application est faite en JavaScript avec React Native (framework Open Source créé par Facebook).

React Native permet de n'avoir qu'un seul code JavaScript à écrire pour Android et iOS. Pour compiler pour la plateforme souhaitée, il suffit d'effectuer une simple commande. Plus besoin de Mac pour développer une application iOS ! (Mais toujours besoin d'un pour compiler et publier sur l'App store...)

Cette application utilisait initialement Expo, permettant de simplifier grandement le développement et le déploiement, mais il a été abandonné à cause de ses limitations et de son impact sur les performances. Revenir sur Expo n'est pas possible sans un gros travail et une suppression de fonctionnalités non compatibles.

## [Installer l'application depuis ce dépot](INSTALL.md)

## [Notes sur l'état actuel du projet](NOTES.md)

## Liens utiles
* [Tutoriel JavaScript](https://www.w3schools.com/js) (Un minimum de connaissances en JavaScript est nécessaire)
* [Documentation React Native](https://reactnative.dev/docs/getting-started) (La techno de base)
* [Documentation React Native Paper](https://callstack.github.io/react-native-paper/) (Le framework d'UI)
* [Documentation React Navigation](https://reactnavigation.org/docs/getting-started) (Le framework de navigation entre écrans)
* [Documentation Jest](https://jestjs.io/docs/en/getting-started) (Tests unitaires JavaScript)
* [Documentation Flow](https://flow.org/en/docs/react/) (Utilitaire de typage statique pour JavaScript)
* [Webstorm](https://www.jetbrains.com/webstorm/buy/#discounts?billing=yearly) (Un logiciel pas mal que j'utilise et gratuit pour les étudiants/projets open-source)
