Proyecto E-Commerce InnovaWeb. Evidencia de Aprendizaje N° 3
Este proyecto es un sistema de consola para la gestión de usuarios en un E-commerce de tecnología, donde los usuarios pueden registrarse, iniciar sesión y acceder a funcionalidades específicas según su rol (administrador o usuario estándar). Además, se diseñó una base de datos relacional en MySQL para estructurar los datos del sistema, aunque el código funciona sin persistencia.
- Registrar e iniciar sesión de usuarios con validaciones seguras.
- Control de acceso mediante roles.
- Menús personalizados según el tipo de usuario.
- Diseño de una base de datos en tercera forma normal (3FN).
- Aplicación de principios de Programación Orientada a Objetos (POO).
-
Lenguaje: Python 3.x
-
Editor: Visual Studio Code
-
Base de Datos: MySQL (para modelado, sin conexión directa)
-
Modelo relacional: Normalizado a 3FN
-
Cloná o descargá el repositorio.
-
Abrí la carpeta del proyecto desde VS Code.
-
Asegurate de tener instaladas las extensiones de Python.
-
Ejecutá el archivo
main.py.
-
crear_bd.sql→ Script para crear las tablas y relaciones. -
crud_usuarios.sql→ Insert, Select, Update y Delete para la tablausuarios.
-
Programación Orientada a Objetos (POO)
-
Encapsulamiento de datos
-
Modularidad y separación de responsabilidades
-
Nomenclatura estándar (snake_case)
-
Validación con expresiones regulares
-
Modelado entidad-relación
-
Integridad referencial en bases de datos
-
Contraseña: mínimo 6 caracteres, debe incluir letras y números (usando expresiones regulares).
-
Validación de usuario duplicado.
-
Control de errores con mensajes claros.
-
Acceso restringido por rol (
usuariooadmin).
| Acción | Usuario estándar | Administrador |
|---|---|---|
| Ver sus datos | ✅ | ✅ |
| Ver todos los usuarios | ❌ | ✅ |
| Cambiar rol de otro usuario | ❌ | ✅ |
| Eliminar un usuario | ❌ | ✅ |
innovaweb_ecommerce/
│
├── src/ # Código fuente principal
│ ├── main.py # Punto de entrada del programa
│ ├── menu_sistema.py # Menú por rol
│ ├── sistema_auth.py # Funciones de registro y login
│ └── user.py # Clase Usuario
│
├── database/ # Base de datos
│ ├── Creacion de tablas.txt # Script de la base de datos
│ └── CRUD para Usuarios.txt # Consultas Clase Usuario
│
├── docs/ # Diagramas
│ ├── Diagrama de Clases.png
| └── Diagrama de Base de datos.png
│
└── Readme.md
| Nombre | Rol en el Proyecto |
|---|---|
| Acosta Johana Vanessa | Base de datos |
| Andreoli Fernando Daniel | Base de datos |
| Crespin Marianela Jenifer | Python |
| Molina Ricardo Alberto | Python |
| Vaca Cristian Andres | Python |