Bonjour tout le monde,
J'ai toujours voulu faire de la programmation un peu plus avancée (par rapport à mon niveau débutant - vb, vba, php ^^) mais je n'avais pas de projet pour aller de l'avant.
J'ai désormais trouvé le projet, mais comme je ne suis pas habitué, je ne sais pas dans quelle direction partir. Mon cerveau part dans tous les sens et je n'avance pas :/
Voici le projet sur lequel j'aimerais travailler. Il viendrait en aide à une association pour laquelle je suis bénévole.
Nous avons mis en place un système d'achat groupé de fruits et légumes (commande des produits, stockage, création des paniers, distribution directe ou livraison).
Cela fonctionne à l'inverse d'un marché habituel, i.e. en tant que bénéficiaire je n'y vais pas faire mes courses, mais j'obtiens un panier selon mes goûts (ou à l'inverse de mes dégoûts/allergies...) et du stock obtenu par l'association la semaine donnée.
Le stock de produits est en effet variable d'une semaine à l'autre en quantité et en variété (prise en compte de la saisonnalité, de la provenance...) (la commande et la distribution de produit ne se fait qu'une fois par semaine, pas de gestion de flux a priori).
Je souhaiterais donc faire un outil permettant la création automatique des paniers (quel produit en quelle quantité pour quel bénéficiaire) en fonction de différentes contraintes (liées au bénéficiaire) :
- Valeur du panier désirée
- Choix libre (pas de contrainte sur le choix des produits)
- Davantage de légumes que de fruits
- Davantage de fruits que de légumes
- Seulement des légumes
- Seulement des fruits
- Allergies/Dégoûts (pas ces produits)
- Produits désirés ponctuellement (cette semaine-ci) (choix avec ou sans quantité)
- produits désirés en tout temps (modifiable au besoin)
- Produits locaux en priorité
- Les moins chers de la semaine
Et des contraintes de stock disponible (mais une des problématique majeure est que le stock va évoluer au cours de la fabrication des paniers, en effet : si l'algorithme me demande de mettre 1,48 kg de pommes, mais qu'à la pesée j'ai 1,52 kg, je ne couperais pas la pomme pour correspondre, le calcul devra donc se refaire après chaque panier). J'ai pensé à 2 différentes solutions :
- Prendre le stock réel et ajustement au fur et à mesure (advienne que pourra ^^)
- Partir d'un stock minoré de 5% (arbitrairement)
Tout en sachant aussi que le stock étant fait de produits périssables, je dois dans tous les cas minorer celui-ci (par variété de produit) pour prendre en compte les produits abîmés/pourris. Et permettre de mettre à jour le stock au fur et à mesure quand on jette des produits à la poubelle.
Le stock doit aussi être daté (date d'arrivage du produit dans le stock - gestion des réassorts) car des produits peuvent rester d'une semaine à l'autre.
Chaque produit nécessitera aussi d'être caractérisé par sa provenance, sa fragilité (utile pour savoir si on le met au fond du panier ou au dessus).
Les produits seront commandés à différents fournisseurs, il faudra donc gérer les fournisseurs (produit, quantité, prix...). Les livraisons ne sont pas gérées.
Les prix des produits, comme dit plus haut, sont hebdomadaires. La pomme sera toujours moins chère à l'automne qu'en juin par exemple
Il faudra aussi prendre en compte les coûts fixes de l'association afin de les répercuter sur les produits.
J'ai aussi pensé aux données d'entrée telles que :
- Nombre de variétés minimum par panier
- Quantité mini d'un produit dans le panier
- Quantité maxi d'un produit dans le panier
- % Prix d'un produit < 5% (arbitraire) Valeur du panier
- Gestion des priorités (faire passer les produits de la semaine précédente en priorité)
- Faire passer les produits livrés cette semaine à maturité avancée en priorité
Enfin, il faudra gérer les bénéficiaires avec leurs choix cités plus haut, leur horaire de ramassage (devient une contrainte complémentaire pour l'ordre de fabrication des paniers) (peut changer chaque semaine) ou demande de livraison (adresse postale) (peut changer chaque semaine).
Voilà pour l'état des lieux, je pense avoir fait le tour. Si vous avez des questions ou des pistes d'amélioration n'hésitez pas.
Maintenant place à la programmation... Pensez-vous que c'est envisageable pour un almost newbie ?
Vu que j'ai tout à apprendre (ou presque), que me conseillez-vous comme approche ? Quel langage semblerait le plus adapté ? Quelle base de donnée préconiseriez-vous sachant que l'asso n'a pas les moyens d'investir... L'utilisation de se fera sur un ou deux ordis qui seront sur le même WIFI. La BDD pourra être stockée sur un ordinateur toujours présent (celui du président de l'asso)...
Voilà à vous les studios
Merci beaucoup,
A bientôt !
Partager