Une application web pour gérer et recevoir des rappels d'anniversaires.
- Optionnel : Rappels SMS via Twilio
<img src="screenshots/add_birthday.png" alt="Ajout d'anniversaire" width="400"/>
<img src="screenshots/groups.png" alt="Gestion des groupes" width="400"/>
-
PHP 7.4 ou supérieur
- Pour SMS (optionnel) : définissez
TWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKEN,TWILIO_FROM_NUMBER(format E.164, par exemple +33612345678)
- Pour SMS (optionnel) : définissez
-
SQLite 3 ou MySQL 5.7+ / MariaDB 10.3+
-
Serveur web (Apache, Nginx, etc.)
-
Pour activer les préférences SMS, assurez-vous que les colonnes existent. Soit réexécutez le schéma, soit visitez
api/add_sms_columns.phpune fois pour ajouter :users.phone_number,users.sms_notifications, et les champs Twilio dansapp_settings.
- Téléchargez et extrayez l'archive dans votre répertoire web
- Assurez-vous que les permissions sont correctement configurées
- Lorsque les SMS sont configurés et que les utilisateurs ont opté pour un numéro de téléphone, le cron enverra également des rappels SMS.
- Suivez l'assistant d'installation
Pour des instructions détaillées, consultez le Guide d'installation.
L'application peut utiliser soit SQLite (par défaut), soit MySQL comme base de données. Pour configurer l'application, copiez le fichier .env.example en .env et modifiez-le selon vos besoins.
DB_TYPE=sqlite
SQLITE_PATH=./birthday_reminder.db
DB_TYPE=mysql
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_DATABASE=birthday_reminder
MYSQL_USER=birthday_user
MYSQL_PASSWORD=votre_mot_de_passe
- Guide d'installation - Instructions détaillées pour installer l'application
- Guide d'utilisation - Guide complet pour utiliser l'application
- Documentation de la base de données - Structure et schéma de la base de données
- Rapport de tests - Résultats des tests de l'application
Si vous avez déjà utilisé l'application avec SQLite et souhaitez migrer vers MySQL, suivez ces étapes :
- Configurez MySQL comme indiqué dans le Guide d'installation
- Exécutez le script de migration :
php database/migrate_sqlite_to_mysql.phpbirthdayReminder/
├── api/ # Backend PHP
│ ├── auth.php # Authentification
│ ├── birthdays.php # Gestion des anniversaires
│ ├── config.php # Configuration
│ ├── create_tables.php # Création des tables SQLite
│ ├── error_handler.php # Gestion des erreurs
│ ├── groupes.php # Gestion des groupes
│ ├── send_notifications.php # Envoi des notifications
│ └── utils.php # Fonctions utilitaires
├── database/ # Scripts de base de données
│ ├── migrate_sqlite_to_mysql.php # Migration SQLite vers MySQL
│ ├── mysql_schema.sql # Schéma MySQL
│ ├── setup_mysql.php # Configuration MySQL
│ └── test_mysql_connection.php # Test de connexion MySQL
├── front/ # Frontend
│ ├── app.js # Application principale
│ ├── auth-manager.js # Gestion de l'authentification
│ ├── calendar.js # Composant calendrier
│ ├── data-manager.js # Gestion des données
│ ├── index.html # Page principale
│ ├── notification-manager.js # Gestion des notifications
│ └── styles.css # Styles CSS
├── tests/ # Tests
│ ├── run_tests.html # Interface de test
│ ├── test_api.php # Tests de l'API
│ ├── test_mobile_compatibility.js # Tests de compatibilité mobile
│ ├── test_performance.js # Tests de performance
│ └── test_report.md # Rapport de test
├── .env # Variables d'environnement
├── .env.example # Exemple de variables d'environnement
├── DATABASE.md # Documentation de la base de données
├── INSTALLATION.md # Guide d'installation
├── README.md # Ce fichier
└── USER_GUIDE.md # Guide d'utilisation
Les contributions sont les bienvenues ! Si vous souhaitez contribuer au projet, veuillez suivre ces étapes :
- Forkez le dépôt
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/amazing-feature) - Committez vos changements (
git commit -m 'Add some amazing feature') - Poussez vers la branche (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.