Skip to content

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌿 Natursur — Tienda Virtual y Gestión de Citas

Proyecto educativo (PGPI) que combina una pequeña tienda online con un sistema de reservas para servicios presenciales (masajes y tratamientos). Está pensado para que el personal del centro gestione las citas y los productos, mientras los usuarios pueden reservar y consultar productos desde la web.

Este README resume cómo preparar el entorno, ejecutar la aplicación en local y dónde encontrar las piezas principales del código.


🎯 Qué hace este proyecto

  • Plataforma de reserva de citas (masajes: drenantes, quiromasajes, anticelulítico, antiestrés, etc.).
  • Catálogo de productos con imagen, descripción y precio.
  • Página de producto con enlace de compra hacia la tienda de Herbalife (enlace afiliado configurable).
  • Interfaz principal con un carrusel "infinito" de productos (autoplay, arrastre y soporte por rueda).
  • Feed de Instagram integrado (renderizado en servidor si se configura token, con fallback cliente).
  • API simple para paginar productos: GET /api/products/ (útil para carga perezosa/infinite scroll).

⚡ Inicio rápido (Windows — PowerShell)

  1. Clona el repositorio y ve a la carpeta:
git clone <repo-url>
cd practica_pgpi
  1. Crea y activa un entorno virtual:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
  1. Instala dependencias (si existe requirements.txt):
pip install -r requirements.txt
  1. Inicializa la base de datos y crea un superusuario:
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
  1. Ejecuta el servidor de desarrollo:
python manage.py runserver

Visita http://127.0.0.1:8000/ en tu navegador.


📋 Requisitos recomendados

Componente Versión sugerida
Python 3.10+
Django 4.x / 5.x (compatible con el proyecto)
Base de datos SQLite (local), Postgres recomendado en producción

📁 Estructura relevante

practica_pgpi/
├─ tienda_virtual/        # Proyecto Django
├─ home/                  # App principal (vistas, modelos, templates)
├─ db.sqlite3             # Base de datos local (se crea al migrar)
├─ .gitignore
└─ README.md

Plantillas principales: home/templates/index.html, catalog.html, product_detail.html, contact.html.

Vistas importantes: definidas en home/views.pyindex, catalog, product_detail, contact, reservations, products_api.


🚀 Endpoints y rutas principales

  • / — Página principal (carrusel + grid de productos + sección social).
  • /catalog/ — Catálogo con carga infinita desde la API.
  • /product/<id>/ — Detalle de producto y enlace de compra (Herbalife).
  • /contact/ — Información de contacto.
  • /reservations/ — Formulario y/o listado de reservas.
  • /api/products/ — JSON paginado de productos.

🔧 Variables de entorno importantes

  • DJANGO_SECRET_KEY — clave secreta de Django (producción).
  • INSTAGRAM_ACCESS_TOKEN — token para obtener feed de Instagram (opcional).
  • INSTAGRAM_FEED_TTL — tiempo (segundos) para cachear el feed.
  • HERBALIFE_SALE_CODE — código de afiliado para construir enlaces de compra.
  • HERBALIFE_BASE_URL — URL base de la tienda de Herbalife.
  • COMPANY_ADDRESS, COMPANY_OWNER, COMPANY_EMAIL — datos para la página de contacto.

Consejo: guarda estos valores en un .env local (no subirlo al repo). .venv/ ya está incluido en .gitignore.


🛠️ Comandos frecuentes

python manage.py runserver            # Inicia servidor local
python manage.py makemigrations       # Genera migraciones
python manage.py migrate              # Aplica migraciones
python manage.py createsuperuser      # Crea admin
python manage.py test                 # Ejecuta tests

🐳 Despliegue con Docker

Para ejecutar la aplicación dentro de un contenedor Docker (útil para entornos de producción o pruebas consistentes), sigue estos pasos desde el directorio raíz del repositorio (practica_pgpi/), donde se encuentra el Dockerfile.

1. 🏗️ Construir la imagen

    docker build -t tienda_virtual .

2. 🚀 Ejecutar el contenedor

    docker run -d -p 8000:8000 --name natursur_app tienda_virtual

3. 🌐 Acceder a la aplicación

Visita en tu navegador:

http://localhost:8000/

4. 🛑 Detener y eliminar el contenedor (opcional)

    docker stop natursur_app
    docker rm natursur_app

☁️ Despliegue en Render

El enlace para acceder a la página web desplegada en Render es: https://pgpi-natursur.onrender.com


🧭 Flujo de uso (resumido)

  1. Usuario visita la landing y explora productos.
  2. Puede ver detalle de producto y abrir el enlace afiliado para compra.
  3. Para reservar, completa el formulario de reservations con fecha/hora y detalles.
  4. El personal del centro gestiona citas desde el panel (o mediante Django admin).

🐞 Solución de problemas rápida

  • Si falta Django: pip install -r requirements.txt.
  • Si el puerto 8000 está ocupado: python manage.py runserver 8080.
  • Para reiniciar base de datos local: borra db.sqlite3 y ejecuta migrate.

🤝 Cómo contribuir

  1. Haz fork del repositorio.
  2. Crea una rama: git checkout -b feature/mi-cambio.
  3. Añade cambios y tests si procede.
  4. Abre un Pull Request describiendo lo que cambias.

📄 Licencia

Proyecto educativo (PGPI) — licencia por determinar / uso académico.


👤 Autor / Contacto

Si tienes dudas o necesitas ayuda adicional abre una issue o contacta al responsable del repositorio.


Este README fue reescrito para acercar su estructura y presentación a ejemplos profesionales, manteniendo redacción y contenido propios.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages