# 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