Vue d'ensemble
Projet web développé dans le cadre de la deuxième année de formation bac +3 (Licence/Bachelor en Informatique). Application de gestion de fichiers locaux inspirée de Google Drive mais fonctionnant en local, mettant en pratique les concepts avancés de développement web.
Objectifs du Projet
- Architecture MVC : Implémentation d'une architecture Model-View-Controller robuste
- Gestion de fichiers : Upload, téléchargement, organisation en dossiers
- Interface utilisateur : Design moderne et responsive
- Base de données : Stockage des métadonnées et gestion des utilisateurs
- Sécurité : Authentification et autorisation des accès
- Tests unitaires : Validation du code avec tests automatisés
- PHP 8.x : Langage principal du projet
- MySQL : Base de données relationnelle
- Architecture MVC : Séparation des responsabilités
- Sessions PHP : Gestion de l'authentification
- HTML5/CSS3 : Structure et style
- JavaScript : Interactions utilisateur
- Bootstrap : Framework CSS pour le responsive
- AJAX : Requêtes asynchrones
- Git : Gestion de versions
- Visual Studio Code : Éditeur de code
- Docker : Conteneurisation pour le développement
- Composer : Gestion des dépendances PHP
- PHPUnit : Tests unitaires
- Postman : Tests d'API
- Inscription et connexion utilisateurs
- Gestion des sessions sécurisées
- Récupération de mot de passe
- Authentification à deux facteurs (2FA)
- Upload de fichiers multiples
- Création de dossiers
- Navigation dans l'arborescence
- Recherche de fichiers
- Prévisualisation des fichiers (images, PDF, etc.)
- Design responsive avec Bootstrap 5
- Drag & drop pour l'upload
- Prévisualisation des fichiers
- Menu contextuel
- Notifications en temps réel
- Gestion des utilisateurs
- Statistiques d'utilisation
- Logs d'activité
- Gestion des permissions
- Endpoints pour l'upload/téléchargement
- Authentification par token JWT
- Documentation Swagger
- Tests automatisés
- Table users : Informations utilisateurs
- Table files : Métadonnées des fichiers
- Table folders : Structure des dossiers
- Table shares : Partage de fichiers
- Validation des uploads de fichiers
- Protection contre les injections SQL
- Gestion sécurisée des sessions
- Optimisation des requêtes SQL
- Gestion de la mémoire pour les gros fichiers
- Pagination des résultats
- Design responsive pour tous les écrans
- Expérience utilisateur intuitive
- Gestion des erreurs utilisateur
- Maîtrise de l'architecture MVC et des patterns de conception
- Développement web sécurisé et bonnes pratiques
- Gestion de projet informatique avec méthodologies agiles
- Travail en équipe et collaboration
- Présentation technique et documentation
- Tests unitaires et intégration continue
- API REST et documentation technique
- Synchronisation cloud avec chiffrement
- API REST complète pour applications mobiles
- Chiffrement des fichiers en transit et au repos
- Partage avancé avec permissions granulaires
- Intégration avec des services tiers (Google Drive, Dropbox)
- Application mobile React Native
- Intégration avec d'autres services via webhooks
- Workflow de validation et approbation
- Analytics avancées et reporting
- Microservices architecture
Technologies Utilisées
Backend
Frontend
Outils de Développement
Fonctionnalités Implémentées
1. Authentification
2. Gestion des Fichiers
3. Interface Utilisateur
4. Administration
5. API REST
Architecture Technique
Structure MVC
```
LocalODrive/
├── models/ # Logique métier
├── views/ # Templates d'affichage
├── controllers/ # Contrôleurs
├── public/ # Fichiers publics
├── config/ # Configuration
└── uploads/ # Stockage des fichiers
```
Base de Données
Défis Rencontrés
1. Sécurité
2. Performance
3. Interface Utilisateur
Résultats Obtenus
Compétences Acquises
Évolutions Possibles
Phase 2 - Améliorations
Phase 3 - Extension
Conclusion
Ce projet de deuxième année bac +3 a été l'occasion de mettre en pratique les concepts avancés de développement web acquis pendant la formation. L'architecture MVC robuste, combinée aux tests unitaires et à l'approche professionnelle du développement, a permis de créer une application modulaire, maintenable et évolutive. Les défis techniques rencontrés ont renforcé les compétences en développement sécurisé et en gestion de projet informatique.
Projet réalisé dans le cadre de la deuxième année de licence/bachelor en informatique - 2024