No description
  • Kotlin 62.8%
  • HTML 37.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-09 20:09:26 +02:00
.gradle Pouete 2026-02-16 10:09:57 +01:00
.idea Pouete 2026-02-16 10:09:57 +01:00
app Delete app/google-services.json 2026-04-09 20:09:26 +02:00
build/reports/problems Ajout du README.md 2026-04-09 20:01:17 +02:00
gradle Visualisation d'un détail de saferiders 2025-08-22 16:21:34 +02:00
.gitignore Ajout du .gitignore 2026-02-16 10:27:26 +01:00
build.gradle.kts Mofidication de la structure de l'application 2026-02-14 20:56:59 +01:00
gradle.properties Fusion d'un projet qui récupère la localisation en arrière plans 2025-02-08 19:03:40 +01:00
gradlew Implementation de Firebase Auth 2025-06-27 16:08:57 +02:00
gradlew.bat Fusion d'un projet qui récupère la localisation en arrière plans 2025-02-08 19:03:40 +01:00
local.properties Ajout du README.md 2026-04-09 20:01:17 +02:00
README.md Ajout du README.md 2026-04-09 20:01:17 +02:00
settings.gradle.kts Fusion d'un projet qui récupère la localisation en arrière plans 2025-02-08 19:03:40 +01:00

Sentinelle - Veille sur vous

Sentinelle est une application mobile Android faite avec Kotlin et Jetpack Compose. C'est mon projet de fin de formation pour le titre professionnel de Concepteur Développeur d'Application (2025-2026).

L'idée vient d'un truc simple : j'avais l'habitude de prévenir quelqu'un avant chaque sortie un peu incertaine, mais ça ne garantissait rien en cas de vrai problème. Sentinelle automatise ça — tu définis un minuteur, si tu ne l'annules pas à ton arrivée, tes proches reçoivent automatiquement ta localisation et des enregistrements audio.

Documents de conception

Stack

Application mobile

  • Kotlin + Jetpack Compose
  • Android API 24+ (Android 7)

API

  • Django (Python) — API REST
  • MySQL
  • Firebase Auth (les tokens sont vérifiés côté API, aucun mot de passe stocké en base)
  • Twilio pour les SMS

Comment ça marche

L'utilisateur lance un minuteur avant de partir. Pendant toute la durée, l'appli tourne en arrière-plan via un Service Android — elle enregistre le micro par cycles de 5 minutes et envoie les coordonnées GPS toutes les 10 secondes. Si la connexion est coupée, les données s'accumulent en file d'attente et sont envoyées dès qu'elle revient.

Si le minuteur arrive à zéro sans être annulé, un SMS est envoyé au contact avec un lien vers une page web qui affiche le trajet et les enregistrements audio.

Il y a aussi un bouton SOS manuel pour envoyer la position instantanément.

Architecture

Le projet suit une architecture N-tiers : le client Kotlin communique avec une API REST Django qui accède à une base MySQL. Le site web (aussi sous Django) sert principalement à afficher les trajets aux contacts qui reçoivent le lien.

Déploiement

L'API se déploie automatiquement sur un serveur OVH via GitHub Actions à chaque merge sur main. L'appli Android est publiée manuellement sur le Play Store via un App Bundle signé.


Axel Vincent Jaunet — CDA 2026