Este proyecto utiliza Django como backend y Vue.js (dashboard), con Nuxt 3 como frontend.
- Git
- Python 3.12
- Node.js 22
- PostgreSQL
En Ubuntu/Debian:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12 python3.12-venv python3.12-dev
En macOS (usando Homebrew):
brew update
brew install python@3.12
En Windows:
- Descarga el instalador desde python.org
- Ejecuta el instalador y asegúrate de marcar la opción "Add Python to PATH"
python3.12 -m venv venv
En Linux/macOS:
source venv/bin/activate
En Windows:
venv\Scripts\activate
git clone https://github.com/aclicona/web-pages-backend.git webpage
cd webpage
pip install -r requirements.txt
En Ubuntu/Debian:
sudo apt update
sudo apt install postgresql postgresql-contrib
En macOS (usando Homebrew):
brew install postgresql
brew services start postgresql
En Windows:
- Descarga e instala PostgreSQL desde postgresql.org
sudo -u postgres psql
En la consola de PostgreSQL, ejecuta:
CREATE DATABASE nombre_db;
CREATE USER nombre_usuario WITH PASSWORD 'contraseña';
ALTER ROLE nombre_usuario SET client_encoding TO 'utf8';
ALTER ROLE nombre_usuario SET default_transaction_isolation TO 'read committed';
ALTER ROLE nombre_usuario SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE nombre_db TO nombre_usuario;
\q
Crea un archivo .env
en la raíz del proyecto:
DEBUG=True
SECRET_KEY="tu_clave_secreta"
DATABASE_URL=postgres://nombre_usuario:contraseña@localhost:5432/nombre_db
DEVELOPMENT=1
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
El backend de Django estará disponible en: http://127.0.0.1:8000/
En Ubuntu/Debian (usando NVM):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
En macOS (usando Homebrew):
brew update
brew install node@22
En Windows:
- Descarga el instalador desde nodejs.org
Desde la raíz del proyecto principal:
git clone https://github.com/aclicona/web-pages-frontend.git frontend
cd frontend
npm install
npm run dev
El frontend estará disponible en: http://localhost:3000/
proyecto/
├── venv/ # Entorno virtual de Python
├── manage.py # Script de Django
├── backend/ # Configuración principal de Django
├── dashboard/ # Aplicación de dashboard bajo Vue que renderiza Django
├── frontend/ # Proyecto Nuxt 3
│ ├── node_modules/
│ ├── pages/ # Páginas de Nuxt
│ ├── components/ # Componentes de Vue
│ ├── nuxt.config.js # Configuración de Nuxt
│ └── package.json # Dependencias de Node.js
└── README.md # Este archivo
- Crear migraciones:
python manage.py makemigrations
- Aplicar migraciones:
python manage.py migrate
- Crear superusuario:
python manage.py createsuperuser
- Recolectar archivos estáticos:
python manage.py collectstatic
- Ejecutar tests:
python manage.py test
- Ejecutar en modo desarrollo:
npm run dev
- Construir para producción:
npm run build
- Iniciar en modo producción:
npm run start
- Ejecutar linter:
npm run lint
Para desplegar el backend en producción, considera:
- Gunicorn como servidor WSGI
- Nginx como proxy inverso
- Configuración adecuada de variables de entorno
- Deshabilitar DEBUG en producción
Para desplegar el frontend en producción:
- Construir con
npm run build
- Servir con Nginx o un servicio de hosting estático
- Haz fork del repositorio
- Crea una nueva rama (
git checkout -b feature/nueva-caracteristica
) - Haz commit de tus cambios (
git commit -am 'Añadir nueva característica'
) - Haz push a la rama (
git push origin feature/nueva-caracteristica
) - Crea un nuevo Pull Request