Ce projet est le site web officiel de l'association Nous'Rire, une organisation dédiée à la distribution alimentaire et à la lutte contre la précarité dans le département des Hauts-de-Seine (92). Le site se trouve à l'addresse: https://nousrire.org
- Aperçu
- Technologies utilisées
- Fonctionnalités
- Architecture
- Installation
- Configuration Firebase
- Déploiement
- Développement
- Contribution
- Contact
Nous'Rire est une plateforme web qui permet à l'association de présenter ses activités, partager des actualités, planifier des événements et faciliter l'engagement des bénévoles et donateurs potentiels.
- React 18 - Bibliothèque UI
- TypeScript - Typage statique
- Tailwind CSS - Framework CSS utilitaire
- Framer Motion - Animations fluides
- React Router - Gestion des routes
- React PayPal JS - Intégration des paiements
- Firebase
- Firestore - Base de données NoSQL
- Authentication - Gestion des utilisateurs
- Storage - Stockage des images et fichiers
- Hosting - Hébergement du site
- EmailJS - Envoi d'emails depuis le frontend
- GitHub Actions - CI/CD
- Page d'accueil avec présentation de l'association
- Section "Notre Mission" détaillant les objectifs
- Section "Nos Actions" présentant les activités
- Actualités et événements dynamiques
- Calendrier des distributions alimentaires
- Formulaire d'inscription pour les bénévoles
- Système de dons en ligne via PayPal
- Design responsive et animations fluides
- Interface d'administration sécurisée
- Gestion des actualités (création, modification, suppression)
- Gestion des événements et du calendrier
- Upload d'images avec compression automatique
src/
├── components/ # Composants React réutilisables
├── config/ # Configuration (Firebase, etc.)
├── context/ # Contextes React (Auth, etc.)
├── hooks/ # Hooks personnalisés
├── pages/ # Pages principales de l'application
├── services/ # Services (Firestore, Email, etc.)
├── styles/ # Styles globaux et variables
├── types/ # Définitions de types TypeScript
├── utils/ # Fonctions utilitaires
├── App.tsx # Composant principal
└── index.tsx # Point d'entrée
- Clonez le dépôt :
git clone https://github.com/Wassbdr/nousrire
cd nousrire- Installez les dépendances :
npm install- Créez un fichier
.envà la racine du projet en utilisant le modèle.env.example:
cp .env.example .envEt complétez avec vos informations Firebase et EmailJS.
- Lancez le serveur de développement :
npm startLe site sera accessible à l'adresse http://localhost:3000.
Ce projet utilise Firebase pour plusieurs fonctionnalités :
- Firestore : Stockage des données (actualités, événements)
- Authentication : Authentification des administrateurs
- Storage : Stockage des images
- Hosting : Déploiement de l'application
Les règles de sécurité pour Firestore et Storage sont définies dans firestore.rules et storage.rules respectivement.
Le déploiement se fait automatiquement via GitHub Actions lorsqu'un push est effectué sur la branche main.
Pour un déploiement manuel :
npm run build
firebase deploynpm start: Lance le serveur de développementnpm run build: Crée une version optimisée pour la productionnpm test: Lance les testsnpm run eject: Éjecte la configuration (⚠️ opération irréversible)
Le projet inclut des outils de monitoring pour suivre l'utilisation des services Firebase :
- Nombre de documents dans les collections
- Utilisation du stockage
- Statistiques d'accès
Les contributions sont les bienvenues ! Pour contribuer :
- Forkez le projet
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/nouvelle-fonctionnalite) - Committez vos changements (
git commit -m 'Ajout de nouvelle-fonctionnalite') - Poussez vers la branche (
git push origin feature/nouvelle-fonctionnalite) - Ouvrez une Pull Request
Pour toute question ou suggestion concernant ce projet, contactez-nous à nousrire.contact@gmail.com
Développé avec ❤️ pour Nous'Rire