Martin-Bruel / ps7-20-21-al-iam1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Polyville active

Groupe AL-IAM1
Bruel Martin, Lanoux Nicolas, Lecavelier Maëva, Striebel Florian

Une application de découverte des magasins alentours
Issues · Backlog · Installation

Sommaire

A propos du projet

Notre projet est un système de découverte de points d’intérêts (commerces, musées, cinéma, plage, etc…). Les utilisateurs peuvent connaître les points d’intérêt connectés sur le même réseau qu'eux grâce à une application mobile. Ils peuvent aussi recevoir des notifications lorsqu'ils sont à proximité de ces points d'intérêt. Ces notifications correspondent au contexte actuel (météo, horaires d'ouverture...). Une API est également mise à disposition afin de connaitre l'affluence des magasins en fonction des jours. Nous mettons également à disposition un système de monnaies locales permettant ainsi de soutenir les commerces locaux. Les visiteurs peuvent créditer leur compte en monnaies locales directement depuis l’application mobile et payer en magasin de façon sécuriser avec le Bluetooth.

Installation

Téléchargez la dernière version depuis la liste des releases .

Prérequis

Mobile :

  • Android 10 (physique)
  • Android studio

Store :

  • java 11
  • maven
  • bluetooth
  • docker

Mise en place

  1. Cloner le repo
git clone https://github.com/PNS-PS7and8/ps7-20-21-al-iam1.git
cd ps7-20-21-al-iam1
  1. Démarrer l'API (linux / wsl2)
cd api
docker build -t ps7-20-21-al-iam1/api .
docker run -it -p 8080:8080 ps7-20-21-al-iam1/api

Après avoir lancé l'API, vous pouvez vous rendre sur ce lien pour accéder à la documentation.

  1. Vérification du lancement de l'API (test cucumber)
cd ../mock_api
mvn clean package
  1. Démarrer le serveur du magasin

Le bluetooth doit être activé aux lancement du serveur mais peut-être désactivé par la suite

cd ../store
mvn clean package
mvn exec:java -Dexec.mainClass="upnpService.Main"
  1. Lancer l’application mobile

Pour la première fois, connectez votre téléphone à l'ordinateur et activez le mode debug. Compilez et lancez l'application depuis Android studio. Pensez à donner l'autorisation de localisation à l'application.

Implémenter sa propre API météo

Comment ça marche ?

UML diagram Click here for better quality

Ajouter une API

  • Créer une classe qui représente l'objet API. Elle doit étendre la classe WeatherAPI.

  • Il faut implémenter des méthodes (voir les commentaires de WeatherAPI pour comprendre leur fonctionnement)

  • Il faut créer une URL pour faire des requête HTTP. Pour cela, il est possible d'utiliser la méthode StringUrlBuilder et d'en ajouter d'autres si nécessaire. Pour les deux cas donnés, le StringUrlBuilder est utilisé dans le constructeur pour créer l'URL.

La méthode buildURL crée l'URL finale, la requête vers l'API météo dépend de l'API utilisée.

Contribution

Afin de bien organiser le projet chaque nouvelle fonctionnalité doit respecter les contraintes suivantes :

  1. Création d'une Issue associée à la fonctionnalité. Cette issue doit respecter la Definition of ready:

    • Une description
    • Des critères d’acceptation
    • Un test d’acceptation (minimum en langage naturel ou un schéma)
    • Une estimation en points
    • Un tag Moscow
  2. Création d'une branche depuis develop. Cette branche doit se nommer feature/<nomDeLaFeature>

  3. Lorsque que la fonctionnalité est prête, une pull request peut être créée depuis la branche vers develop, tous les membres doivent êtres ajoutés en reviewer. Afin de valider l'issue, celle-ci doit respecter la Definition of done:

    • Les tests d’acceptation passent
    • La feature a été revue par un autre membre du groupe
    • La User Story est intégrée sur la branche commune
    • Les nouveaux et les anciens tests unitaires passent
    • Le build complet passe sur la CI
  4. La branche peut être merge et l'issue peut être fermée

About


Languages

Language:Java 98.1%Language:Gherkin 0.8%Language:Dockerfile 0.6%Language:Kotlin 0.5%