Limitations
Le site web permettra aux visiteurs de:
- Consulter la liste des articles
- Voir le détail des articles
- De s'inscrire sur le site
- De s'authentifier
- D'ajouter des articles dans un panier *
* Un visiteur ne pourra cependant pas confirmer son panier sans être authentifié.
Le site web permettra (en plus) aux clients (personnes authentifiées) de:
- Créer une commande (confirmer son panier)
- Consulter la liste de ses commandes
Le site web permettra aux administrateurs de:
- Ajouter des articles
- Editer des articles
- Supprimer des articles
- Lister les commandes
- Confirmer/annuler les commandes
- Statistique des commandes
SEO: La structure des URLs doit être soignée.
Les URLs comporteront toujours un mot ou une phrase identifiant la nature de la page.
(pour une phrase, les mots seront séparés par des tirets).
Exemple: l'utilisateur souhaitant accéder au détail d'une chaise de jardin accédera à l'url: monprojet.be/articles-jardin/chaise
Libre à vous de structurer les URLs comme vous le souhaitez.
Evitez donc les URLS comportant des données envoyées en GET pour accéder à un article ou un profil utilisateur. Par contre, travailler en GET est intéressant quand il s'agit de faire une recherche.
Il est également demandé d'utiliser à un moment le langage javascript dans votre projet.
Quelques idées d'utilisation:
- Un formulaire pour rajouter des articles via un fichier json avec une prévisualisation (preview via javascript)
- Drag and drop des articles dans le panier
- Prévisualisation du rendu final d'un article en temps réel quand on complète un formulaire de création
- Message d'avertissement quand on encode un article déjà créé (avant même de confirmer le formulaire)
- ...
Ce sont des exemples ! Vous ne devez pas implémenter l'entièreté de la liste !
Concernant les articles, le minimum à afficher est:
- Un titre
- Un prix
- Une description
- Une image
La gestion d'un stock n'est donc pas obligatoire (on suppose que le stock est illimité).
Concernant les commandes, le minimum à afficher est:
- Le nom du client qui passe la commande
- Les articles commandés
- Le prix total de la commande
- Le statut de la commande (ex: en attente, clôturer, annuler)
Concernant les statistiques des commandes, l'administrateur doit (en un clin d'oeil) pouvoir visualiser les articles les plus vendus grâce à un graphique.
Par exemple: un camembert affichant le TOP5 des articles les plus vendus.
Le site sera développé en PHP (minimum v7) ET JavaScript sans aucun framework.
Les données sont stockées dans une base de données MySQL.
Aucune limitation au niveau des librairies que vous souhaitez utiliser (Ex: jQuery).
Attention cependant à utiliser des librairies récentes (vous êtes pro, et donc, vous devez utiliser des outils à jour).
Côté skin (CSS), le site doit être agréable à visiter.
Vous devez donc structurer le rendu et respecter les balises (<h1..2..3>, <div>, <label>, <table>, <th>, etc)
Pensez également à la résolution des écrans pouvant varier.
Conseil: utilisez des librairies comme Bootstrap (https://getbootstrap.com) ou Tailwind (https://tailwindcss.com/) afin de limiter les risques et garantir ainsi votre site responsive.