Skip to content

Khaalilabd/nextstep-cloud-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 NextStep - Plateforme de Gestion de Serveurs Cloud

Symfony PHP Doctrine Twig TailwindCSS

Une plateforme moderne et complète de gestion de serveurs cloud avec système de réservation, paiement et support client intégré.

DémoDocumentationSignaler un Bug


📋 Table des Matières


🎯 À Propos

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.

Cas d'Usage

  • 🏢 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

✨ Fonctionnalités

🔐 Authentification & Sécurité

  • 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

🖥️ Gestion des Serveurs

  • 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

💳 Système de Paiement

  • 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

📊 Tableaux de Bord

  • 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

🎫 Support Client

  • 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

📧 Notifications Email

  • Confirmation de demande de serveur
  • Notification d'approbation/rejet
  • Rappels de paiement
  • Confirmation d'activation
  • Alertes administrateur

🛠️ Technologies

Backend

  • 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

Frontend

  • Template Engine : Twig 3.x
  • CSS Framework : TailwindCSS 3.x
  • JavaScript : Stimulus (Symfony UX)
  • Asset Management : Symfony AssetMapper
  • UI Components : Soft UI Dashboard

Services & Intégrations

  • Email : Symfony Mailer + Brevo (Sendinblue)
  • PDF : DomPDF 3.1
  • OAuth : KnpU OAuth2 Client (Google)
  • Pagination : KnpPaginator Bundle

DevOps

  • Containerisation : Docker Compose
  • Tests : PHPUnit 11.5
  • Debug : Symfony Web Profiler
  • Logs : Monolog

🏗️ Architecture

Structure du Projet

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

Modèle de Données

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[]

📦 Installation

Prérequis

  • PHP 8.2 ou supérieur
  • Composer 2.x
  • MySQL 8.0+ ou PostgreSQL 13+
  • Node.js 18+ (optionnel, pour le build des assets)

Installation Locale

# 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/

Installation avec Docker

# 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:8080

⚙️ Configuration

Variables d'Environnement

Cré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

Configuration Email

  1. Créez un compte sur Brevo
  2. Générez une clé API
  3. Ajoutez la clé dans MAILER_DSN

Configuration OAuth Google

  1. Créez un projet sur Google Cloud Console
  2. Activez l'API Google+
  3. Créez des identifiants OAuth 2.0
  4. Ajoutez les identifiants dans .env.local

🚀 Utilisation

Accès à l'Application

  • 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)

Comptes de Test

Admin:
Email: admin@nextstep.com
Password: admin123

Client:
Email: client@nextstep.com
Password: client123

Workflow Utilisateur

  1. Inscription/Connexion → Créer un compte ou se connecter
  2. Réserver un serveur → Choisir une configuration ou un pack
  3. Attendre validation → L'admin valide la demande
  4. Effectuer le paiement → Payer la facture générée
  5. Serveur activé → Recevoir les accès par email

Workflow Administrateur

  1. Consulter les demandes → Dashboard admin
  2. Valider/Rejeter → Approuver ou refuser avec commentaire
  3. Notifier le client → Email automatique envoyé
  4. Valider le paiement → Confirmer la réception du paiement
  5. Activer le serveur → Envoyer les accès au client

📸 Captures d'Écran

Page d'Accueil

Homepage

Dashboard Client

Client Dashboard

Configuration de Serveur

Server Configuration

Dashboard Admin

Admin Dashboard


🗺️ Roadmap

Version 1.1 (Q2 2026)

  • API REST complète
  • Application mobile (React Native)
  • Monitoring des serveurs en temps réel
  • Système de backup automatique

Version 1.2 (Q3 2026)

  • Intégration Stripe/PayPal
  • Facturation récurrente automatique
  • Tableau de bord analytique avancé
  • Support multi-tenant

Version 2.0 (Q4 2026)

  • Marketplace d'applications
  • Auto-scaling des ressources
  • CDN intégré
  • Support Kubernetes

🤝 Contribution

Les contributions sont les bienvenues ! Voici comment participer :

  1. Forkez le projet
  2. Créez une branche (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'Add AmazingFeature')
  4. Pushez vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

Guidelines

  • 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

📝 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


👨‍💻 Auteur

Votre Nom


🙏 Remerciements

  • 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 ☕

About

Plateforme SaaS de gestion et location de serveurs cloud avec Symfony 7.1. Système complet : réservation, paiement, facturation PDF, support client et dashboards admin/client.a

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors