Skip to content

[Proyecto I] #323

Description

@Alberto67067

**Nombre:**Alberto Martinez Machin
**Grupo:**c-122
**Repositorio:**https://github.com/Alberto67067/Proyecto-Programming-2026

Descripción

(Añadir una breve descripción de su proyecto).

Activity

  1. github-actions commented on Jun 27, 2026

    @github-actions

    Verificación Automática — Proyecto I 🤖

    Repositorio analizado: https://github.com/Alberto67067/Proyecto-Programming-2026

    1. Repositorio

    ✅ El repositorio es accesible y fue clonado correctamente.

    2. Informe (report.md)

    ❌ No se encontró report.md en el repositorio.

    3. Proyecto Python

    ⚠️ Sin pyproject.toml.
    ⚠️ Sin requirements.txt.

    ❌ No se encontraron archivos .py en el repositorio.

    4. Punto de Entrada

    ⚠️ No se encontró un punto de entrada claro (main.py, app.py, etc.).

    5. Ejecución

    ⚠️ Sin punto de entrada identificado — no se intentó ejecutar.

    Resumen

    • ✅ Repositorio accesible
    • ❌ report.md con ≥2000 palabras
    • ❌ Archivos Python
    • ❌ Configuración de dependencias
    • ❌ Punto de entrada
    • ❌ Ejecución

    1/6 verificaciones pasadas.


    Verificación automática — los resultados son orientativos. El profesor revisará en detalle.

  2. apiad commented on Jul 15, 2026

    @apiad
    Member

    🔍 Revisión de Código — Claude Code

    Repositorio: https://github.com/Alberto67067/Proyecto-Programming-2026

    Qué hace tu proyecto

    Construiste un sistema de gestión para una barra móvil de eventos: un inventario de botellas e insumos con control de capacidad, usuarios con roles y contraseñas hasheadas, y un calendario de eventos que detecta dos conflictos de negocio reales — que no haya stock suficiente para un evento, y que dos eventos se solapen en fechas. Cuando reservas recursos para un evento, se restan de verdad del inventario. Es un proyecto más completo de lo que tú mismo reconoces en el informe.

    Ejecución

    Importante primero: la verificación automática dijo "0 archivos Python" y eso es un falso negativo. Tu código está dentro de Proyecto2.rar, y el bot no descomprime .rar, por eso "no vio nada". Lo descomprimí y ejecuté todo de verdad. Dos detalles de entrega:

    • Tu punto de entrada se llama literalmente python main.py (con espacio), así que se arranca con python "python main.py". Casi seguro copiaste el comando de terminal como nombre del archivo sin querer.
    • Para la próxima, sube los .py directamente al repo en vez de un .rar: así el corrector automático los ve y se puede comparar tu progreso.

    Ya ejecutando: py_compile de los 6 módulos pasa, la app de consola arranca, el login admin/admin123 funciona (probé con terminal real, el hash SHA-256 coincide), y corrí la lógica de negocio con datos reales — todo respondió bien.

    Lo que está bien

    • Modularización de verdad: separaste modelo (Inventario_Obj.py, Recurso), lógica (Inventario.py, Almacen), capa interactiva (AlmacenCreate.py) y autenticación (MenuInic.py). Eso está por encima de la media de primer año.
    • Control de capacidad correcto: probé añadir un recurso que no cabía (30 manteles × 2 de espacio = 60 en un almacén con 50 libres) y lo rechazó con el mensaje justo.
    • Detección de solapamiento de fechas funciona: creé "Boda" (1–2 ago) y luego "Fiesta" (1 ago) → detectó el conflicto y la bloqueó; "Cumple" en septiembre → sin conflicto, creada. Tu fórmula not (fin1 < inicio2 or fin2 < inicio1) es la correcta.
    • La reserva resta del inventario de verdad: asigné 10 Vodka a un evento y el stock bajó de 30 a 20. Vi además que en tu calendario de prueba (uno_...json) ya había un evento con Vodka reservado — o sea, ejercitaste el ciclo completo.
    • Buenas decisiones para principiante: @dataclass, type hints, to_dict/from_dict para guardar en JSON, y contraseñas hasheadas con SHA-256 (no en texto plano — muy bien).

    Qué mejorar

    • Valida las fechas al crear un evento. Probé crear un evento con fecha_inicio="fecha-basura" y se creó sin protestar. Y hay un efecto peligroso: cuando la fecha es inválida, tu obtener_periodo lanza un error, pero hay_conflicto_con lo atrapa con un except: vacío y devuelve False — así que un evento con fecha inválida nunca choca con nadie y se cuela silenciosamente. Verifica el formato (datetime.fromisoformat) antes de aceptar el evento.
    • Cuidado con los except: desnudos (los tienes en varios sitios). Atrapan todo y esconden bugs — justo lo que pasó con las fechas. Usa except ValueError: cuando sepas qué esperas.
    • CATEGORIAS y GRUPO son set (Inventario_Obj.py:7), pero luego los indexas por número de menú con list(CATEGORIAS)[opcion-1]. Un set no garantiza orden, así que el número que ve el usuario puede no mapear a la categoría correcta. Cámbialos a tuple o list.
    • Poda la lógica duplicada: tienes reservar_recursos_para_evento, reservar_recursos_directo y asignar_recursos_automaticamente haciendo cosas parecidas (los encabezados dicen "VERSIÓN CORREGIDA" en cada archivo — se nota la iteración). Quédate con una y borra el resto; el código queda más claro y más fácil de defender.
    • Detalle del modelo: tu Almacen._usar libera capacidad al consumir stock, así que la "capacidad disponible" sube cuando reservas. Piensa si reservar para un evento debería o no vaciar el almacén físico — hoy queda un poco inconsistente.

    Sobre el informe

    Tu informe es honesto y no exagera nada — más bien te vendes de menos. Describe bien el dominio, los dos conflictos (stock y fechas) y da las credenciales de prueba correctas. No encontré ninguna discrepancia entre lo que dices y lo que hace el código. Dos notas: las carpetas clientes/ y reportes/ se crean pero quedan vacías (features que quedaron a medias, y el informe correctamente no las reclama), y el texto es corto — para la próxima, añade un par de ejemplos de ejecución paso a paso, que le harían justicia a un proyecto que es bastante más que "sencillo". Buen trabajo dadas las condiciones que describes.

  3. Alberto67067 commented on Jul 17, 2026

    @Alberto67067
    Author
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions