---
# System prepended metadata

title: Projet CUBE

---

# Projet CUBE

## Prérequis

Git: https://github.com/MaximeMichelat/Cube
Cloner le dépôt : ``git clone git@github.com:MaximeMichelat/Cube.git``
Pushé sur la branche master

Installer crystal: https://crystal-lang.org/install/
Documentation: https://crystal-lang.org/reference/1.3/getting_started/ et https://crystal-lang.org/reference/1.4/syntax_and_semantics/index.html

Bulma: https://bulma.io/

Installer maquette: ``npm install maquette``
Installer livescript: ``npm install -g LiveScript``

Lancer le projet


## Lancer le projet

- Cloner le dépôt
- ``zsh run.sh authd``
- ``zsh run.sh salesd``
- ``zsh run.sh borgard``
- ``zsh run.sh httpd``
- ``zsh run.sh build``
- Sur firefox, ouvrir l'adresse 0.0.0.0:8000

## TODO

- Pouvoir ajouter un avatar lors de la création / modification du profil
- Corriger les bugs

## FIXME

- Unknown request type reste affiché dans la modal quand on arrive pas à s'enregistrer
- Bug quand on clique sur la page de profil
    - Le corps de la dernière page visitée reste
    - Impossible d'ouvrir une autre page

# Features à produire

- Profils utilisateurs
    - Nom
    - Prénom
    - Pseudo
    - Mot de passe
    - Adresse mail
    - Avatar
        - Avoir un avatar de base si aucun n'est fourni ?
    - Rôles
        - User de base
            -- Passe commande
            -- Modifie son profil
        - Employé magasin
            -- A accès aux stocks et produits proposés par le magasin
            -- Peut ajouter et supprimer des produits
            -- Éditables à partir d'une UI
        - Employé général
            -- A accès aux stocks et produits de tous les magasins
            -- Éditables à partir d'une UI

- Espace privé utilisateurs
    - Historique des commandes
        - Prix
        - Quantité
        - Date
        - Adresse de livraison (si existe)
        - Magasin

- Client web
    - Pages
        - Accueil
        - Borgar
        - Liste des restaurants
        - About us
    - Panier
    - Profil
        - Fonctionnalités spécifiques selon autorisations

- Ports dynamiques
    - Pouvoir changer les ports utilisés par chaque service
    - Utiliser les ports dynamiques pour communiquer plutôt que de les avoir en dur dans le code
# Services

- authd
    - gestion des membres
    - gestion de l'authentification
- borgard (nom à changer)
    - gestions des stocks
    - gestion des menus
- webd (1 à 2h)
    - sert les différentes pages web
- salesd
    - gestion des commandes et des ventes

# Fonctionnalités globales

- Gestion de son profil utilisateur
    - Pouvoir s’inscrire et supprimer son compte. 
    - Le client peut modifier ses données personnelles

- Effectuer une commande
    - Passer une commande, la modifier, visualiser le statut, etc…

- Voir l’historique des commandes
    - Voir les commandes que les utilisateurs ont eux même passé.

- Gestion des stocks
    - Pouvoir ajouter, modifier et supprimer dans les stocks.

- Gestion des utilisateurs
    - Pouvoir ajouter, modifier et supprimer un utilisateur.

- Gestion des fournisseurs
    - idem.

- Gestion des franchises
    - idem.

# Fonctionnalités autres

- Statistiques du site