Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 62 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,62 @@
# PGPI-G1.11
# ESSENZA

Plataforma de comercio electrónico para la gestión y venta de productos y servicios cosméticos.

## ⚡ Inicio Rápido

Acceso a la aplicación desplegada:
**[🌐 https://pgpi-g1-11.onrender.com/](https://pgpi-g1-11.onrender.com/)**

## 📚 Documentación

Para aprender a utilizar la plataforma, consulta nuestra guía:

> **[👤 Manual de Usuario](./essenza/manual_usuario.md)**
>
> *Incluye instrucciones paso a paso para el registro, proceso de compra, seguimiento de pedidos y gestión del panel de administración.*
## 📂 Estructura del Proyecto

~~~text
PGPI-G1.11/
├── docs/ # Documentación completa de planificación y desarrollo
├── essenza/ # Código fuente del backend (Raíz del proyecto)
│ ├── _sample_assets/ # Imágenes de sampleo
│ ├── cart/ # App de gestión del carrito de compra
│ ├── essenza/ # Configuración principal del proyecto Django
│ ├── info/ # App de información general
│ ├── order/ # App de gestión de pedidos y pagos
│ │ └── samples/ # JSON con pedidos de sampleo
│ ├── product/ # App de catálogo y gestión de productos
│ │ └── samples/ # JSON con productos de sampleo
│ ├── static/ # Recursos estáticos
│ │ └── images/
│ ├── templates/ # Plantillas HTML
│ ├── user/ # App de autenticación y gestión de usuarios
│ │ └── samples/ # JSON con usuarios de sampleo
│ ├── deploy.sh # Script de construcción para Render (Linux)
│ ├── Dockerfile # Definición de imagen para contenedor Docker
│ ├── entrypoint.sh # Script de arranque del contenedor
│ ├── install.bat # Script de instalación de entorno local (Windows)
│ ├── manage.py # Gestor de línea de comandos Django
│ ├── manual_usuario.md # Guía funcional para el usuario final
│ ├── Procfile # Comando de inicio para Render
│ ├── requirements.txt # Lista de dependencias del proyecto
│ └── reset_db.bat # Script de reinicio y poblado de BBDD
├── .gitignore # Archivos excluidos del control de versiones
└── README.md
~~~

---

<div align="center">
<h3>PGPI - Grupo 1.11</h3>
<p>
<b>Francisco de Castro</b> •
<b>Celia Suárez</b> •
<b>Carolina Murillo</b> •
<b>Javier Gea</b> •
<b>Alejandro Mantecón</b>
</p>
<p>Curso 2025/2026</p>
</div>
32 changes: 32 additions & 0 deletions essenza/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Usamos Python 3.10 (ajustado para compatibilidad)
FROM python:3.10-slim

# Evita que Python genere archivos .pyc y buffer de salida
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# Directorio de trabajo dentro del contenedor
WORKDIR /app

# Instalamos dependencias del sistema necesarias para compilar algunas librerías
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*

# Instalamos dependencias de Python
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt

# Copiamos todo el código
COPY . /app/

# Copiamos y damos permisos al script de entrada
COPY entrypoint.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh

# Exponemos el puerto 8000
EXPOSE 8000

# Ejecutamos el script al iniciar
ENTRYPOINT ["/app/entrypoint.sh"]
32 changes: 32 additions & 0 deletions essenza/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/sh
set -e

echo "--- 1. Instalando dependencias (pip) ---"
pip install -r requirements.txt

echo "--- 2. Generando migraciones ---"
python manage.py makemigrations

echo "--- 3. Recolectando estáticos ---"
python manage.py collectstatic --no-input

echo "--- 4. Vaciando DB (Flush) ---"
python manage.py flush --no-input

echo "--- 5. Aplicando Migraciones (Migrate) ---"
python manage.py migrate --no-input

echo "--- 6. Copiando imagenes de sampleo ---"
mkdir -p media
cp -r _sample_assets/* media/ 2>/dev/null || true

echo "--- 7. Cargando datos de USER, PRODUCT, ORDER ---"
python manage.py loaddata user/sample/sample.json
python manage.py loaddata product/sample/sample.json
python manage.py loaddata order/sample/sample.json

echo "======================================================"
echo "!PROCESO COMPLETADO! INICIANDO SERVIDOR EN PUERTO 8000"
echo "======================================================"

exec python manage.py runserver 0.0.0.0:8000
61 changes: 61 additions & 0 deletions essenza/install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
@echo off
REM ---------------------------------------------------------
REM NOMBRE: install.bat
REM FUNCION: Prepara el entorno tecnico desde cero.
REM 1. Verifica entorno virtual.
REM 2. Instala dependencias.
REM 3. Crea archivos de migracion (Detecta modelos).
REM 4. Aplica migraciones (Crea tablas vacias).
REM 5. Recolecta staticfiles.
REM ---------------------------------------------------------

IF "%VIRTUAL_ENV%"=="" (
echo.
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo ERROR: No se detecta un entorno virtual activo.
echo Por favor, activa tu '.venv' antes de ejecutar este script.
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
pause
exit /b 1
)

echo.
echo --- 1. Instalando dependencias del sistema...
pip install -r requirements.txt
IF %ERRORLEVEL% NEQ 0 GOTO :ERROR

echo.
echo --- 2. Generando archivos de migracion modularmente...
python manage.py makemigrations cart
python manage.py makemigrations order
python manage.py makemigrations product
python manage.py makemigrations user
IF %ERRORLEVEL% NEQ 0 GOTO :ERROR

echo.
echo --- 3. Construyendo la Base de Datos...
python manage.py migrate --noinput
IF %ERRORLEVEL% NEQ 0 GOTO :ERROR

echo.
echo --- 4. Recolectando staticfiles...
python manage.py collectstatic --noinput
IF %ERRORLEVEL% NEQ 0 GOTO :ERROR

echo.
echo =======================================================
echo !INSTALACION COMPLETADA!
echo Estructura de BD creada exitosamente.
echo Para poblar con datos de ejemplo, ejecuta: reset_db.bat
echo =======================================================
GOTO :END

:ERROR
echo.
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo ERROR CRITICO -> La instalacion ha fallado.
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
pause
exit /b 1

:END
76 changes: 0 additions & 76 deletions essenza/load_samples.bat

This file was deleted.

Loading