Les meilleurs développeurs informatique freelances sont sur Codeur.com
Terminé · Moins de 500 € · 54 offres · 12336 vues · 36 interactions
1. Identité du projet
France Crashes 39 45 est une base documentaire consacrée aux crashs aériens survenus durant la Seconde Guerre mondiale. Elle existe depuis 2004 et contient 9500 fiches de crashs et 30500 fiches d’aviateurs constituant les équipages. Le site est d’accès gratuit et sans publicité.
L’objectif de l’API mobile est de permettre, depuis un cimetière, d’identifier un aviateur à partir de sa tombe et d’afficher l’avion + l’équipage dans lequel il servait. Résultat de la recherche : une fiche simplifiée par rapport à celle du site. Accès possible à la fiche complète par bouton/lien.
Règle fondamentale : Jamais de fiche aviateur seule. Toujours avion + équipage.
Une base d’essai avec échantillon de données est disponible (identique à la base de FranceCrashes)
2. Comportement selon l’appareil
2.1 Sur ordinateur (PC / laptop)
• Pas d’API mobile
• Interface identique au site existant
2.2 Sur smartphone / tablette
Afficher une page d’accueil avec deux options :
1. Saisir nom + initiale/prénom
2. Accéder au site complet (simple lien)
2.3 Règle de recherche
Recherche uniquement sur :
• Nom et initiale du prénom ou prénom complet
• Renvoi d’une liste de resultats même si 1 seul réponse, ceci pour vérifier que c’est le bon aviateurs
2.4 Détection mobile / desktop (front end uniquement)
La détection du type d’appareil est effectuée par le front end. L’API ne doit pas détecter Android, iOS, Windows ou macOS. Aucune adaptation du JSON selon l’appareil.
4. Routes API
Route 1 — Recherche aviateurs
GET /api/aviateurs?nom=SMITH&prenom=J
Route 2 — Fiche avion + équipage
GET /api/aviateur/{id_aviateur}/avion
5. Structure JSON
5.1 Liste aviateurs
json
[
{
"id_aviateur": 4821,
"nom": "SMITH",
"prenom": "John",
"grade": "F/Sgt",
"unite": "RAF",
"cimetiere": "Cimetière communal de Calais"
}
]
5.2 Fiche avion + équipage (tables t_avions / t_equip)
json
{
"avion": {
"num_ident": 1234,
"nation": "RAF",
"date_crash": "[Téléphone visible pour les membres Pro]",
"type_appareil": "Lancaster",
"matricule": "LM456",
"unite": "No. 50 Squadron",
"mission": "Raid de bombardement sur Calais",
"local_chute": "Calais",
"departement": "Pas-de-Calais",
"circonstances": "Abattu par un chasseur de nuit"
},
"equipage": [
{
"grade": "F/Sgt",
"nom": "SMITH",
"prenom": "John",
"poste": "Bomb Aimer",
"appart": "RAF",
"etat": "Décédé",
"lieu_inhum": "Cimetière communal de Calais"
}
],
"fiche_complete_url": "[URL visible pour les membres Pro]"
}
6. Affichage mobile
Bloc avion (t_avions)
Affichage obligatoire sous forme : Titre du champ : Valeur
Ordre strict :
1. Numéro d’identification : num_ident
2. Nation : nation
3. Date du crash : date_crash
4. Type d’appareil : type_appareil
5. Matricule : matricule
6. Unité : unite
7. Mission : mission
8. Lieu de chute : local_chute
9. Département : departement
10. Circonstances : circonstances
Bloc équipage (t_equip)
Affichage obligatoire sous forme : Titre du champ : Valeur
Ordre strict :
1. Grade : grade
2. Nom : nom
3. Prénom : prenom
4. Poste : poste
5. Appartenance : appart
6. État : etat
7. Lieu d’inhumation : lieu_inhum
7. Logique de détermination de l’État (obligatoire)
L’API doit lire les champs internes de la base et convertir le champ coché en valeur lisible.
Correspondances obligatoires :
• etat_sauf → Récupéré
• etat_evd → Échappé
• etat_evdp → Évadé
• etat_pow → Prisonnier
• etat_dcd → Décédé
Règles :
• Un seul champ est coché dans la base.
• L’API doit détecter lequel est coché.
• L’API doit renvoyer uniquement la valeur lisible, jamais le code interne.
• L’interface mobile doit afficher exactement cette valeur.
• Si aucun champ n’est coché : → etat = "Inconnu"
9. Sécurité
• clé API obligatoire
• rate limiting
• validation stricte des paramètres
• requêtes SQL préparées
• HTTPS obligatoire
• CORS limité
• masquage des erreurs internes
• JSON strict (pas de champs supplémentaires)
10. Tests API
Tests obligatoires :
• recherche nom / initiale / prénom
• ID valide / invalide / inexistant
• multi résultats / un seul résultat
• format date JJ MM AAAA
• état selon champ coché
• sécurité (clé API, injection SQL, CORS)
• performance (< 300 ms)
• JSON strict
11. Interface mobile
Page d’accueil mobile :
• Saisir nom + initiale/prénom
• Accéder au site complet (simple lien)
L’API mobile est un module séparé. Ne jamais imiter ou modifier le site principal.
12. Paramètres configurables par l’administrateur
Un fichier de configuration doit permettre de modifier :
• nom de la base
• utilisateur SQL
• mot de passe SQL
• adresse du serveur SQL
• clés API
• paramètres de sécurité (rate limiting, CORS)
Règles :
• fichier séparé du code
• protégé par mot de passe ou accès restreint
• aucune valeur codée en dur
• documentation claire
• modification possible sans recompilation
Formats acceptés : .env, JSON
Budget indicatif : Moins de 500 €
Publication : 22 juillet 2026 à 23h08
Profils recherchés : Développeur spécifique freelance , Expert BDD freelance , Spécialiste de la sécurité informatique freelance , Développeur back-end freelance , Développeur API freelance
54 freelances ont répondu à ce projet
46 propositions de devis en moins de 2h
Montant moyen des devis proposés : 2 550 €
Estimation du délai : 6 jours
Projet réalisé par Leonardo Correia Mendes