Mama Calendar – application de rappel multiplateforme

Written by

in

Mama Calendar est une application d’événements et de rappels multiplateforme écrite en React Native (Expo) avec deux implémentations backend : Node.js + MongoDB et PHP + MariaDB.

L’application vous permet de créer des événements avec catégorisation emoji, de sélectionner le type de répétition (une fois, annuellement, mensuellement, hebdomadairement, quotidiennement) et de visualiser les événements importants des 3 prochains jours dans un onglet « Événements importants » séparé.

Pile technologique

Le frontend est écrit en React Native 0.86 via Expo SDK 57 avec TypeScript, Expo Router pour la navigation et react-native-reanimated pour les animations. Les symboles d’exposition sont utilisés pour les icônes (symboles SF sur iOS, icônes matérielles sur Android/Web).

Le backend est implémenté en deux versions :

  • Node.js : Express 4, MongoDB 8 via driver natif, authentification personnalisée avec scrypt + salt, gestion manuelle des tokens. Docker Compose affiche le client (nginx), le serveur et MongoDB.
  • PHP : PHP 8.2 sans frameworks, PDO + MariaDB 11, bcrypt pour le hachage de mot de passe, votre propre routeur et chargement automatique PSR-4 via Composer.

Fonctions applicatives

  • Enregistrement et autorisation : système simple avec nom d’utilisateur/mot de passe et jetons du porteur
  • Événements CRUD : créez, affichez, modifiez et supprimez des événements avec date, emoji et type de répétition
  • Filtrage intelligent : l’onglet Événements importants affiche les événements des trois prochains jours, en tenant compte des règles de répétition. Par exemple, les événements annuels affichent l’occurrence annuelle la plus proche, mensuellement – par jour du mois, hebdomadairement – par jour de la semaine.
  • Sélecteur d’emoji : 20 emoji prédéfinis pour une catégorisation rapide des événements
  • Mise en surbrillance des événements d’aujourd’hui : les événements d’aujourd’hui sont mis en évidence sur un fond rouge (#B71C1C)
  • Thème sombre : Détection automatique du jeu de couleurs du système avec des palettes séparées pour le thème clair et sombre
  • Internationalisation : Langues russe et anglaise via React Context
  • Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
  • Points de terminaison d’administration : gestion des utilisateurs, des jetons et effacement de la base de données via les jetons principaux

Pourquoi deux implémentations backend ?

La version Node.js est la principale, mais la version PHP existe comme alternative à un hébergement plus classique. L’API est totalement identique, ce qui permet de basculer entre elles sans changer le code client.

Infrastructures

L’ensemble de la pile est généré via Docker Compose : le client est assemblé via une construction en plusieurs étapes (Expo export → nginx alpine), un serveur sur Node.js, MongoDB 8. Pour la version PHP, il existe un fichier de composition séparé avec MariaDB 11 et phpunit pour les tests.

L’assemblage de la version Web est automatisé par un script PowerShell qui corrige l’API_URL avant l’expo export et restaure les originaux après.

Sortie

Mama Calendar est une application multiplateforme complète qui couvre le cycle complet : depuis l’interface mobile et Web sur React Native jusqu’à deux options côté serveur. Le projet est intéressant pour son architecture, l’utilisation des capacités modernes du SDK Expo et la mise en œuvre d’un double backend.

Liens

https://github.com/zefir1990/Mama-Calendar
https://demensdeum.com/software/mama-calendar/events

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *