Inter Hyper Market (IHM)
Terminé2024Application

Inter Hyper Market (IHM)

Application de gestion de stocks pour magasin, développée en équipe de trois dans le cadre d'un projet universitaire, mettant en œuvre l'architecture MVC et l'algorithme de Dijkstra.

Présentation

Ce projet consistait à créer une interface pour un magasin afin de faciliter la gestion des stocks. Son objectif était de nous faire travailler sur un modèle Modèle-Vue-Contrôleur ainsi que sur l'utilisation des principes de graphes vus en cours, notamment l'algorithme de Dijkstra. Nous devions créer deux applications distinctes : l'une destinée aux clients du magasin et l'autre pour la gestion interne.

Mon rôle

J'ai été chargé de développer la partie modèle du projet, c'est-à-dire la structure permettant de stocker et de manipuler les données utilisées dans le reste du programme. J'ai donc créé de nombreuses classes en Python, dont notamment :

dijkstra() Algorithme

Calcule le chemin le plus court dans la grille du magasin à partir d'un sommet de départ, permettant de guider les clients vers les produits de manière optimale.

from Classes.filepile import *

def dijkstra(graphe: dict, depart: tuple) -> dict:
    '''Renvoie un dictionnaire dont les clés sont les sommets
    atteignables depuis le sommet de départ, avec leur distance.

    :param: graphe, objet Plan
    :param: depart, type tuple, sommet de départ
    :return: la liste du chemin à suivre
    '''
    ...
class Plan Modèle

Classe de base représentant le plan du magasin sous forme de grille de points. Chaque point connaît ses voisins, ce qui permet à Dijkstra de parcourir le graphe.

class Plan:
    def __init__(self, h: int = 9, l: int = 9,
                 nom: str = "MonMagasin", auteur: str = "",
                 date: str = "17/11/2005",
                 adresse: str = "None of your business",
                 image: str = None) -> None:
        self._plan: list[Point] = []
        self._h: int = h
        self._l: int = l
        # Création de la grille de points
        for x in range(h):
            for y in range(l):
                self._plan.append(Point(x, y))
        # Liaison des voisins
        for i in range(len(self._plan)):
            self._plan[i].set_voisins(self._plan)
    ...
class Produit Modèle

Représente un produit du magasin avec ses propriétés (nom, prix, description, icône, type), utilisé dans les deux applications client et gestion.

class Produit:
    def __init__(self, nom: str, prix: float,
                 description: str, icone: str,
                 nomType: str) -> None:
        self._nom = nom
        self._prix = prix
        self._description = description
        self._icone = icone
        self._type = nomType
    ...

Technologies utilisées

PythonMVCDijkstraPOO

Informations

Année2024
CatégorieApplication
StatutTerminé

Équipe

3 personnes
2 applications distinctes