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 !