Une plateforme moderne et complète de gestion de serveurs cloud avec système de réservation, paiement et support client intégré.
- À Propos
- Fonctionnalités
- Technologies
- Architecture
- Installation
- Configuration
- Utilisation
- Captures d'Écran
- Roadmap
- Contribution
- Licence
NextStep est une plateforme SaaS complète permettant la gestion et la location de serveurs cloud. Développée avec Symfony 7.1 et PHP 8.2, elle offre une solution professionnelle pour les entreprises souhaitant proposer des services d'hébergement cloud à leurs clients.
- 🏢 Entreprises d'hébergement : Gérer un parc de serveurs et automatiser les réservations
- 💼 Datacenters : Offrir une interface client moderne pour la location de ressources
- 🔧 MSP (Managed Service Providers) : Centraliser la gestion des infrastructures clients
- Inscription et connexion sécurisées avec hashage bcrypt
- Authentification OAuth2 avec Google
- Système de réinitialisation de mot de passe par email
- Gestion des rôles (USER, ADMIN, MANAGER)
- Protection CSRF sur tous les formulaires
- Catalogue de serveurs : Dell PowerEdge, HP ProLiant, Lenovo ThinkSystem
- Configuration personnalisée :
- Choix du CPU (2 à 48 cœurs)
- RAM configurable (8 à 512 GB)
- Stockage flexible (250 GB à 12 TB)
- Types de stockage : SATA, SSD, NVMe
- Systèmes d'exploitation : Ubuntu, CentOS, Debian, Windows Server, RHEL
- Packs prédéfinis pour une réservation rapide
- Calcul automatique des prix selon la configuration
- Workflow de validation : Demande → Approbation → Paiement → Activation
- Gestion complète du cycle de paiement
- Support multi-devises (EUR, TND)
- Génération automatique de factures PDF avec DomPDF
- Historique des transactions
- Notifications email automatiques
- Dashboard Client :
- Vue d'ensemble des serveurs actifs
- Historique des demandes et paiements
- Gestion du profil utilisateur
- Système de réclamations intégré
- Dashboard Admin :
- Gestion des demandes de serveurs
- Validation des paiements
- Gestion des utilisateurs
- Statistiques et rapports
- Inventaire des serveurs
- Système de tickets/réclamations
- Messagerie intégrée par réclamation
- Suivi du statut (En attente, En cours, Résolu, Fermé)
- Notifications en temps réel
- Confirmation de demande de serveur
- Notification d'approbation/rejet
- Rappels de paiement
- Confirmation d'activation
- Alertes administrateur
- Framework : Symfony 7.1
- Langage : PHP 8.2+
- ORM : Doctrine ORM 3.4
- Base de données : MySQL/PostgreSQL
- Migrations : Doctrine Migrations
- Validation : Symfony Validator
- Sécurité : Symfony Security Bundle
- Template Engine : Twig 3.x
- CSS Framework : TailwindCSS 3.x
- JavaScript : Stimulus (Symfony UX)
- Asset Management : Symfony AssetMapper
- UI Components : Soft UI Dashboard
- Email : Symfony Mailer + Brevo (Sendinblue)
- PDF : DomPDF 3.1
- OAuth : KnpU OAuth2 Client (Google)
- Pagination : KnpPaginator Bundle
- Containerisation : Docker Compose
- Tests : PHPUnit 11.5
- Debug : Symfony Web Profiler
- Logs : Monolog
NextStep-ProjectV2/
├── config/ # Configuration Symfony
│ ├── packages/ # Configuration des bundles
│ └── routes/ # Définition des routes
├── migrations/ # Migrations de base de données
├── public/ # Point d'entrée web
│ └── assets/ # Assets statiques (CSS, JS, images)
├── src/
│ ├── Controller/ # Contrôleurs MVC
│ ├── Entity/ # Entités Doctrine
│ ├── Form/ # Types de formulaires
│ ├── Repository/ # Repositories Doctrine
│ ├── Security/ # Authentification & autorisation
│ └── Service/ # Services métier
├── templates/ # Templates Twig
├── tests/ # Tests unitaires et fonctionnels
└── var/ # Cache et logs
User (Utilisateur)
├── id, email, password, roles
├── firstName, lastName, phoneNumber
├── address, city, postalCode, country
└── Relations: servers[], complaints[]
Server (Serveur)
├── id, model, cpuCores, ramGB, storageGB
├── status, location, serialNumber
├── storageType, dataCenter, operatingSystem
├── price, monthlyPrice
└── Relations: reservedBy (User), approvedBy (User)
Payment (Paiement)
├── id, amount, taxAmount, totalAmount
├── paymentMethod, status, currency
├── transactionId, paymentReference
└── Relations: server (Server), client (User)
Complaint (Réclamation)
├── id, subject, description, status
├── priority, category
└── Relations: user (User), messages[]
- PHP 8.2 ou supérieur
- Composer 2.x
- MySQL 8.0+ ou PostgreSQL 13+
- Node.js 18+ (optionnel, pour le build des assets)
# Cloner le repository
git clone https://github.com/votre-username/nextstep.git
cd nextstep
# Installer les dépendances PHP
composer install
# Configurer les variables d'environnement
cp .env .env.local
# Éditer .env.local avec vos paramètres
# Créer la base de données
php bin/console doctrine:database:create
# Exécuter les migrations
php bin/console doctrine:migrations:migrate
# (Optionnel) Charger les données de test
php bin/console doctrine:fixtures:load
# Démarrer le serveur de développement
symfony server:start
# ou
php -S localhost:8000 -t public/# Démarrer les conteneurs
docker-compose up -d
# Installer les dépendances
docker-compose exec php composer install
# Exécuter les migrations
docker-compose exec php bin/console doctrine:migrations:migrate
# Accéder à l'application
# http://localhost:8080Créez un fichier .env.local et configurez les variables suivantes :
# Database
DATABASE_URL="mysql://user:password@127.0.0.1:3306/nextstep?serverVersion=8.0"
# Mailer (Brevo/Sendinblue)
MAILER_DSN=brevo+api://YOUR_API_KEY@default
# OAuth Google
OAUTH_GOOGLE_CLIENT_ID=your_client_id
OAUTH_GOOGLE_CLIENT_SECRET=your_client_secret
# App
APP_ENV=prod
APP_SECRET=your_secret_key- Créez un compte sur Brevo
- Générez une clé API
- Ajoutez la clé dans
MAILER_DSN
- Créez un projet sur Google Cloud Console
- Activez l'API Google+
- Créez des identifiants OAuth 2.0
- Ajoutez les identifiants dans
.env.local
- Page d'accueil :
http://localhost:8000/ - Connexion :
http://localhost:8000/auth - Inscription :
http://localhost:8000/auth(onglet Inscription) - Dashboard Admin :
http://localhost:8000/admin(nécessite ROLE_ADMIN)
Admin:
Email: admin@nextstep.com
Password: admin123
Client:
Email: client@nextstep.com
Password: client123
- Inscription/Connexion → Créer un compte ou se connecter
- Réserver un serveur → Choisir une configuration ou un pack
- Attendre validation → L'admin valide la demande
- Effectuer le paiement → Payer la facture générée
- Serveur activé → Recevoir les accès par email
- Consulter les demandes → Dashboard admin
- Valider/Rejeter → Approuver ou refuser avec commentaire
- Notifier le client → Email automatique envoyé
- Valider le paiement → Confirmer la réception du paiement
- Activer le serveur → Envoyer les accès au client
- API REST complète
- Application mobile (React Native)
- Monitoring des serveurs en temps réel
- Système de backup automatique
- Intégration Stripe/PayPal
- Facturation récurrente automatique
- Tableau de bord analytique avancé
- Support multi-tenant
- Marketplace d'applications
- Auto-scaling des ressources
- CDN intégré
- Support Kubernetes
Les contributions sont les bienvenues ! Voici comment participer :
- Forkez le projet
- Créez une branche (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add AmazingFeature') - Pushez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
- Suivez les standards PSR-12 pour PHP
- Écrivez des tests pour les nouvelles fonctionnalités
- Documentez votre code
- Mettez à jour le README si nécessaire
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Votre Nom
- Portfolio : votre-portfolio.com
- LinkedIn : linkedin.com/in/votre-profil
- GitHub : @votre-username
- Email : votre.email@example.com
- Symfony pour le framework exceptionnel
- TailwindCSS pour le framework CSS
- Soft UI Dashboard pour le template
- La communauté open-source pour les nombreuses bibliothèques utilisées
⭐ Si ce projet vous a été utile, n'hésitez pas à lui donner une étoile ! ⭐
Made with ❤️ and ☕



