---
# System prepended metadata

title: PIT

---

# PIT

# Objectif du projet

Développement d'une application **d'édition de situation tactique** multi-utilisateurs sur tablette Android. Plusieurs utilisateurs vont pouvoir interagir sur une même intervention pour effectuer diverses actions.

Le projet est composé en deux partie :

- Éditeur graphique de gestion d'intervention.
- Éditeur graphique de la navigation et du pilotage automatique (Ex : tracer chemin en prenant des photos)
  - Permettre la navigation personnalisée du drone (éditeur 3D)
  - Prise de vue aérienne sur un chemin donné
  - Communication des images du drone vers l'application

## Projet

![](https://i.imgur.com/gbej7xU.png)

4 Grands Pôles : Front / Back / BDD /Drone

## Organisation

### Les équipes

Suivi avancement : Maxime
Front : Rémi & Maeva
Back : Alex & Alexis & Théo 
BDD : Maxime & Théo & Alex
Drône : Tanguy (& Maxime Si BDD finie & Maeva si Front fini)

## Environnement de travail :

### [Gitlab](https://gitlab.istic.univ-rennes1.fr/avanniekerk/pit)

### [Drive](https://drive.google.com/drive/folders/1_5YP_90EONI32peTjvf9_razfX7brfMO?usp=sharing)

### [Task Board](https://gitlab.istic.univ-rennes1.fr/avanniekerk/pit/-/boards/560)


### Connexion à la machine virtuelle : 

Nom de la machine virtuelle : pitgroupb
Accès au VPN : [148.60.11.46](https://istic-vpn.univ-rennes1.fr/remote/login?lang=en)
Connexion : ```ssh@148.60.11.46```
Mot de passe : groupapit

### Connexion à la base de donnée mangoDb : 

**Compte Google** 
Login : pitproject35@gmail.com
Mot de passe : ```\4TaA7K\!""V56vT```

**Lien** : [LIEN MANGODB](https://cloud.mongodb.com/v2/60190881ab216e6cf204e5da#clusters)

**Database access**
Login : pituser 
Mot de Passe : ```KRQfo7VPHr5aIQjT```

**Exemple d'intervention**

idIntervention: `123456789abcd`

## Scénarios

1°) Création d'une intervention sur Tablette
2°) Définition d'un endroit stratégique à aller voir
3°) Le drône part et prend une photo
4°) La photo est redirigé vers le serveur et la BDD
5°) Accession de la photo depuis la tablette

## Technos : 

### Front : 
Android Natif
Inspiration Carnet de Plouzeau & Charte Graphique dans PIT-Projet -> images CharteGraphique et GOC

### Back : 
NodeJS semble bien adapté avec MongoDB et bonne prise en main
Python (Librairie PyMongo avec Flask)?

### BDD :
MongoDB semble fait pour (hébergement de fichier : ) 
Nom / Date / Lieu / Images Acquises

### Drone : 

PX4: un firmware modulaire open source pour drones
MAVLINK: un protocole de communication pour drones
MAVSDK (Python/Java): le SDK pour parler en MAVLINK à des drones depuis différents langages
QGroundControl: un logiciel de station de contrôle au sol

Voir MD prof dispo pour plus d'infos sur MavSDK: https://hackmd.io/IpigPxqdQ4CXu0F-diG6mQ?view

### Docker : 

Un DockerFile par pôle
Un Dockercompose qui lance le tout grâce à la commande ```docker-compose up``` ou ```docker-compose up --build``` s'il y a une modification de la configuration du docker  
Ouverture des ports entre :
- Front et Serveur
- Serveur et DB
- Serveur et Passerelle de contrôle du drône

### Docker serv : 

docker build -t serv .
docker run -p 8080:8080 -d serv

### Node JS

Installation Node : 
sudo apt-get install curl 
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install nodejs
node --version

### MongoDb

Installation mongoDB : 
npm install mongodb

récupérer dans node.js le module : 
var MongoClient = require("mongodb").MongoClient;