Materia: Introducción al Desarrollo de Software (IDS)
Equipo: Agustín García – Ana Angélica Moshkov
Tema: Aplicación de comercio electrónico (e-commerce) para venta de componentes y periféricos de PC.
El proyecto implementa un carrito de compras funcional que demuestra la comunicación RESTful entre un Frontend y un Backend conectados a una base de datos.
- Catálogo de productos con precios
- Vista de detalle de producto
- Funcionalidad para agregar y quitar productos del carrito
- Vista del carrito con cálculo del total
- Proceso básico de checkout
- Autenticación de usuarios (se usa un ID fijo)
- Pasarelas de pago reales
- Gestión de stock en tiempo real
El proyecto está dividido en dos aplicaciones Flask independientes (Frontend y Backend) siguiendo una arquitectura RESTful.
- Lenguaje: Python 3.x
- Framework: Flask
- Base de Datos: MySQL
- Frontend: HTML5, CSS (Template Zay), Jinja2
TP_FINAL_IDS/ ├─ backend/ # API RESTful (Puerto 5000) │ ├─ app.py # Endpoints y conexión a la BD │ ├─ db.py │ ├─ requirements.txt # Dependencias de Python │ └─ database/ # Scripts SQL │ ├─ frontend/ # Aplicación Web (Puerto 5001) │ ├─ app.py # Rutas HTML que consumen la API │ ├─ static/ # CSS, JS, imágenes │ └─ templates/ # HTML (index, productos, about, contact, etc.) │ └─ .gitignore
Para ejecutar la aplicación localmente, se deben iniciar Backend y Frontend por separado.
git clone https://github.com/agarciav12/TP_FINAL_IDS.git cd TP_FINAL_IDS
python3 -m venv venv source venv/bin/activate
pip install -r backend/requirements.txt
-
Requiere un servidor MySQL corriendo
-
Usar el script dentro de backend/database/ para crear la BD
-
Incluye también setup_database.sh
🟦 Terminal 1 – Backend (API) (venv) python backend/app.py
Disponible en: http://127.0.0.1:5000/
🟩 Terminal 2 – Frontend (Web) (venv) python frontend/app.py
Disponible en: http://127.0.0.1:5001/
| Método | Endpoint | Descripción | Requisito |
|---|---|---|---|
| GET | /api/productos |
Obtiene el catálogo completo (o filtrado). | Mostrar catálogo |
| GET | /api/productos/<id> |
Obtiene el detalle de un solo producto. | Detalle de Producto |
| POST | /api/carrito |
Agrega un producto al carrito. | Funcionalidad Carrito |
| GET | /api/carrito/<uid> |
Obtiene el contenido del carrito de un usuario. | Mostrar Carrito |
- Se utilizó GitHub para la gestión del código
- Las tareas se organizaron con un tablero Kanban en GitHub Projects
- Todos los integrantes realizaron commits asociados a tareas
- Se aplicaron buenas prácticas de programación durante el desarrollo