{"id":48396364,"url":"https://github.com/elhalj/community","last_synced_at":"2026-04-06T01:24:39.094Z","repository":{"id":296879751,"uuid":"994222041","full_name":"elhalj/community","owner":"elhalj","description":"plateform qui permet a des communauté de s'organiser","archived":false,"fork":false,"pushed_at":"2025-06-02T16:01:20.000Z","size":5008,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-03T04:35:32.430Z","etag":null,"topics":["community","cotizacion","mern-stack","money"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elhalj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-01T13:38:54.000Z","updated_at":"2025-06-02T16:01:24.000Z","dependencies_parsed_at":"2025-06-03T04:55:27.718Z","dependency_job_id":null,"html_url":"https://github.com/elhalj/community","commit_stats":null,"previous_names":["elhalj/community"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elhalj/community","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fcommunity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fcommunity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fcommunity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fcommunity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elhalj","download_url":"https://codeload.github.com/elhalj/community/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elhalj%2Fcommunity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31455955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["community","cotizacion","mern-stack","money"],"created_at":"2026-04-06T01:24:38.476Z","updated_at":"2026-04-06T01:24:39.088Z","avatar_url":"https://github.com/elhalj.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Seguikro Backend\n\n## Description\nBackend API pour l'application de cotisation mensuelle Seguikro. Cette API gère l'authentification, les cotisations, les groupes et les transactions.\n\n## Structure du Projet\n\n### Fichiers Principaux\n- **server.js** - Point d'entrée de l'application qui configure Express, connecte à MongoDB, initialise Redis et démarre le serveur.\n- **package.json** - Configuration du projet et dépendances.\n\n### Répertoires\n\n#### `/src/config`\nContient les fichiers de configuration pour la base de données et autres services.\n- **db.js** - Configuration de la connexion à MongoDB.\n\n#### `/src/controllers`\nContient la logique métier de l'application.\n- **authController.js** - Gestion de l'authentification (inscription, connexion, etc.).\n- **cotisationController.js** - Gestion des cotisations (création, mise à jour, suppression, etc.).\n- **groupeController.js** - Gestion des groupes (création, mise à jour, suppression, etc.).\n- **transactionController.js** - Gestion des transactions (création, mise à jour, suppression, etc.).\n\n#### `/src/middleware` et `/src/middlewares`\nContient les middlewares pour l'authentification, la validation, etc.\n- Middleware d'authentification pour protéger les routes.\n- Middleware de validation pour valider les entrées utilisateur.\n\n#### `/src/models`\nDéfinit les schémas et modèles Mongoose pour la base de données.\n- **User.js** - Modèle pour les utilisateurs avec champs comme nom, email, mot de passe, etc.\n- **Cotisation.js** - Modèle pour les cotisations avec champs comme montant, date, statut, etc.\n- **Groupe.js** - Modèle pour les groupes avec champs comme nom, description, membres, etc.\n- **Transaction.js** - Modèle pour les transactions avec champs comme montant, date, type, etc.\n\n#### `/src/routes`\nDéfinit les routes de l'API.\n- **auth.js** - Routes pour l'authentification (/api/auth/register, /api/auth/login, etc.).\n- **cotisations.js** - Routes pour les cotisations (/api/cotisations).\n- **groupes.js** - Routes pour les groupes (/api/groupes).\n- **transactions.js** - Routes pour les transactions (/api/transactions).\n\n#### `/src/utils`\nContient des utilitaires et fonctions d'aide.\n- Fonctions pour générer des tokens JWT.\n- Fonctions pour formater les réponses API.\n- Autres utilitaires.\n\n## Technologies Utilisées\n- **Node.js** - Environnement d'exécution JavaScript côté serveur.\n- **Express** - Framework web pour Node.js.\n- **MongoDB** - Base de données NoSQL.\n- **Mongoose** - ODM (Object Data Modeling) pour MongoDB.\n- **Redis** - Stockage en cache pour améliorer les performances.\n- **JWT** - JSON Web Tokens pour l'authentification.\n- **bcryptjs** - Hachage des mots de passe.\n- **express-validator** - Validation des entrées.\n- **helmet** - Sécurité HTTP.\n- **cors** - Cross-Origin Resource Sharing.\n- **morgan** - Logging HTTP.\n- **dotenv** - Gestion des variables d'environnement.\n\n## Configuration\n1. Créez un fichier `.env` à la racine du projet avec les variables suivantes:\n   ```\n   NODE_ENV=development\n   PORT=5000\n   MONGO_URI=votre_uri_mongodb\n   JWT_SECRET=votre_secret_jwt\n   JWT_EXPIRE=30d\n   REDIS_URL=redis://localhost:6379\n   ```\n\n## Installation\n```bash\n# Installer les dépendances\nnpm install\n\n# Démarrer en mode développement\nnpm run dev\n\n# Démarrer en mode production\nnpm start\n```\n\n## Sécurité\nL'API implémente plusieurs mesures de sécurité:\n- Hachage des mots de passe avec bcryptjs.\n- Authentification par JWT.\n- Protection contre les attaques CSRF et XSS avec Helmet.\n- Limitation de débit (rate limiting) pour prévenir les attaques par force brute.\n- Validation des entrées avec express-validator.\n\n## Endpoints API\n\n### Authentification\n- `POST /api/auth/register` - Inscription d'un nouvel utilisateur.\n- `POST /api/auth/login` - Connexion d'un utilisateur.\n- `GET /api/auth/me` - Récupérer les informations de l'utilisateur connecté.\n\n### Cotisations\n- `GET /api/cotisations` - Récupérer toutes les cotisations.\n- `POST /api/cotisations` - Créer une nouvelle cotisation.\n- `GET /api/cotisations/:id` - Récupérer une cotisation spécifique.\n- `PUT /api/cotisations/:id` - Mettre à jour une cotisation.\n- `DELETE /api/cotisations/:id` - Supprimer une cotisation.\n\n### Groupes\n- `GET /api/groupes` - Récupérer tous les groupes.\n- `POST /api/groupes` - Créer un nouveau groupe.\n- `GET /api/groupes/:id` - Récupérer un groupe spécifique.\n- `PUT /api/groupes/:id` - Mettre à jour un groupe.\n- `DELETE /api/groupes/:id` - Supprimer un groupe.\n\n### Transactions\n- `GET /api/transactions` - Récupérer toutes les transactions.\n- `POST /api/transactions` - Créer une nouvelle transaction.\n- `GET /api/transactions/:id` - Récupérer une transaction spécifique.\n- `PUT /api/transactions/:id` - Mettre à jour une transaction.\n- `DELETE /api/transactions/:id` - Supprimer une transaction.\n\n\n# Seguikro Frontend\n\n## Description\nInterface utilisateur pour l'application de cotisation mensuelle Seguikro. Cette application React permet aux utilisateurs de gérer les cotisations, les groupes et les transactions.\n\n## Structure du Projet\n\n### Fichiers Principaux\n- **index.html** - Point d'entrée HTML de l'application.\n- **vite.config.js** - Configuration de Vite pour le développement et la production.\n- **package.json** - Configuration du projet et dépendances.\n- **eslint.config.js** - Configuration d'ESLint pour le linting du code.\n\n### Répertoires\n\n#### `/public`\nContient les fichiers statiques accessibles publiquement.\n\n#### `/src`\nContient tout le code source de l'application.\n\n#### `/src/assets`\nContient les ressources statiques comme les images, les icônes, etc.\n\n#### `/src/components`\nContient les composants React réutilisables.\n- **Footer.jsx** - Composant de pied de page.\n- **Navbar.jsx** - Barre de navigation de l'application.\n\n#### `/src/hooks`\nContient les hooks personnalisés pour la gestion de l'état et les appels API.\n- **useAuth.js** - Hook pour gérer l'authentification (connexion, inscription, déconnexion).\n- **useCotisations.js** - Hook pour gérer les cotisations (création, mise à jour, suppression, etc.).\n- **useGroupes.js** - Hook pour gérer les groupes (création, mise à jour, suppression, etc.).\n- **useTransactions.js** - Hook pour gérer les transactions (création, mise à jour, suppression, etc.).\n\n#### `/src/layouts`\nContient les composants de mise en page.\n\n#### `/src/pages`\nContient les composants de page principaux.\n- **CotisationDetail.jsx** - Page de détail d'une cotisation.\n- **CotisationForm.jsx** - Formulaire pour créer/modifier une cotisation.\n- **Cotisations.jsx** - Liste des cotisations.\n- **Dashboard.jsx** - Tableau de bord principal.\n- **GroupeDetail.jsx** - Page de détail d'un groupe.\n- **GroupeForm.jsx** - Formulaire pour créer/modifier un groupe.\n- **GroupeMembres.jsx** - Gestion des membres d'un groupe.\n- **GroupeTransactions.jsx** - Transactions d'un groupe.\n- **Groupes.jsx** - Liste des groupes.\n- **Home.jsx** - Page d'accueil.\n- **Login.jsx** - Page de connexion.\n- **NotFound.jsx** - Page 404.\n- **Profile.jsx** - Profil utilisateur.\n- **Register.jsx** - Page d'inscription.\n- **TransactionForm.jsx** - Formulaire pour créer/modifier une transaction.\n\n#### `/src/services`\nContient les services pour les appels API.\n- **api.js** - Configuration d'Axios pour les appels API.\n- **authService.js** - Service pour les appels API d'authentification.\n- **cotisationService.js** - Service pour les appels API de cotisations.\n- **groupeService.js** - Service pour les appels API de groupes.\n- **transactionService.js** - Service pour les appels API de transactions.\n\n#### `/src/store`\nContient la gestion de l'état global avec Zustand.\n- **authStore.js** - Store pour l'état d'authentification.\n- **cotisationStore.js** - Store pour l'état des cotisations.\n\n#### `/src/utils`\nContient des utilitaires et fonctions d'aide.\n\n## Technologies Utilisées\n- **React** - Bibliothèque JavaScript pour construire l'interface utilisateur.\n- **Vite** - Outil de build rapide pour le développement moderne.\n- **React Router** - Routage côté client.\n- **React Query** - Gestion des données côté client et cache.\n- **Zustand** - Gestion de l'état global.\n- **Axios** - Client HTTP pour les appels API.\n- **React Hook Form** - Gestion des formulaires.\n- **Yup** - Validation des schémas.\n- **Mantine** - Bibliothèque de composants UI.\n- **Tailwind CSS** - Framework CSS utilitaire.\n- **React Toastify** - Notifications toast.\n- **React Icons** - Bibliothèque d'icônes.\n\n## Installation\n```bash\n# Installer les dépendances\nnpm install\n\n# Démarrer en mode développement\nnpm run dev\n\n# Construire pour la production\nnpm run build\n\n# Prévisualiser la build de production\nnpm run preview\n```\n\n## Configuration\nL'application est configurée pour communiquer avec l'API backend. Assurez-vous que l'API backend est en cours d'exécution sur le port spécifié dans le fichier `src/services/api.js`.\n\n## Fonctionnalités\n\n### Authentification\n- Inscription d'un nouvel utilisateur\n- Connexion d'un utilisateur existant\n- Déconnexion\n- Gestion du profil utilisateur\n\n### Cotisations\n- Création d'une nouvelle cotisation\n- Modification d'une cotisation existante\n- Suppression d'une cotisation\n- Visualisation des détails d'une cotisation\n- Filtrage des cotisations par période\n\n### Groupes\n- Création d'un nouveau groupe\n- Modification d'un groupe existant\n- Suppression d'un groupe\n- Gestion des membres d'un groupe\n- Visualisation des transactions d'un groupe\n\n### Transactions\n- Création d'une nouvelle transaction\n- Modification d'une transaction existante\n- Suppression d'une transaction\n- Visualisation des détails d'une transaction\n\n## Bonnes Pratiques\n- Utilisation des hooks React pour la gestion de l'état\n- Séparation des préoccupations avec des composants réutilisables\n- Validation des formulaires avec Yup\n- Gestion efficace des appels API avec React Query\n- Gestion de l'état global avec Zustand\n- Interface utilisateur responsive avec Tailwind CSS\n\nIf you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felhalj%2Fcommunity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felhalj%2Fcommunity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felhalj%2Fcommunity/lists"}