Skip to content

hxrra/sf-seacloud

Repository files navigation

Symfony - SeaCloud

Class diagram

Création d'un site pour un hébergeur de serveur virtuels privés.

SeaCloud est un hébergeur proposant des VPS (Virtual Private Server) pour les développeurs. Outre la présentation de l'entreprise et de ses services, le site permet aux développeurs de créer un compte, puis de déployer des serveurs en quelques clics.

Cahier des charges

En tant que développeur web travaillant chez SeaCloud, vous êtes chargé de développer le site internet d'après l'intégration fournie par les graphistes et en relation avec les autres développeurs chargés de la mise en place de la plateforme de déploiement des serveurs.

💡 Les fichiers fournis par les graphistes se trouvent dans le dossier integration.

  1. Diagramme de classes

    Le diagramme suivant présentent les classes sur lesquelles vous vous êtes accordés avec l'équipe de développement de la plateforme de déploiement des serveurs. Prenez soin de respecter l'implémentation décrite ci-dessous. Class diagram

    Notes :

    • La classe App\Entity\User doit hériter le l'interface Symfony\Component\Security\Core\User\UserInterface afin de pouvoir sécuriser l'espace client.

    • Les constantes STATE_PENDING, STATE_STOPED et STATE_READY représentent l'état d'un serveur, respectivement «En attente», «Arrêté» et «Démarré».

    • La classe App\Service\NameGenerator générera le nom d'un serveur (si laissé vide par le client) selon le modèle :

      SC-[datacenter.code]-[distribution.code]-[server.id]
      

      Example : SC-NY-Ubuntu-01

    • La classe App\Service\Notifier enverra un email au client (User) pour l'avertir que son serveur est déployé (STATE_READY).

  2. Plan du site

    Nom Url Description Template
    Home GET / Page d'accueil index.html
    About GET /about Présentation de l'entreprise about.html
    Services GET /services Listes des prestations services.html
    Contact GET /contact Formulaire de contact contact.html
    Signup GET /sign-up Création de compte client sign-up.html
    Sign in GET /sign-in Connexion au compte client sign-in.html
    Logout GET /logout Déconnexion du compte client
    🔒 Dashboard GET /account Tableau de bord account_dashboard.html
    🔒 Profil GET /account/profil Information client account_profil.html
    🔒 New server GET /account/new-server Formulaire de création d'un nouveau serveur account_new-server.html
    🔒 Server detail GET /account/[server-id] Détail du serveur ayant l'identifiant [server-id] account_new-server.html
    🔒 Reboot server GET /account/[server-id]/reboot Redémarrer le serveur ayant l'identifiant [server-id]
    🔒 Reset server GET /account/[server-id]/reset Réinstaller le serveur ayant l'identifiant [server-id]
    🔒 Delete server POST /account/[server-id]/delete Supprimer le serveur ayant l'identifiant [server-id]
    Server ready GET /api/[server-id]/ready Marquer un serveur comme "Démarré" (appelée par la plateforme de déploiement)

    💡 Les pages marquées d'un cadenas (🔒) sont sécurisées : l'internaute doit être authentifié (connecté) pour y accéder.

  3. Cycle de vie d'un serveur

    • L'état initial d'un serveur est «En attente» (STATE_PENDING).
    • Une fois le serveur déployé, la plateforme de déploiement (gérée par d'autres développeurs) appelera l'url GET /api/[server-id]/ready pour marquer le serveur comme étant «Prêt» (STATE_READY). Un email sera automatiquement envoyé au client pour l'informé du déploiement de sont serveur.
    • Si le client décide de redémarrer un serveur, ce dernier passera en statut «Arrêté» (STATE_STOPED). Une fois redémarré, la plate forme de déploiement appellera de nouveau l'url GET /api/[server-id]/ready.
    • Si le client décide de réinitialiser un serveur, ce dernier passera en statut «En attente» (STATE_PENDING). Une fois re-déployé, la plate forme de déploiement appellera de nouveau l'url GET /api/[server-id]/ready.

Annexes

  1. Liste des datacenters
Nom Code
New York NY
San Francisco SF
Amsterdam AM
Singapore SI
London LO
Frankfurt FR
Toronto TO
Bangalore BA
  1. Liste des distributions
Nom Code
Ubuntu 20.04 (LTS) x64 Ubuntu
FreeBSD 12.2 x64 FreeBSD
Fedora 34 x64 Fedora
Debian 10 x64 Debian
CentOS 8.3 x64 CentOS

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published