{"id":25448073,"url":"https://github.com/douaa1819/recyclehub","last_synced_at":"2026-04-16T18:07:39.508Z","repository":{"id":276947009,"uuid":"926446937","full_name":"Douaa1819/RecycleHub","owner":"Douaa1819","description":"RecycleHub est une application Front-End développée avec Angular 19+ (Standalone), permettant de gérer le recyclage des déchets en connectant les particuliers aux collecteurs agréés. L'application est une Single Page Application (SPA) qui stocke les données localement via IndexedDB.♻️","archived":false,"fork":false,"pushed_at":"2025-02-11T09:56:06.000Z","size":347,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T07:09:10.327Z","etag":null,"topics":["angular","css","guards","indexeddb","observable","promise","resolver","standalone"],"latest_commit_sha":null,"homepage":"https://recycle-hub-ten.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Douaa1819.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-02-03T09:17:44.000Z","updated_at":"2025-02-11T10:02:34.000Z","dependencies_parsed_at":"2025-02-11T10:35:39.006Z","dependency_job_id":null,"html_url":"https://github.com/Douaa1819/RecycleHub","commit_stats":null,"previous_names":["douaa1819/recyclehub"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Douaa1819%2FRecycleHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Douaa1819%2FRecycleHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Douaa1819%2FRecycleHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Douaa1819%2FRecycleHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Douaa1819","download_url":"https://codeload.github.com/Douaa1819/RecycleHub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485051,"owners_count":22078767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["angular","css","guards","indexeddb","observable","promise","resolver","standalone"],"created_at":"2025-02-17T19:18:42.518Z","updated_at":"2026-04-16T18:07:39.480Z","avatar_url":"https://github.com/Douaa1819.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ♻️ RecycleHub\n\n## 📌 Description\n**RecycleHub** est une application de gestion de recyclage qui met en relation des particuliers et des collecteurs agréés pour automatiser le processus de collecte des déchets. L'application est développée en tant que **Single Page Application (SPA)** utilisant **Angular 17+**, avec **IndexedDB** pour la persistance des données.\n\n## 🚀 Fonctionnalités\n### 1️⃣ Inscription \u0026 Connexion\n- Création de compte pour les particuliers avec :\n  - Email et mot de passe\n  - Nom et prénom\n  - Adresse complète\n  - Numéro de téléphone\n  - Date de naissance\n  - Photo de profil (optionnel)\n- Les collecteurs sont pré-enregistrés manuellement en **localStorage**.\n- Possibilité de modification/suppression du compte.\n- **Pas d'administration** prévue dans l'application.\n\n### 2️⃣ Demande de Collecte\n- Création d'une demande avec :\n  - Type de déchet (plastique, verre, papier, métal)\n  - Photos des déchets (optionnel)\n  - Poids estimé (minimum 1000g)\n  - Adresse de collecte\n  - Date et créneau horaire (09h00 - 18h00)\n  - Notes supplémentaires (optionnel)\n- Gestion des demandes :\n  - Modification/Suppression des demandes **en attente**\n  - Maximum **3 demandes simultanées** non validées ou rejetées\n  - Poids total des collectes limité à **10 kg**\n\n### 3️⃣ Processus de Collecte\n- Le collecteur peut :\n  - Accéder aux demandes disponibles dans sa ville\n  - Accepter une demande et la mettre à jour à chaque étape :\n    - **En attente**\n    - **Occupée** (acceptation de la demande)\n    - **En cours** (collecte en cours)\n    - **Validée** (collecte terminée avec succès)\n    - **Rejetée** (collecte non conforme)\n  - Vérifier, peser, photographier et valider la collecte.\n\n### 4️⃣ Système de Points\n- Attribution automatique des points après validation de la collecte :\n  - **Plastique** → 2 points/kg\n  - **Verre** → 1 point/kg\n  - **Papier** → 1 point/kg\n  - **Métal** → 5 points/kg\n- Conversion des points en bons d'achat :\n  - **100 points** = 50 Dh\n  - **200 points** = 120 Dh\n  - **500 points** = 350 Dh\n\n## 🛠️ Technologies Utilisées\n- **Angular 17+** (architecture **standalone**)\n- **NgRx** (gestion d'état)\n- **RxJS** (programmation réactive)\n- **IndexedDB** (base de données locale)\n- **Reactive Forms / Template Driven Forms**\n- **Guards, Resolvers**\n- **Bootstrap / Tailwind** (design responsive)\n- **Routing, Services, Pipes, Databinding**\n- **Validation métier et gestion des erreurs**\n\n## 📂 Structure du Projet\n```\nRecycleHub/\n│-- src/\n│   ├── core/  # Services, Guards, Resolvers\n│   ├── features/\n│   │   ├── auth/  # Login, Register, Profile\n│   │   ├── collection/  # Request Form, Request List, Request Detail\n│   │   ├── points/  # Points History, Points Conversion\n│   ├── app.component.ts\n│   ├── app-routing.module.ts\n│   ├── index.html\n│-- angular.json\n│-- package.json\n│-- README.md\n```\n\n## 🔧 Installation \u0026 Lancement\n1. **Cloner le projet** :\n   ```sh\n   git clone https://github.com/Douaa1819/RecycleHub.git\n   cd RecycleHub\n   ```\n2. **Installer les dépendances** :\n   ```sh\n   npm install\n   ```\n3. **Démarrer l'application** :\n   ```sh\n   ng serve\n   ```\n   L'application sera accessible à `http://localhost:4200/`\n\n## 🛠️ Contribuer\nLes contributions sont les bienvenues ! Pour proposer une amélioration :\n1. **Fork** le repo\n2. **Créer une branche** (`feature/ma-nouvelle-fonctionnalité`)\n3. **Commit** (`git commit -m \"Ajout de ...\"`)\n4. **Push** (`git push origin feature/ma-nouvelle-fonctionnalité`)\n5. **Créer une Pull Request** 🚀\n\n## 📜 Licence\nCe projet est sous licence **MIT** - voir le fichier [LICENSE](LICENSE) pour plus de détails.\n\n---\nDéveloppé avec ❤️ par **Douaa Chemnane**.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdouaa1819%2Frecyclehub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdouaa1819%2Frecyclehub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdouaa1819%2Frecyclehub/lists"}