Un mini-site de liste de naissance privé, simple et sans dépendance : vos proches se connectent avec un mot de passe partagé, découvrent les affaires dont le bébé a besoin et réservent un cadeau pour éviter les doublons. Pas de prix, pas de marque, pas de lien d'achat : l'accent est mis sur l'occasion (Leboncoin, Vinted, ressourceries…) et le fait-maison.
Écrit en PHP avec une base SQLite, sans framework ni dépendance externe, pour fonctionner sur un hébergement mutualisé classique.
- Accès privé par mot de passe partagé pour les invités.
- Catalogue par catégories : photo, nom, description — sans prix ni boutique.
- Réservation d'un cadeau avec prénom + email (l'email reste privé, jamais affiché).
- Quantités partielles (ex. « 3 / 20 ») avec barre de progression et bandeau « Déjà offert » quand le besoin est couvert ; articles à participation illimitée.
- Étiquettes d'utilité (« + » / « ++ ») et « ⏱ Besoin tôt ».
- Gestion de ses réservations par lien privé reçu par email (voir / annuler sans compte ni mot de passe) ; annulation aussi possible via un jeton en cookie.
- Notifications par email aux parents à chaque réservation + reçu de confirmation à la personne. Option de validation par email (double opt-in) : la réservation reste en attente jusqu'au clic sur le lien de validation.
- Liens de recherche d'occasion Leboncoin et Vinted par article.
- Administration complète : articles (photos, description enrichie, quantité, étiquettes, ordre), catégories, réservations, personnes (regroupées par donateur), paramètres (titre, intro, parents, mot de passe, emails), charte graphique (couleurs) et photo d'en-tête (position / format).
- Aucune dépendance : éditeur enrichi, agrandissement des photos et thème faits maison.
- PHP 8.1+ (testé avec PHP 8.5), avec les extensions PDO SQLite et GD (redimensionnement / validation des images).
- Pour l'envoi d'emails : une fonction
mail()opérationnelle (facultatif).
-
Récupérer le code
git clone https://github.com/iprospective/mmi-lists.git cd mmi-lists -
Créer la configuration (contient vos mots de passe, non versionnée) :
cp config.example.php config.php
Puis éditez
config.php: titre, texte d'accueil, prénoms des parents, mot de passe visiteurs (guest_password) et mot de passe d'administration (admin_password). Les emails et la charte graphique sont facultatifs et réglables ensuite depuis l'administration. -
Droits d'écriture : le dossier
data/(base SQLite) etimg/products/(photos) doivent être accessibles en écriture par le serveur web. La base est créée automatiquement au premier chargement. -
Déploiement : pointez le serveur web (Apache) sur la racine du projet. Le
.htaccessfourni active les URLs propres et masque le code applicatif, la base etconfig.php. Une installation dans un sous-répertoire est prise en charge.
Avec le serveur intégré de PHP :
php -S 127.0.0.1:8000 index.phpPuis ouvrez http://127.0.0.1:8000. La page d'accueil demande le mot de passe visiteurs ;
l'administration est accessible sur /admin (mot de passe d'administration).
Mini-framework maison : un point d'entrée unique (index.php) amorce l'application
(app/bootstrap.php), qui route la requête vers un contrôleur.
app/ Amorçage, routeur, helpers, autoloader
controllers/ Contrôleurs (espace visiteurs + Admin/)
services/ Logique métier (articles, réservations, paramètres, emails, base…)
templates/ Gabarits d'affichage (PHP pur)
assets/ CSS et JavaScript (sans dépendance)
data/ Base SQLite (non versionnée)
img/ Photos d'articles et d'en-tête (non versionnées)
config.php Configuration locale (non versionnée)
Les emails des donateurs ne sont jamais affichés publiquement. La base SQLite, les
photos et config.php ne sont pas versionnés et sont bloqués en accès direct par le
serveur.
Ce projet est un logiciel libre distribué sous licence
GNU Affero General Public License v3.0
(voir le fichier LICENSE). Code source :
https://github.com/iprospective/mmi-lists.