Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shopify Mastery

Plataforma de aprendizaje para Shopify: documentación en Markdown, retos prácticos, progreso por usuario y panel de administración.

URLs en local (Docker)

Página URL
Inicio / retos http://localhost:8080/
Reto concreto http://localhost:8080/module/{slug}
Documentación http://localhost:8080/docs
Documento MD http://localhost:8080/docs/{archivo.md}
Panel admin http://localhost:8080/admin
Admin retos http://localhost:8080/admin/modules

Las URLs antiguas (index.php, docs.php, admin.php?view=…) redirigen con 301 a las rutas limpias.

La carpeta src/ se monta como raíz del servidor web (/var/www/html). Las URLs no llevan /src/ en el navegador.

Inicio rápido

1. Requisitos

2. Configuración (opcional pero recomendada)

Copia el archivo de entorno de ejemplo:

cd C:\Users\Frank\Desktop\shopify-web
copy .env.example .env

En macOS o Linux:

cp .env.example .env

El valor por defecto de .env.example ya apunta a la base de datos del docker-compose.yml. Solo edita .env si usas otra URL (por ejemplo Neon en producción).

3. Arrancar

docker-compose up

O en segundo plano:

docker-compose up -d

Abre http://localhost:8080 en el navegador.

4. Panel de administración

  1. Entra con una cuenta admin (por defecto superuser / super1user2).
  2. Abre http://localhost:8080/admin.php o el enlace Panel de Admin en la barra lateral (solo visible para administradores).

En el admin puedes:

  • Crear y editar retos (módulos)
  • Gestionar categorías
  • Subir, ocultar o eliminar documentos .md
  • Ver usuarios y su progreso

5. Documentación y retos

  • Documentación: barra lateral → Documentación, o http://localhost:8080/docs.php
  • Documentación de ejemplo (Git): src/docs/seed/*.md — viajan con el repo.
  • Subidas desde admin (producción): src/docs/md/*.mdno están en Git; un deploy no las sobrescribe.
  • Retos: definidos en PostgreSQL; el contenido teórico puede enlazar un .md por nombre de archivo.

Los documentos ocultos se guardan en src/docs/.hidden_docs.json (tampoco en Git).

Persistencia de docs en producción

Qué Dónde En Git
Guías de ejemplo docs/seed/
Subidas en admin docs/md/ No (.gitignore)
Ocultar/mostrar docs/.hidden_docs.json No

Con Docker en producción, monta un volumen en docs/md (ver docker-compose.prod.yml):

docker compose -f docker-compose.prod.yml up -d --build

En hosting sin Docker, asegúrate de que el deploy no borre la carpeta docs/md/ del servidor (rsync con exclusión, o disco persistente).

Configuración de base de datos

La conexión está en src/db.php y usa RedBeanPHP (rb-postgres.php).

Entorno Cómo se conecta
Docker local DATABASE_URL con host db (ver .env.example) o valores por defecto en db.php
Sin DATABASE_URL Fallback en código: host=db, usuario myuser, BD mydatabase
Producción Variable de entorno DATABASE_URL del hosting (Neon, Render, etc.)

Formato de DATABASE_URL:

postgres://usuario:contraseña@host:5432/nombre_bd

Estructura del proyecto

shopify-web/
├── .env.example          # Plantilla de variables (copiar a .env)
├── docker-compose.yml    # PostgreSQL + PHP/Apache
├── Dockerfile
└── src/                  # Código montado en http://localhost:8080/
    ├── .htaccess         # Rewrite → rutas limpias
    ├── routes.php        # Helpers de URL (route_home, route_module, …)
    ├── index.php         # Hub principal y retos
    ├── docs.php          # Visor de documentación
    ├── admin.php         # Panel de administración
    ├── db.php            # Conexión RedBean / PostgreSQL
    ├── auth.php          # Sesión y roles
    ├── auth_handlers.php # Login / registro
    ├── security.php      # CSRF y Markdown seguro
    ├── admin_actions.php # Acciones POST del admin
    ├── sidebar.php
    ├── styles.css        # Layout y UI global
    ├── markdown.css      # Contenido renderizado desde .md
    ├── docs.css          # Listado de documentación (docs.php)
    ├── docs_lib.php      # Rutas seed vs subidas
    ├── docs/seed/        # Markdown de ejemplo (en Git)
    └── docs/md/          # Subidas admin (ignorado por Git)

Desarrollo

  • Los cambios en src/ se reflejan al recargar el navegador (volumen Docker).
  • Para parar: Ctrl+C en la terminal o docker-compose down.
  • PostgreSQL expone el puerto 5432 en local si necesitas un cliente SQL externo.

Uso sin programar

No hace falta tocar PHP para usar la plataforma: Docker, navegador y, para administrar contenido, la cuenta admin.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages