Una plataforma de comercio electrónico completa y moderna construida con una arquitectura de microservicios limpia, utilizando FastAPI para el backend y HTML5/TailwindCSS/Vanilla JS para el frontend.
- Diseño Responsivo: Interfaz usuario moderna con TailwindCSS, modo oscuro/claro (Dark Blue Theme).
- Carrito de Compras: Gestión de productos, cálculo de totales y persistencia.
- Lista de Deseos: Guarda productos favoritos.
- Blog Integrado: Sección de noticias y artículos tecnológicos.
- Sistema de Reseñas: Calificación y comentarios de productos.
- Pagos Integrados: Soporte para Stripe, PayPal y simulación de PSE/Efecty.
- API RESTful: Endpoints seguros y documentados automáticamente (Swagger UI).
- Autenticación JWT: Registro y login de usuarios con roles (admin/cliente).
- Base de Datos: PostgreSQL con SQLAlchemy ORM y Alembic para migraciones.
- Seguridad: Hashing de contraseñas con bcrypt, protección contra inyección SQL.
- Microservicios: Módulos separados para productos, usuarios, órdenes, pagos, etc.
- Python 3.10+
- PostgreSQL
- Node.js (opcional, para gestión de paquetes frontend si se requiere)
-
Clonar el repositorio:
git clone <url-del-repositorio> cd TiendaVirtual
-
Configurar variables de entorno: Crea un archivo
.enven la carpetabackend/con las siguientes variables:POSTGRES_USER=postgres POSTGRES_PASSWORD=tu_contraseña POSTGRES_DB=tienda_virtual SECRET_KEY=tu_clave_secreta STRIPE_SECRET_KEY=sk_test_... PAYPAL_CLIENT_ID=... EPAYCO_PUBLIC_KEY=...
-
Ejecutar la Aplicación: El proyecto incluye un script automatizado para gestionar el entorno virtual y los servicios:
python run_services.py
Este comando:
- Creará/Activará el entorno virtual (
.venv). - Instalará las dependencias necesarias.
- Iniciará el servidor Backend en
http://127.0.0.1:8080. - Iniciará el servidor Frontend en
http://127.0.0.1:3000. - Abrirá el navegador automáticamente.
- Creará/Activará el entorno virtual (
TiendaVirtual/
├── backend/
│ ├── app/
│ │ ├── api/ # Endpoints de la API
│ │ ├── core/ # Configuración (config.py)
│ │ ├── db/ # Conexión a BD
│ │ ├── models/ # Modelos SQLAlchemy
│ │ ├── schemas/ # Esquemas Pydantic
│ │ └── services/ # Lógica de negocio
│ ├── tienda_virtual.sql # Script de creación de BD
│ └── main.py # Punto de entrada FastAPI
├── frontend/
│ ├── static/ # CSS, JS, Imágenes
│ ├── templates/ # Archivos HTML
│ └── main.py # Servidor de archivos estáticos
└── run_services.py # Script de orquestación
- Haz un Fork del proyecto.
- Crea una rama para tu característica (
git checkout -b feature/nueva-caracteristica). - Haz Commit de tus cambios (
git commit -m 'Añadir nueva característica'). - Haz Push a la rama (
git push origin feature/nueva-caracteristica). - Abre un Pull Request.
Este proyecto está bajo la Licencia MIT.