Documentation DrogPulseAI

Version 1.0 - 17/04/2025

Présentation Générale

DrogPulseAI est une application mobile de gestion de contacts professionnels développée spécifiquement pour les professionnels du secteur de la quincaillerie. Son slogan "Le rythme intelligent de votre quincaillerie" illustre sa mission : connecter, anticiper et optimiser les relations professionnelles.

L'application est structurée selon une architecture en trois couches :

  1. Application Android native (frontend)
  2. API REST en PHP (backend)
  3. Base de données MySQL (stockage)
Application Android
API PHP (REST)
BDD MySQL

Spécifications Fonctionnelles

Fonctionnalités principales

Authentification sécurisée

  • Login avec email/mot de passe
  • Création de compte avec géolocalisation automatique

Gestion des contacts

  • Création de contacts avec informations complètes
  • Visualisation de la liste des contacts
  • Recherche multicritères
  • Modification et suppression

Géolocalisation

  • Capture automatique des coordonnées GPS
  • Stockage de la position pour chaque contact

Parcours utilisateur

1

Inscription/Connexion

L'utilisateur crée un compte ou se connecte. Ses coordonnées GPS sont automatiquement capturées lors de l'inscription.

2

Page d'accueil

Affichage de la liste des contacts existants. Possibilité de rafraîchir et d'ajouter des contacts.

3

Création/Modification

Formulaire avec champs et capture automatique de la position GPS.

4

Recherche

Filtrage par nom, prénom ou téléphone avec résultats instantanés.

Architecture Technique

L'architecture de DrogPulseAI suit le modèle client-serveur, avec une séparation claire entre les trois couches principales. Cette organisation assure une maintenance facilitée et une évolutivité optimale.

Frontend

Application Android native (Java)
  • Interface utilisateur
  • Logique de présentation
  • Gestion des requêtes API

Backend

API REST (PHP)
  • Traitement des requêtes
  • Logique métier
  • Sécurité et validation

Stockage

Base de données MySQL
  • Stockage persistant
  • Relations et contraintes
  • Indexation pour performance

Couche Application Android

Structure du projet

app/
├── build.gradle.kts           # Configuration Gradle
├── src/main/
    ├── java/com/drogpulseai/  # Code source Java
    │   ├── activities/        # Écrans de l'application
    │   ├── adapters/          # Adaptateurs pour RecyclerView
    │   ├── api/               # Configuration API
    │   ├── models/            # Modèles de données
    │   └── utils/             # Utilitaires
    ├── res/                   # Ressources
    └── AndroidManifest.xml    # Configuration Android

Composants principaux

Composant Description
Activities Écrans d'UI pour l'interaction utilisateur
Retrofit Bibliothèque pour les appels API REST
RecyclerView Affichage optimisé des listes
Google Play Services Services de géolocalisation
SharedPreferences Stockage local pour la session utilisateur

Écrans de l'application

LoginActivity

Écran d'authentification avec email et mot de passe

RegisterActivity

Création de compte utilisateur avec capture de localisation

MainActivity

Liste des contacts avec recherche et options de menu

ContactFormActivity

Formulaire de création/modification de contact

ContactSearchActivity

Recherche avancée de contacts

Couche API PHP

Structure des fichiers

api/
├── auth/                 # Authentification
│   ├── login.php
│   └── register.php
├── contacts/             # Gestion des contacts
│   ├── list.php
│   ├── search.php
│   ├── create.php
│   ├── update.php
│   ├── delete.php
│   └── details.php
├── config/               # Configuration
│   └── database.php
└── utils/                # Utilitaires
    └── response.php

Endpoints API

Méthode URL Description
POST /auth/login.php Authentification
POST /auth/register.php Création de compte
GET /contacts/list.php Liste des contacts
GET /contacts/search.php Recherche de contacts
GET /contacts/details.php Détails d'un contact
POST /contacts/create.php Création d'un contact
PUT /contacts/update.php Mise à jour d'un contact
DELETE /contacts/delete.php Suppression d'un contact

Format des réponses

{
    "success": true/false,
    "message": "Message informatif",
    "data": { /* Données optionnelles */ }
}

Couche Base de Données

Schéma de la base de données

users
id (PK)
nom
prenom
telephone
latitude
longitude
email (unique)
password
created_at
updated_at
1:n
contacts
id (PK)
nom
prenom
telephone
email
notes
latitude
longitude
user_id (FK)
created_at
updated_at

Scripts SQL des tables

Table users

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(100) NOT NULL,
  `prenom` varchar(100) NOT NULL,
  `telephone` varchar(20) NOT NULL,
  `latitude` double NOT NULL,
  `longitude` double NOT NULL,
  `email` varchar(100) NOT NULL UNIQUE,
  `password` varchar(255) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
);

Table contacts

CREATE TABLE `contacts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(100) NOT NULL,
  `prenom` varchar(100) NOT NULL,
  `telephone` varchar(20) NOT NULL,
  `email` varchar(100) NULL,
  `notes` text NULL,
  `latitude` double NOT NULL,
  `longitude` double NOT NULL,
  `user_id` int(11) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
);

Guide d'Installation

Prérequis

Serveur

  • WampServer, XAMPP ou équivalent
  • PHP 7.4+
  • MySQL 5.7+

Développement Android

  • Android Studio
  • JDK 8+
  • SDK Android (API level 24+)

Déploiement du Backend

1

Création de la base de données

CREATE DATABASE drogpulseai;
USE drogpulseai;

-- Exécuter ensuite les scripts de création des tables
2

Installation des fichiers API

  • Copier le dossier api dans le répertoire web (ex: www/drogpulseai/)
  • Configurer les paramètres de connexion dans config/database.php
3

Configuration du serveur web

  • Assurez-vous que le module mod_rewrite est activé (Apache)
  • Vérifiez que les extensions PHP pdo_mysql et json sont activées

Déploiement de l'Application

1

Configuration de l'API URL

Modifier l'URL de base dans ApiClient.java :

private static final String BASE_URL = "http://votre-serveur.com/drogpulseai/api/";
2

Génération de l'APK

  • Dans Android Studio : Build > Generate Signed Bundle / APK
  • Sélectionner APK et suivre les instructions
3

Installation sur les appareils

  • Transférer l'APK généré sur les appareils
  • Installer en permettant les sources inconnues

Guide d'utilisation

Création d'un compte

  1. Lancer l'application DrogPulseAI
  2. Cliquer sur "S'inscrire"
  3. Remplir le formulaire avec les informations requises
  4. Accepter les permissions de localisation
  5. Valider l'inscription

Gestion des contacts

Ajouter un contact

  1. Sur l'écran principal, appuyer sur le bouton "+" en bas à droite
  2. Remplir le formulaire de contact
  3. Appuyer sur "Enregistrer"

Rechercher un contact

  1. Appuyer sur l'icône de recherche dans la barre d'action
  2. Saisir le nom, prénom ou téléphone recherché
  3. Les résultats s'affichent automatiquement

Modifier/Supprimer un contact

  1. Dans la liste des contacts, appuyer sur le contact à modifier
  2. Modifier les informations souhaitées
  3. Appuyer sur "Enregistrer" pour valider les modifications
  4. Ou appuyer sur "Supprimer" pour supprimer le contact

Sécurité et Performance

Mesures de sécurité

Authentification

Mots de passe hashés avec password_hash (PHP)

Injection SQL

Utilisation de requêtes préparées (PDO)

Transport

HTTPS recommandé en production

Validation

Double validation des données (client + serveur)

Optimisations de performance

Recyclage des vues

RecyclerView pour des listes fluides

Mise en cache

Images et données temporaires

Requêtes asynchrones

Toutes les opérations réseau

Pagination

Chargement par lots des contacts nombreux

Maintenance et Évolutions

Procédures de maintenance

Sauvegarde BDD

Backup quotidien recommandé

Mise à jour sécurité

Vérification mensuelle des dépendances

Logs

Surveillance des erreurs API via les logs serveur

Évolutions possibles

Cartographie

Visualisation des contacts sur une carte

Synchronisation hors-ligne

Support du mode déconnecté

Notifications push

Alertes pour nouveaux contacts

Import/Export

Fonctionnalités CSV/vCard

Version iOS

Portage vers la plateforme Apple