Jump to content
bidossessi

Projet: Gestion de stock

Recommended Posts

Assalam 3eikoum,

 

Tout d'abord, je vous remercie pour cette initiatice trés interressante et qui inchallah apportera un plus pour l'Algérie.:)

Nous te remercions pour ton interet et tes encouragements

 

A vrai dire, que mon intervention ne va pas concerner la discussion actuelle, mais un point de vu ou un opinion personnel qui pourrai aider le projet. Et puis, je suis plus calé gestion de projets que la programmation sous Python. Je programme la plupart du temps sous PHP. Mais bon, ceci n'est pas important.

toute assistance est la bienvenue. :)

Il faut dire que comme votre projet concerne un projet Open Source ou Libre, il y'a une maniére d'approcher le projet different d'un projet normal. Tout ces conseils la sont inspirés du livre "Producing Open Source Software" et d'une experience personnelle avec la gestion des projets. Vous pouvez le trouver sur les torrents.

je vais de ce pas le chercher. j'ai plusieurs projets opensource en production.

Et dans le monde de l'Open Source, la premiére étape c'est la construction d'une bonne communication qu sein du groupe. Et dans ce contexte la, avoir un wiki (dans pbworks.com par exemple) ou un site web du projet serai un bon debut.

le site existe, meme si c'est pour l'instant une petite page sur launchpad.

La page d'acceuil devrai decrire les points le plus important qui permettrai d'attirer des volentaires. A savoire:

 

1- Une definition claire du projet sans oublier de citer que c'est un projet libre.

la définition du projet y est; quand au type de license, nous n'en avons pas encore disctuté.

2- Les fonctionnalités et les requis du logiciel. Dans ce point la, ce serai bien de se concentrer dans un premier temps dans une seule fonctionnalité. Et en fonction de l'amplitude des developpeurs, envisager d'autres fonctionnalités. Les autres seront considérés comme planifiés pour un developpement ulterieur.

il se trouve que le découpage du projet en modules n'a pas encore été fait non plus. je dois faire une revue des contributions en documentations de ceux qui ont contribué (amarsoft, salimdz et les autres), synthétiser cela dans la liste des fonctions sur le thread officiel du forum pour qu'on puisse commencer à parler modules.

3- L'état d'avancement du developpement. Les volentaires potentiels doivent savoire l'état d'avancement pour que leurs integration au projet soit la plus facile possible.

l"état d'avancement sera géré automatiquement par launchpad à travers le calcul de l'état d'avancement par rapport aux milestones et au nombres d'objectifs atteints pour chacun d'eux.

 

4- Comment le projet est-il géré? Si c'est un systeme dictatorial ou non il faut le citer. Ce n'est pas un point négatif tant que le dictateur assume bien ces responsabilité.

je suis l'initiateur de ce projet, et jusqu"à présent, j'ai pris quasi-unilatéralement la plupart des décisions, en attendant qu'une discussion un peu plus pratique prenne naissance sur les threads du projet, que des objectifs initiaux soient fixés avec chacun sa tache.

5- Les canaux de communication: Mentionner les IRC et les mailing lists. J'aimerai bien que le mailing list soit ouvert même a ceux qui ne sont pas de l'équipe. Le forum est trop lord, ca requirt un effort considerable, et parfois on n'est pas informé des changements.

le projet dispose d'une mailing list sur launchpad. elle sera ouverte après le commit du premier milestone.

Au debut, on a besoin des gens qui communique bien, avec un bon style d'écriture et qui vont s'occuper de tout ce qui concerne documentation. Ce serai d'avoir ces gens la. Et que leurs rôles soient mentionnés dans le wiki.

amarsoft et salimdz font un travail de recherche formidable. Bassim a déjà jeté les bases d'un cahier de charges professionel. une fois de plus l'équipe n'est pas encore complète.

 

Et plus important, pour ceux qui n'ont pas une experience avec Python, il serai mieux pour eux de maitriser les outils techniques de l'open source comme le "Version Control" et le "Bug Tracking".

 

Il y'en a plus de la communication que de la programmation. C'est ca le point essentiel de l'Open Source.

launchpad utilise bazaar com DVCS. c'est par essence un site de bug tracking, avec une notion minime de wiki. un effort supplémentaire sera fait pour le reste après la finalisation de l'étape préparatoire du projet.

J'espére que ce projet ira jusqu'au bout de son chemin. J'aurai aimé d'être impliqué plus dans le projet. Mais bon, j'ai un projet de côté qui passera a sa 4 éme année. Et que je prête a ouvrir avec l'équipe d'Open Minds Club (Je suis membre). Projet OpenMindStudents.org. Et il reste beaucoup de choses a faire.

 

NB: Je suis l'amie de Cortex et Amarsoft. Ils vont me reconnaitre surement.

 

Bonne chance, pour la suite. ;)

il n'y a pas de seconds roles, il n'y a que des premiers roles occupés ailleurs :)

je te remercie pour tous ces conseils, qui seront suivis puisqu'ils sont judicieux. ils sont déjà une participation appréciée à la réalisation du projet.

j'ai été distrait ces jours-ci et je le suis toujours, pour des raisons personelles, mais je compte bientot redynamiser le sujet, et mettre à jour les espaces de communication dont nous disposons aujourd'hui.

Share this post


Link to post
Share on other sites
Wash amarsoft, tu ne reconnait celui qui t'a aidé dans le diapo???? ;)

 

Bon, j'aimerai beaucoup qu'on discuter sur ces points mentionnés. Qu'on regroupe les idées et définir le périmetre du projet.

 

Déja premiére question, combien de personnes sont prêts à joindre leurs forces et quelles sont leurs compétences? Qui sont ceux qui maitrise le python? et quelles sont qui ont d'autres compétences qui peuvent aider le projet?

 

le premier post contient une liste des personnes qui se sont déclarées pretes à participer activement au projet, et dans quel domaine.

Share this post


Link to post
Share on other sites
Wash amarsoft, tu ne reconnait celui qui t'a aidé dans le diapo???? ;)

 

Bon, j'aimerai beaucoup qu'on discuter sur ces points mentionnés. Qu'on regroupe les idées et définir le périmetre du projet.

 

Déja premiére question, combien de personnes sont prêts à joindre leurs forces et quelles sont leurs compétences? Qui sont ceux qui maitrise le python? et quelles sont qui ont d'autres compétences qui peuvent aider le projet?

 

comment ça je n'ai pas reconnu le grand philosophe. :)

 

ton nom commence par T ;)

Share this post


Link to post
Share on other sites

la page de la team sur launchpad https://launchpad.net/~devel-dz

 

pour le moment je vois que moi et cortex et bien sure bidossessi dans la liste

 

j'ai essayé d'envoyé un mail via notre mailing list devel-dz [arobase] lists.launchpad.net mais le message n'est pas envoyé

 

je pense qu'on a besoin d'un wiki ?

Edited by ButterflyOfFire
Merci de ne pas mettre les emails en clair afin d'empêcher les spams ;)

Share this post


Link to post
Share on other sites
la page de la team sur launchpad https://launchpad.net/~devel-dz

 

pour le moment je vois que moi et cortex et bien sure bidossessi dans la liste

 

j'ai essayé d'envoyé un mail via notre mailing list devel-dz [arobase] lists.launchpad.net mais le message n'est pas envoyé

 

je pense qu'on a besoin d'un wiki ?

 

j'ai recu le message

+++

Share this post


Link to post
Share on other sites

Bonsoir,

J'ai lu les threads du projet et je voudrais bien y participer. Je suis prêt à aider dans la partie UML, python ( ça fait un bout de temps que j'y ai pas touché mais je peux reprendre très vite!). Je me suis inscris sur la page du projet sur Launchpad merci de m'accepter :)

Share this post


Link to post
Share on other sites

Bonjour à tous.

plusieurs concours de circonstance font que j'ai été absent plus longtemps que prévu, mais je suis de retour.

 

plusieurs remarques:

 

1- je suis tout à fait pour les contributions spontanées et j'apprécie l'enthousiasme de certains de nos amis, mais j'aime que les choses soient faites par étapes. à l'heure actuelle, nous en sommes encore à la discussion du cahier de charge, de ses éléments, et des fonctionalités du logiciel. un wiki est à mon sens prématuré.

 

2- le mailing list de launchpad fonctionne très bien. je ne vais pas l'ouvrir pour l'instant. pas la peine de spammer ceux qui ne sont pas engagés dans le projet. je mesure le niveau de dédication par l'enrolement sur launchpad, et les membres recoivent la mailing list automatiquement. ceux qui veulent rejoindre le projet sont le bienvenus, mais la communication initiale se fera sur ce forum pour le moment, jusqu'à ce qu'une taskforce claire soit dégagée et des responsabilités attribuées.

 

pour des raisons évidentes, je veux savoir qui est avec moi sur ce projet, donc le groupe est modéré, mais je répond plutot rapidement en général. Alors si vous êtes prêts à participer activement, à n'importe quel niveau, rejoignez le groupe Devel-DZ, et dites nous comment vous pouvez contribuer.

 

Tous ceux qui veulent participer sont les bienvenus.

Share this post


Link to post
Share on other sites

Répétition:

les secteurs d'intervention sont déjà définis.

envoyez-moi un pm pour que je sache ou vous voulez activer, et que je puisse vous mettre en relation avec les autres membres qui sont déjà dans cette section si vous ne les connaissez pas encore.

EDIT:A ceux qui souhaitent participer à ce projet, choissisez votre niveau de participation et envoyez-moi un pm.

Share this post


Link to post
Share on other sites

OK Je suis de retour.

Je vais prendre le temps de lire les differentes contributions au projet, et proposer la prochaine étape.

Je suppose que le consensus est sur python puisque personne n'a présenté d'objection limitative.

Share this post


Link to post
Share on other sites

Bonjour à tous:

Je souhaite discuter de l'excellent post de salimdz et des conclusions pour notre projet qu'il m'a inspiré.

Je pense qu'à partir de ce post, et des éléments de fonctionalités listés pour le projet gnustock, nous pouvons commncer à discerner les classes principales qui vont régir la logique du logiciel. Il est temps de commencer à formuler ces classes, à voir quelles seraient leur attributs et methodes, et leurs interactions. Je vais commencer en listant celles qui me paraissent évidentes. J'en profite pour jeter les bases des conventions de codage qui seront en vigueur pour ce projet, et expliquer quelques propirétés de python qui sont à mon avis très utiles.

les couleurs sont juste pour simplifier la visibilité:

 

[b]NomDeClasse:[/b]
   [i]"""Description et illustration de l'obectif de la classe."""[/i]
   ATTRIBUTSDECLASSE # ([b]*[/b] optionels)
   [color="Black"]def __init__(self, param1=value, param2=value)[/color]
        attributsPossibles
   [color="Red"]def methodes_possibles()[/color]
       """documentation/illustration de la methode.""""
   # commentaire ou explication supplémentaire
   #FIXME! indication de code suboptimal
   #BUG! indication de bug 

 

* il y a une différence entre les attributs de la classe et les attributs d'une instance sous python. c'est un piège commun :)

 

"docstring uniligne" | """docstring multiligne""".

python permet de générer automatiquement la documentation pour les modules qu'on développe, à condition de les mettre entre griffes juste sous le nom de la fonction/classe qu'on veut documenter. Cette documentation est alors accessible à travers l'attribut python mamethode.__doc__

De préférence, et par souci d'uniformité, on utilise les triples griffes.

Pourquoi c'est important? imaginez lancer un module python et vous demander à quoi sert une obscure fonction: pas besoin d'aller voir le code, si elle a sa docstring.

Plusieurs projets python utilisent exclusivement les docstrings pour générer leur documentation et les exemples d'utilisation, afin de les exposer dans leur guide de références à travers un parseur de docstring qui les convertit en page html.

 

Conventions de nommage:

on pourrait perdre beaucoup d'encre à discuter de la valeur de telle ou telle convention ici, alors je vais trancher directement.

 

Espacement:

Pour python les indents ne servent pas juste à la clarté de lecture. elles définissent le début (et la fin) d'une fonction/classe. Nous utiliserons 4 espaces par souci de compatibilité entre les différents OS, et jamais de tabulation.

Edited by bidossessi

Share this post


Link to post
Share on other sites
[b]class Depot(object):[/b]
   [i]"""Le dépot stocke les articles."""[/i]

   def __init__(self):
        self.id = None
        self.emplacement = None
        self.responsable = None

   def entrer_article(article):
       """"Ajouter un article au dépot."""
       pass

   def sortir_article(article):
       """"Retirer un article du dépot."""
       pass

   def emettre_rapport(article):
       """"Liste les articles du dépot et les classe dans des dictionnaires 
           par catégorie."""
       pass

Edited by bidossessi

Share this post


Link to post
Share on other sites
[b]class CategorieArticle(object):[/b]
   """La catégorie gère les attributs communs à
      unn même groupe d'article. """

   def __init__(self):
        self.id = None
        self.uniteMesure = None
        self.stockable = True
        self.typeStock = None # commercial, opérationel, transformation

Share this post


Link to post
Share on other sites
[b]class Article(object):[/b]
   """Définit les attributs et methodes d'un article. """

   def __init__(self):
        self.id = None
        self.description = None
        self.quantite = None
        self.idDepot = None

   def augmenter_stock(self, quantite):
        """Ajouter une quantité donnée au stock."""
        pass
   def diminuer_stock(self, quantite):
        """Retirer une quantité donnée du stock."""
        pass
   def lister_prix(self):
        """Compiler une liste de prix classée par fournisseur et par date."""
        pass

Edited by bidossessi

Share this post


Link to post
Share on other sites
[b]class Transaction(object):[/b]
   """Permet (entre autres) d'archiver les entrées/sorties. """

   def __init__(self):
        self.id = None
        self.type = None # (entree/sortie. bool?)
        self.date = None
        self.idDepot = None
        self.idArticle = None
        self.quantite = None
        self.agent = None # (qui l'a fait)

Share this post


Link to post
Share on other sites
[b]class PrixArticle(object):[/b]
   """Permet (entre autres) d'archiver les prix. """

   def __init__(self):
        self.id = None
        self.prix = None 
        self.date = None
        self.idFournisseur = None
        self.idArticle = None

Share this post


Link to post
Share on other sites
[b]class Fournisseur(object):[/b]
   """Gère les opérations sur un fournisseur. """

   def __init__(self):
        self.id = None
        self.adresse = None
        self.contact = None
        self.rc = None # R.C. pour la génération automatique de documents
        self.tel = None
        self.fax = None # imaginez une connexion halifax !
        self.email = None # imaginez envoi mail préformatté !
        self.rating = None # pour le classement
        self.notes = None

   def lister_produits(self):
        """"Produit un dictionnaire des dispos du fournisseur."""
        pass

Share this post


Link to post
Share on other sites
Bonjour,

la modelisation ne se fait pas avec un model (UML, Merise ...) ?

 

je ne suis pas entrain de modéliser. mais vu que pour l'instant la participation a un peu baissé, je pose les bases du soft. si quelqu'un veut proposer un modèle uml, marhaba.

personellement je compte lister les acteurs de ce soft ici, pour revue et correction/amélioration, et ensuite, je regroupe ce monde dans un document, et je passe à gtk+.

la modélisation est utile si les autres participent. sinon, c'est juste un outil de rappel.

Share this post


Link to post
Share on other sites

Salam.

Tu fais hériter toutes tes classes de object. Je pense que depuis python 2.2 ce n'est plus nécessaire. Ce n'est pas en relation avec les new-style classes ça ?

Share this post


Link to post
Share on other sites
Salam.

Tu fais hériter toutes tes classes de object. Je pense que depuis python 2.2 ce n'est plus nécessaire. Ce n'est pas en relation avec les new-style classes ça ?

non, c'ets dans l'optique d'utiliser l'ORM sqlalchemy avec la methode de mapping declarative. l'héritage d'object est nécéssaire dans ce cas là.

Share this post


Link to post
Share on other sites

Apparemment vos classes ne contiennent que des données membres et pas de fonction membre. Ce qui suggère que le modèle objet est peut-être excessif. Ces définitions de classes ressemblent beaucoup à des définitions de tables de base de données relationnelles.

 

Vous allez de toute façon être confrontés à la sérialisation, c'est à dire au stockage de toutes ces informations sur un support physique (disque dur). L'implémentation de votre sérialisation devra être fiable, car il est impensable que des données puissent être perdues.

 

Avez vous songé à un projet SQL et à développer plutôt une sorte de frontend pour l'interface utilisateur ?

Share this post


Link to post
Share on other sites
Apparemment vos classes ne contiennent que des données membres et pas de fonction membre. Ce qui suggère que le modèle objet est peut-être excessif. Ces définitions de classes ressemblent beaucoup à des définitions de tables de base de données relationnelles.

 

Vous allez de toute façon être confrontés à la sérialisation, c'est à dire au stockage de toutes ces informations sur un support physique (disque dur). L'implémentation de votre sérialisation devra être fiable, car il est impensable que des données puissent être perdues.

 

Avez vous songé à un projet SQL et à développer plutôt une sorte de frontend pour l'interface utilisateur ?

 

pour l'instant, il est clair que je définis d'abord les attributs qui seront nécéssaires à chaque élément de mon modèle. de la, je passerai à l'ajout de fonctions d'interaction et d'introspection, une fois que j'aurai une vision globale des membres.

 

ma vision: serveur/client avec un ORM (je pars toujours sur SQLALCHEMY parceque je le connais bien) sur la partie serveur pour la gestion des transactions, et un frontend (soit GTK soit php) en avant, selon les besoins. j'expérimente déjà avec ce type de setup pour une application que je fais en interne pour mon entreprise.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • Il n'y aurait pas un peu d'exagération  par hasard ? Les frontières rouvriront bien un jour des deux cotés. Il n'y aura, certes, pas de voyages dans un futur proche, mais à moyen voire long terme ça reprendra bien
    • apres l'espagne, la belgique et l'allemagne...la FRANCE ferme officiellement ses frontieres aux algeriens ! c'est donc une certitude maintenant! il n'y aura pas de voyages ni maintenant...ni plus tard ! coincidence...un ami a moi a vendu ses euros a 189 au meme moment !
    • Histoire est claire sur ce point : la légende des musulmans fanatiques s'abattant sur le monde imposant l'Islam, à la pointe de l'épée, aux peuple vaincus est un des plus fantastiques et absurdes mythes que les historiens ont pu répéter” Lacy O'Leary (Historien) dans “Aux carrefours de l'Islam” p. 28. Un autre témoignage ? Dans “Le déclin et la chute de l'Empire Romain”, Edouard Gibbon - célèbre historien - dit:”le succès phénoménal de l'Islam est dû au caractère exceptionnel de sa spiritualité et de son programme social et politique. L'expansion de l'Islam est l'une des plus grandes révolutions de l'histoire...” Puis un autre de Ignacio Olagüe ( “Les arabes n'ont jamais envahi l'Espagne” chez Flammarion ) : “Comment une poignée de nomades, venus du fond de l'Arabie, auraient-ils pu imposer leur langue et la loi de l'Islam aux quinze millions d'habitants vivant sur les 600 000 kilomètres carrés de la Péninsule Ibérique ?” Laissez le soin à nos détracteurs de répondre... Les mêmes témoignages existent pour l'Inde, l'Europe Orientale, l'Asie...La liste serait fort longue... Ensuite il y a des pays où nul soldat musulman n'a posé le pied: Indonésie (100 millions de musulmans), Malaisie, Afrique etc... où un pourcentage très élevé de ces populations est musulman. Où est l'épée? De nos jours, oui, de nos jours, l'Islam est la seule religion en très large expansion, et les musulmans n'ont pas d'épée! Contrairement à l'Occident, les pays musulmans n'ont envahi aucun pays souverain depuis 1000 ans. Mais l'Islam progresse dans les cœurs, grâce à la cohérence, à la vérité, à la sagesse de son message. C'est tout. Mais nous dira t-on les musulmans ont bien commencé par être des agresseurs pour pouvoir conquérir tous ces territoires christianisés, par principe hostiles à l'Islam naissant. Il y a les mythes et il y a l'histoire. Attachons nous à l'histoire, et non aux mythes. Bien avant sa mort, le prophète avait envoyé des ambassadeurs de par le monde, pour inviter les grands empereurs d'alors vers l'Islam. Certains les ont bien accueilli et se sont convertis, d'autres ont refusé et ont payé un tribut. D'autres encore comme l'empereur de Byzance, les ont rejeté, et ce dernier a été jusqu'à faire assassiner l'ambassadeur de prophète, sans raison, ni excuse! Cela donc contribua à déclencher la guerre entre cette “superpuissance” d'alors et les musulmans. Ces derniers ne sont donc nullement responsables du début des hostilités entre chrétiens et musulmans. Hostilités dont ils sortirent grand vainqueurs. Et même alors, les musulmans n'imposèrent nullement leur foi aux pays conquis. Ils accordèrent aux juifs et aux chrétiens de ces pays un statut de protégé (“Dhimmi”) de l'état islamique, garantissant leurs biens, leurs églises ou synagogues, et bien sûr leur culte. Car la religion repose sur la foi et la volonté. Elle n'aurait aucun sens autrement. La force permet les conquêtes, pas les conversions! Pourquoi filtrer l'Histoire? Souvenons-nous par exemple, du Concile de 680 à Constantinople, capitale de l'empire romain. Durant ce Concile il fut décidé d'une déclaration de guerre totale à l'Islam, dont les buts affichés, sans ambiguïté, étaient de faire disparaître l'Islam, le Coran, les enseignements du “prophète hérétique” et d'exterminer tous les musulmans de la surface de la terre! Charité chrétienne... À comparer aux statuts privilégiés accordés par les musulmans aux chrétiens...Et cet appel chrétien au génocide a perduré jusqu'aux grandes guerres coloniales (voir infra), pour imposer leur conception de la “civilisation” à l'ensemble de ces peuples “barbares” souvent musulmans. Et nous savons tous les dizaines de millions de morts que cet “apport de civilisation” a justifié! Quoiqu'il en soit, croyez-vous qu'un homme seul, puis ensuite, la poignée d'homme qui a dû émigrer à Médine à cause des persécutions mecquoises aient pu imposer l'Islam aux peuples d'Arabie et d'ailleurs? Seul un miracle le pouvait. Et le miracle fut. Seule la haine aveuglante des adversaires de Mohammad (PBSL) peut expliquer cet acharnement à renier des faits historiquement indéniables, les travestissant à loisir pour pouvoir répandre ce qui leur sied. Ne peuvent-ils pas voir que la “seule épée” que brandissait Mohammad (PBSL) c'était l'épée de sa foi en l'unicité de Dieu, de la Miséricorde divine, de la compassion, de la sagesse d'un prophète de Dieu ? Celle-là même qui vainc et convainc l'ennemi en purifiant les mœurs, purifiant les cœurs. Il faut inviter tous ceux qui affirment que dans le passé, un peuple, ait été contraint d'embrasser l'Islam, d'en amener UNE preuve d'une source historiquement fiable, et dont l'auteur puise l'information d'autres choses que du postulat de sa conviction personnelle. Fausse accusation de médias: l'Islam s'est propagé par la Force-Zakir Naik https://www.youtube.com/watch?v=Hf6flYTbP0c    
    • C'est pour les entreprises, et il devrait changer d'hébergeur, le site est trop lent.
    • juste une anecdote : je suis passé chez LG pour demander quand arrivera "la gamme 2020 TV"; vu que dans les autres pays du monde c'est deja dispo, y compris le maroc...et voici sa réponse: "wallah ya kho aucune idée....rak deja mlih que tu trouves la gamme 2019 en ALGERIE avec tous les problemes li kayen" ma reaction: 😵......😬    
×
×
  • Create New...