Auteur : Nicolas DEOUX (NDXDev@gmail.com)
Ce projet est une API REST développée en .NET 8.0 qui permet aux utilisateurs de stocker, consulter et télécharger des livres et magazines. L'API inclut plusieurs fonctionnalités telles que la gestion des utilisateurs, l'authentification, la gestion de contenus, et des statistiques.
- Gestion des utilisateurs : Inscription, connexion, gestion de profils avec rôles et autorisations
- Gestion des livres et magazines : Ajout, consultation, et téléchargement de contenus organisés par catégories et tags
- Bibliothèque personnelle : Gestion des favoris et de l'historique de lecture
- Recherche et filtres avancés : Recherche par mots-clés, filtres par catégories, popularité, etc.
- Notes et commentaires : Possibilité de noter et commenter des livres/magazines
- Notifications : Notifications par email pour les nouveaux contenus ou mises à jour
- Sécurité et performance : Authentification JWT, protection contre les attaques courantes
- .NET 8.0 - Framework principal
- ASP.NET Core - API REST
- Entity Framework Core - ORM pour l'accès aux données
- MariaDB/MySQL - Base de données
- JWT Bearer - Authentification et autorisation
- Swagger - Documentation interactive de l'API
- Identity - Gestion des utilisateurs et des rôles
# Installation complète de l'environnement Ubuntu
make ubuntu-setup
# Configuration développement
make dev-setup
# Lancement en développement
make run-dev
-
Clonez le dépôt GitHub :
git clone https://github.com/NDXDeveloper/API-REST-DotNet-Library.git cd API-REST-DotNet-Library/src
-
Configurez la connexion à la base de données dans
appsettings.json
:{ "ConnectionStrings": { "MariaDBConnection": "server=localhost;port=3306;database=librarydb;user=votre_user;password=votre_password" }, "Jwt": { "Key": "VotreCleSecreteTresLongueEtComplexe", "Issuer": "LibraryApi", "Audience": "LibraryApiUsers" } }
-
Installez les dépendances :
dotnet restore
-
Appliquez les migrations Entity Framework Core :
dotnet ef database update
-
Démarrez l'application :
dotnet run
# Construction de l'image Docker
make docker-build
# Lancement du conteneur
make docker-run
# Connexion à Railway
make railway-login
# Déploiement
make railway-deploy
- Swagger UI : Après avoir démarré l'application, accédez à
http://localhost:5000/swagger
pour la documentation interactive - Endpoints principaux :
/api/auth
- Authentification et gestion des utilisateurs/api/bookmagazine
- Gestion des livres et magazines/api/favorites
- Gestion des favoris/api/readinghistory
- Historique de lecture/api/notification
- Notifications/api/public
- Endpoints publics
L'application crée automatiquement un utilisateur administrateur au premier démarrage :
- Email :
admin@library.com
- Mot de passe :
AdminPass123!
API-REST-DotNet-Library/
├── src/
│ ├── Controllers/ # Contrôleurs API
│ │ ├── AuthController.cs
│ │ ├── BookMagazineController.cs
│ │ ├── FavoritesController.cs
│ │ └── ...
│ ├── Models/ # Modèles de données et DTOs
│ │ ├── ApplicationUser.cs
│ │ ├── BookMagazine.cs
│ │ ├── DTOs/
│ │ └── ...
│ ├── Data/ # Contexte de base de données
│ │ └── ApplicationDbContext.cs
│ ├── Services/ # Services métier
│ │ └── EmailService.cs
│ ├── Migrations/ # Migrations Entity Framework
│ ├── wwwroot/ # Fichiers statiques
│ │ ├── files/ # Livres et magazines uploadés
│ │ └── images/ # Images de couverture et profils
│ ├── Program.cs # Point d'entrée
│ ├── appsettings.json # Configuration
│ └── Makefile # Automatisation des tâches
├── README.md
└── .gitignore
Pour lancer les tests unitaires :
dotnet test
Ou avec le Makefile :
make test
- Inscription et connexion sécurisées
- Gestion des rôles (Admin/User)
- Tokens avec expiration configurable
- Upload de fichiers (PDF, images)
- Génération automatique d'UUID pour éviter les conflits
- Système de catégories et tags
- Compteurs de vues et téléchargements
- Recherche textuelle avec pagination
- Filtres par catégorie, auteur, date
- Tri par popularité ou date
- Suggestions basées sur l'historique
- Notes et commentaires avec réponses
- Favoris personnalisés
- Historique de lecture
- Notifications par email
# Développement
make install # Installer les dépendances
make build # Builder le projet
make run-dev # Lancer en développement
make run-prod # Lancer en production
# Base de données
make migration-add NAME=nom # Ajouter une migration
make migration-update # Appliquer les migrations
# Déploiement
make docker-build # Builder l'image Docker
make railway-deploy # Déployer sur Railway
# Outils
make ssl-dev # Générer certificats SSL
make clean # Nettoyer les artifacts
Les contributions sont les bienvenues ! Veuillez :
- Forker le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/ma-fonctionnalite
) - Commiter vos changements (
git commit -m 'Ajout de ma fonctionnalité'
) - Pousser vers la branche (
git push origin feature/ma-fonctionnalite
) - Ouvrir une Pull Request
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Nicolas DEOUX Email : NDXDev@gmail.com GitHub : NDXDeveloper
⭐ N'hésitez pas à mettre une étoile au projet si vous le trouvez utile !