192 lines
5.4 KiB
Markdown
192 lines
5.4 KiB
Markdown
# Managerr
|
|
|
|
Une application web pour gérer vos films et séries TV en utilisant les API de Sonarr et Radarr.
|
|
|
|
## Fonctionnalités
|
|
|
|
- **Authentification** : Système complet d'inscription et de connexion pour les utilisateurs
|
|
- **Tableau de bord** : Affichage d'un agenda mensuel avec les téléchargements prévus
|
|
- **Films** : Gestion complète de votre collection de films
|
|
- Liste de tous les films
|
|
- Films manquants
|
|
- Films à venir
|
|
- Historique des téléchargements
|
|
- **Séries** : Gestion complète de vos séries TV
|
|
- Liste de toutes les séries
|
|
- Épisodes manquants
|
|
- Épisodes à venir
|
|
- Historique des téléchargements
|
|
- **Paramètres** : Configuration personnalisée des API
|
|
- Gestion des URLs et clés API de Sonarr et Radarr
|
|
- Test de connexion aux API
|
|
- **Interface adaptative** : Design responsive pour mobile, tablette et desktop
|
|
- **Thème** : Support des modes clair et sombre avec détection des préférences système
|
|
|
|
## Technologies utilisées
|
|
|
|
### Backend
|
|
- **Node.js** et **Express.js** pour l'API
|
|
- **MongoDB** pour la base de données
|
|
- **JWT** pour l'authentification
|
|
- **MVC** architecture pour une meilleure organisation du code
|
|
|
|
### Frontend
|
|
- **Vue.js 3** avec **Composition API**
|
|
- **Vue Router** pour la navigation
|
|
- **Vuex** pour la gestion d'état
|
|
- **Axios** pour les requêtes HTTP
|
|
- **CSS Variables** pour la gestion des thèmes
|
|
- **Lazy Loading** des composants pour optimiser les performances
|
|
|
|
## Prérequis
|
|
|
|
- Node.js (v14 ou supérieur)
|
|
- MongoDB
|
|
- Instances fonctionnelles de Sonarr et Radarr avec leurs API accessibles
|
|
|
|
## Installation
|
|
|
|
### Configuration du backend
|
|
|
|
1. Cloner le dépôt
|
|
```bash
|
|
git clone https://github.com/votre-username/managerr.git
|
|
cd managerr
|
|
```
|
|
|
|
2. Installer les dépendances du backend
|
|
```bash
|
|
cd backend
|
|
npm install
|
|
```
|
|
|
|
3. Créer un fichier `.env` basé sur le fichier `.env.example`
|
|
```bash
|
|
cp ../config/.env.example ../config/.env
|
|
```
|
|
|
|
4. Modifier le fichier `.env` avec vos propres paramètres
|
|
```
|
|
PORT=5000
|
|
MONGODB_URI=mongodb://localhost:27017/managerr
|
|
JWT_SECRET=votre_secret_jwt
|
|
```
|
|
|
|
**Note** : Les URLs et clés API de Sonarr et Radarr peuvent maintenant être configurées directement depuis l'interface utilisateur dans la section "Paramètres".
|
|
|
|
### Configuration du frontend
|
|
|
|
1. Installer les dépendances du frontend
|
|
```bash
|
|
cd ../frontend
|
|
npm install
|
|
```
|
|
|
|
2. Créer un fichier `.env.local` pour la configuration du frontend
|
|
```bash
|
|
echo "VUE_APP_API_URL=http://localhost:5000/api" > .env.local
|
|
```
|
|
|
|
## Lancement de l'application
|
|
|
|
### Démarrer le backend
|
|
```bash
|
|
cd backend
|
|
npm run dev
|
|
```
|
|
|
|
### Démarrer le frontend
|
|
```bash
|
|
cd frontend
|
|
npm run serve
|
|
```
|
|
|
|
L'application sera accessible à l'adresse : http://localhost:8012
|
|
|
|
> **Note :** Si vous rencontrez des erreurs lors du démarrage du frontend, assurez-vous que toutes les dépendances sont correctement installées avec `npm install`. Pour les erreurs liées aux plugins webpack, la configuration a été rendue plus robuste pour gérer les différentes versions de Vue CLI.
|
|
|
|
### Démarrer l'application complète (script utilitaire)
|
|
Un script est fourni pour démarrer à la fois le backend et le frontend en une seule commande :
|
|
```bash
|
|
cd managerr
|
|
./start.sh
|
|
```
|
|
Utilisez Ctrl+C pour arrêter les deux serveurs.
|
|
|
|
### Utilisation avec Docker (recommandé)
|
|
L'application peut également être exécutée dans des conteneurs Docker, ce qui facilite le déploiement et évite les problèmes de configuration locale :
|
|
|
|
1. Assurez-vous que Docker et docker-compose sont installés sur votre système
|
|
2. Exécutez les commandes suivantes :
|
|
|
|
```bash
|
|
# Démarrer tous les services (MongoDB, backend et frontend)
|
|
./docker-manage.sh start
|
|
|
|
# En cas d'erreur, utilisez la version simplifiée
|
|
./docker-manage.sh start:simple
|
|
|
|
# Afficher l'état des services
|
|
./docker-manage.sh status
|
|
|
|
# Afficher les logs
|
|
./docker-manage.sh logs
|
|
|
|
# Arrêter tous les services
|
|
./docker-manage.sh stop
|
|
```
|
|
|
|
L'application sera accessible à l'adresse : http://localhost:8012
|
|
|
|
Pour plus d'informations sur l'utilisation avec Docker et la résolution des problèmes, consultez le fichier [DOCKER.md](DOCKER.md).
|
|
|
|
## Déploiement
|
|
|
|
### Backend
|
|
|
|
1. Démarrer le backend en mode production
|
|
```bash
|
|
cd backend
|
|
npm start
|
|
```
|
|
|
|
### Frontend
|
|
|
|
1. Construire le frontend optimisé pour la production
|
|
```bash
|
|
cd frontend
|
|
npm run build
|
|
```
|
|
|
|
2. Déployer le dossier `/dist` sur votre serveur web
|
|
|
|
## Optimisations implémentées
|
|
|
|
- **Lazy loading** des composants Vue.js
|
|
- **Compression des assets** pour le frontend
|
|
- **Mise en cache des réponses API** côté client
|
|
- **Optimisation des images** pour réduire les temps de chargement
|
|
- **Division du code** (code splitting) pour des temps de chargement initiaux plus rapides
|
|
|
|
## Contribuer
|
|
|
|
1. Fork le projet
|
|
2. Créer une branche pour votre fonctionnalité (`git checkout -b feature/amazing-feature`)
|
|
3. Commit vos changements (`git commit -m 'Add some amazing feature'`)
|
|
4. Push vers la branche (`git push origin feature/amazing-feature`)
|
|
5. Ouvrir une Pull Request
|
|
|
|
## Licence
|
|
|
|
Distribué sous la licence MIT. Voir `LICENSE` pour plus d'informations.
|
|
|
|
## Documentation
|
|
|
|
- [Documentation technique](/backend/API_DOCS.md) - Documentation complète de l'API
|
|
- [Guide utilisateur](/frontend/docs/USER_GUIDE.md) - Guide d'utilisation de l'application
|
|
|
|
## Contact
|
|
|
|
Votre Nom - [@votre_twitter](https://twitter.com/votre_twitter) - email@exemple.com
|
|
|
|
Lien du projet: [https://github.com/votre-username/managerr](https://github.com/votre-username/managerr)
|