INSCRIPTION –
[nom(string,100) ; prenom(String,100); postnom(string,100); adresse(string,255), num_tel(string,
100); password(string(hash)100 ); mail(string,100 //exemple@[Link]), datenaissance (date),
genre(string 2, val (“M, F”))]
CONTRAINTES:
Textes (nom; etc…) : //aA-zZ, -, ‘ //) min : 3 / max : 50
Adresse : aA-zZ, -, _, *, ‘, 0-9)
Email : /^[^\s@]+@[^\s@]+\.[^\s@]+$/
Tel : /^\+?[1-9]\d{1,14}$/
Password : 1 Majuscule, 1 caractère spéciale, 1 chiffres, 8min, 12max // [nom, postnom, prénom*3 ;
MOTDEPASSE, 1234567890, AZERTYUIOP,POIUYTREZA, QWERTYUIOP, POIUYTREWQ, KINSHASA,
CONGO, datedenaissance, numerodetelephone, adresse, mots IMPOLIES) – hash (Blowfish,
Php_hash(BENCRYPT)] - /(?=.*[A-Z])(?=.*\W)(?=.*[0-9]).{8,12}/
Carte d’identité (Passeport, Carte d’électeur(), Permis de conduire) [recto-verso] (Png, jpeg, jpg, pdf ;
webb)
IMAGE_photo de profil (jpeg, jpg, png) (moins de 10mo);
Etat_du_profil(pending, confirmed, denied)
STATUT(proprietaire, pas proprietaire, heritier) ??
Contrainte Frontend :
Champs vides : surbrillance en rouge des champs avec message ‘compléter ce champ et compléter
les champ manquant »
CONTRAINTES SYST :
Latence : à partir de 15sec (modal pour ressayer pour un problème inconnu (vérifier votre connexion
internet, puis réessayer ultérieurement ) Si essaie = 3 : « réessayer ultérieurement » ET « stocker et
demander de signaler l’erreur ») Après 60min réinitialiser le compteur.
Erreur : (404, 500, 501, 400, 401 : modal avec le message pour signaler l’erreur au service de
maintenance et enregistrement des logs si erreur est supérieure à 5)
Fonctions :
genUsername(nom+3last num de tel + 2last postnom : si le username existe déjà après verification
des noms complets (hasard) on fait, nom+3middle_num_tel + 2last_postnom );
genDefaultProfilePicture(2premier du prenom)
genSlug(2premier nom – 3dernier du numero- 2 dernier du postnom + MathFloor*random(9-99))
Vérification de l'email (DNS) : Avant d'envoyer l'email asynchrone, vérifiez si le domaine (ex:
@[Link] possède des enregistrements MX valides pour
éviter les emails jetables.
Rate Limiting : Limitez le nombre de tentatives d'inscription par adresse IP par heure pour éviter que
des bots ne saturent votre base de données.
Structure :
signUp (nom, etc. & infos personnelles importantes) – Vérifie l’existence du (mail ou du nom,prenom,
postnom ou numero) dans la bdd ; if true : « l’email existe déjà » ,false : continue- Envoie le mail de
vérification(asynchrone) -carte d’identité & photo de profil (validation d’environ 72h ouvrables max) –
vérification de l’email (asynchrone) directement
Chiffrement :
Password, carte_identité
Case à cocher :
Politique de cofidentialité & conditions d’utilisation
Captcha & Recaptcha
FRONT :
Indicateur de force du mot de passe
Prévisualisation (Preview) : Permettre à l'utilisateur de voir l'image qu'il a téléchargée avant de
soumettre le formulaire.
LOGIN
A{Email/numtel/username/} + B{password}
If ( A exist()){
If (B correct(){
Log( redictToDashoard())}
else{
Send(Mdp is not correct avec surbrillance en rouge du champ)
Counter ++
limtTriesPerHour( if counter 5 in 1hours block for this IP address, after 1hour reset the counter to 0,
but if it happens three time in a row in 24h block this IP)
}else {
Send(“Identifiant ou mot de passe incorrect” proposition de créer un compte avec message complet
« vérifier l’orthographe, et la typo)
Check boxes :
Captcha
Se souvenir de moi (stocker les coockies d’authentifixationp)
Sécurité :
Si l'utilisateur se connecte depuis une nouvelle IP ou un nouvel appareil (User-Agent différent),
envoyez un email automatique : "Nouvelle connexion détectée sur votre compte". C'est une sécurité
très appréciée des utilisateurs.
Mot de passe oublié ? Envoyer un token de récupération (15min) par mail/par numéro
Interface mdp oublié – il ecrit l’email ou numéro (if exist() dans la bdd, là qu’on génère le token de
connexion)
Si il ecrit on vérifie avec l’ancier
CSRF Protection : Pour chaque formulaire (Login, Reset), génère un token CSRF masqué pour
empêcher les attaques par falsification de requête.
Session Timeout : Si l'utilisateur est inactif pendant 2 heures, déconnecte-le automatiquement
(sauf s'il a coché "Rester connecté").
Log de sécurité : Enregistrer dans les logs chaque demande de réinitialisation avec l'adresse IP pour
détecter les abus.
Counter de cas d’oublie de mot de passe, pour répertorier les cas de personnes qui oublient bcp de
masse / vérifie l’âge de la personne pour voir si elle est supérieure à 59ans.
FRONT :
Cacher le mot de passe & le voir (password à texte)
DASHBOARD
1 ; infos : mail / username / photo profil / adresse / nume tel /
Statut
Les propriétés / (co-propriétés)
FONCTIONALITES :
Rechercher un titre (5$)
Démarrer une demande ()
Être notifié (par mail / par message(1$/notification) / par WhatsApp / via l’application (push))
Vendre (démarrer un processus de vente)
Céder(autoriser la cession)
Payer(les différents frais via Millenium Pay)
Contacter le service client du ministère
Voir les avancées de sa demande
Voir les étapes relatives aux demandes (selon les cas) (Payant ? ou Gratuit ? )
Vidéo d’accueil pour expliquer (dans toutes les langues Nationales (tsh, kikongo, swahili, lingala,
français, anglais)
IA (guider, recevoir des questions simples)
Pages{
Accueil : vue générale des actions ;
Demande : créer une nouvelle demande ou voir mes demandes, détails de mes demandes
VENTE/CEDER : démarrer un processus de vente ou de sécession, voir les ventes ou sécessions en
cours
Payements : payer, voir les payements en cours, en attente
Contact : contacter le service client du ministère (parler avec un conseiller (10$))
INFOS : voir le fonctionnement de l’application/le système /étapes à suivre pour faire une demande,
achat, sécession, etc.
MON PROFIL : voir les informations (etat, email, nom complet, username, num de tel, propriété,
adresse) : modifier(), desactiver(), logout(), modfificationdelalangue()
Paramètre – Mon profil – nous contacter – faire un don (à millenium) – Politique de confidentialité –
CGU-langue)
Liens externes : Min. des Aff. Foncières / Cadastre Foncier / gouvernement de la rdc/Millenium)
[Langue : Fr, Ang, Ling, Swahili]