{"id":29731785,"url":"https://github.com/kaelianbaudelet/filesphere","last_synced_at":"2026-04-16T04:03:52.536Z","repository":{"id":301608665,"uuid":"951298304","full_name":"kaelianbaudelet/filesphere","owner":"kaelianbaudelet","description":"Plateforme de gestion de livrables en PHP avec Twig, permettant aux professeurs de créer des devoirs et aux élèves de déposer leurs rendus. Une solution simple et centralisée pour la remise de devoirs.","archived":false,"fork":false,"pushed_at":"2026-02-04T12:42:45.000Z","size":1122,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-05T00:29:24.473Z","etag":null,"topics":["css","docker","epsi","filesphere","php","phpdotenv","phpmailer","twig"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaelianbaudelet.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,"zenodo":null}},"created_at":"2025-03-19T13:14:15.000Z","updated_at":"2026-02-04T12:42:49.000Z","dependencies_parsed_at":"2025-06-27T19:40:39.984Z","dependency_job_id":null,"html_url":"https://github.com/kaelianbaudelet/filesphere","commit_stats":null,"previous_names":["kaelianbaudelet/filesphere"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kaelianbaudelet/filesphere","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaelianbaudelet%2Ffilesphere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaelianbaudelet%2Ffilesphere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaelianbaudelet%2Ffilesphere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaelianbaudelet%2Ffilesphere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaelianbaudelet","download_url":"https://codeload.github.com/kaelianbaudelet/filesphere/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaelianbaudelet%2Ffilesphere/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31870517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["css","docker","epsi","filesphere","php","phpdotenv","phpmailer","twig"],"created_at":"2025-07-25T07:40:05.754Z","updated_at":"2026-04-16T04:03:52.525Z","avatar_url":"https://github.com/kaelianbaudelet.png","language":"PHP","readme":"# FileSphere\n\n## Projet Transversal TPWR101 — EPSI SN1 — Développement d'une solution Web\n\n![preview](https://github.com/user-attachments/assets/608d9a57-bc3e-4467-90f7-65e538926b1d)\n\n\n## Description du projet\n\nCe projet a pour objectif de concevoir une plateforme web fictive dédiée à la gestion des livrables pour l'EPSI. Les professeurs et intervenants peuvent créer des devoirs, tandis que les élèves peuvent soumettre leurs rendus en ligne. Les administrateurs disposent d’outils pour gérer les utilisateurs, les classes, les fichiers et les devoirs, assurant ainsi une organisation efficace et centralisée.\n\n## Fonctionnalités\n\n- Authentification :\n  - Inscription et connexion\n  - Récupération de mot de passe\n  - Modification du mot de passe utilisateur\n- Gestion des utilisateurs :\n  - Création, modification et suppression des utilisateurs\n  - Attribution des rôles (élève, professeur, administrateur)\n- Gestion des classes et des sections :\n  - Création, modification et suppression des classes\n  - Attribution des élèves et professeurs aux classes\n  - Création de sections pour regrouper les devoirs dans une classe\n- Gestion des devoirs et livrables :\n  - Création et attribution de devoirs par les professeurs\n  - Dépôt des fichiers par les élèves\n  - Date limite et suivi des soumissions\n- Gestion des fichiers :\n  - Stockage et gestion des fichiers soumis\n  - Téléchargement des livrables\n\n## Technologies utilisées\n\n- Php\n- Composer\n- Twig\n- PhpDotEnv\n- PHPMailer\n- Symphony ErrorHandler\n- Docker\n\n## Prérequis\n\nAvant d'installer le projet, assurez-vous d'avoir :\n\n- PHP 8.x ou supérieur\n- Composer\n- Docker (optionnel mais recommandé)\n- Une base de données MySQL ou MariaDB\n\n## Installation\n\n1. Commencez par cloner le dépôt:\n\n    ```bash\n    git clone https://github.com/kaelianbaudelet/filesphere.git\n    ```\n\n2. Naviguez jusqu'au répertoire du projet :\n\n    ```bash\n    cd filesphere\n    ```\n\n3. Installer les dépendances :\n\n    - Commencer par installer les dépendances du projet avec :\n\n        ```bash\n        composer prepare-dev\n        ```\n\n4. Configurer votre environnement de travail pour développé\n\n    Vous avez plusieurs possibilité :\n\n    - **Recommandé :** Environnement de travail avec [Docker](https://docs.docker.com/engine/install/) :\n\n        - Installez [Docker](https://docs.docker.com/engine/install/) et [Docker Compose](https://docs.docker.com/compose/install/).\n        - Après l'installation de [Docker](https://docs.docker.com/engine/install/) et [Docker Compose](https://docs.docker.com/compose/install/), configurez votre environnement en copiant le fichier `.env.exemple`, en le renommant en `.env`, et en le configurant avec les valeurs nécessaires.\n        - Enfin, créez l'environnement de travail avec :\n\n            ```bash\n            docker compose --profile dev up -d\n            ```\n\n            L'environnement de travail pour le développement contient :\n                - Une base de données [MariaDB](https://mariadb.org/).\n                - Un serveur [Adminer](https://www.adminer.org/) pour administrer votre base de données. (Accesible via `localhost:9999`)\n                - L'application web configurée avec [Apache2](https://httpd.apache.org/). (Accesible via `localhost:9999`)\n\n    - Environnement [WAMP](https://www.wampserver.com)/[XAMPP](https://www.apachefriends.org/fr/index.html) :\n\n        - Installer [WAMP](https://www.wampserver.com) ou [XAMPP](https://www.apachefriends.org/fr/index.html)\n        - Déplacer le projet dans le repertoire serveur [WAMP](https://www.wampserver.com) ou [XAMPP](https://www.apachefriends.org/fr/index.html)\n        - Pour configurer votre environnement, copiez le fichier `.env.exemple`, renommez-le en `.env`, puis renseignez les valeurs nécessaires en fonction de votre configuration.\n        - Démarrer [WAMP](https://www.wampserver.com) ou [XAMPP](https://www.apachefriends.org/fr/index.html)\n\n    - Sans environnement de travail :\n\n        - Copier le fichier `.env.exemple`, renommer-le en `.env`, et configurer celui ci avec les valeurs souhaitées.\n        - Démarrer un serveur php de développement avec:\n\n            ```bash\n            composer start\n            ```\n\n5. Migrer la base de données :\n\n\u003e [!IMPORTANT]  \n\u003e Après avoir installer l'application, vous devez impérativement migrer la base de données.\n\nMigrée la base de données avec la commande suivante :\n```bash\nphp migration.php\n```\n\n**BONUS:** Créer automatiquement des exemples de fausses données en base de données (utilisateurs, classes, devoirs) avec la commande suivante :\n```bash\nphp seed.php\n```\n\n6. Création d'un utilisateur administrateur :\n\n\u003e [!IMPORTANT]  \n\u003e Par défaut, l'application ne contient aucun utilisateur et l'application n'autorise pas l'inscription d'un utilisateur administrateur par défaut. vous devez donc activer le mode d'inscription d'utilisateur.\n\nPour activer le mode d'inscription d'utilisateurs vous devez modifier le fichier `.env` et définir la variable `TEMP_REGISTER` à `true`.\n\nAccèder à localhost:80/register pour créer un utilisateur.\n\n\u003e [!CAUTION]\n\u003e Pour des raisons évidentes de sécurité, une fois l'utilisateur créé, vous devez désactiver le mode d'inscription d'utilisateur en définissant la variable `TEMP_REGISTER` à `false` dans le fichier `.env`.\n\n## Mise en production\n\nPour mettre en production l'application, assurez-vous d'utiliser proxy inversé tel que [Apache2](https://httpd.apache.org/), [Nginx](https://www.nginx.com/), [Caddy](https://caddyserver.com/) ou encore [Traefik](https://traefik.io/).\n\n\u003e [!TIP]\n\u003e La solution recommandée est d’utiliser [Docker](https://docs.docker.com/engine/install/) et de déployer l’application derrière un proxy inversé comme [Traefik](https://traefik.io/).\n\u003e\n\u003e Pour plus de détails, consultez la documentation officielle de [Traefik](https://traefik.io/) afin d’apprendre à configurer et déployer une application avec ce proxy.\n\n\n## Utilisation\n\n1. Ouvrer votre navigateur et naviguer vers `http://localhost:80`.\n\n## Licence\n\nCe projet est sous licence **[MIT](LICENSE)**.\n\n## Contributeurs\n\n- Kaëlian BAUDELET\n- Annalia PRIEUR\n- Florian GUILBERT\n- Thibault ROYER\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaelianbaudelet%2Ffilesphere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaelianbaudelet%2Ffilesphere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaelianbaudelet%2Ffilesphere/lists"}