Skip to content

cdryampi/curriculum-backend

Repository files navigation

CV Backend - Proyecto Django

Este es un proyecto Django que sirve como backend para un sistema de currículum en línea. Proporciona una API RESTful para gestionar información personal, proyectos, experiencia laboral, educación, habilidades, comentarios y más.


Tabla de Contenidos

  1. Requisitos Previos
  2. Configuración del Proyecto
  3. Estructura del Proyecto
  4. Configuración de CKEditor 5
  5. Personalización del Panel de Administración
  6. Despliegue en Producción

Requisitos Previos

Antes de comenzar, asegúrate de tener instalado lo siguiente:

  • Python 3.10 o superior.
  • Pipenv o pip para gestionar dependencias.
  • Git (opcional, para clonar el repositorio).

Configuración del Proyecto

Sigue estos pasos para configurar y ejecutar el proyecto en tu entorno local:

  1. Clonar el repositorio:

    git clone https://github.com/cdryampi/curriculum-backend.git
    cd curriculum-backend
  2. Crear entorno virtual:

    python -m venv .venv
    source .venv/bin/activate  # En Windows: .venv\Scripts\activate
  3. Instalar dependencias:

    pip install -r cv_backend/requirements.txt
  4. Crear archivo .env:

    SECRET_KEY=tu_clave_secreta_aqui
    DEBUG=True
    ALLOWED_HOSTS=localhost,127.0.0.1
    URL_SERVER=http://localhost:8000
    RECAPTCHA_PUBLIC_KEY=tu_clave_publica_recaptcha
    RECAPTCHA_PRIVATE_KEY=tu_clave_privada_recaptcha
    PUBLIC_PROFILE_USERNAME=tu_usuario_publico
    CORS_ALLOWED_ORIGINS=http://localhost:5173,https://yampi.eu,https://www.yampi.eu
    CSRF_TRUSTED_ORIGINS=http://localhost:5173,https://backend.yampi.eu
  5. Aplicar migraciones:

    cd cv_backend
    python manage.py migrate
  6. Ejecutar los comandos de creación de datos de prueba:

    python manage.py add_users_data
    python manage.py assign_group_permissions
    
  7. Compilar archivos estáticos:

    python manage.py collectstatic
  8. Iniciar el servidor de desarrollo:

    python manage.py runserver

Verificación local

Antes de abrir un Pull Request, ejecuta desde cv_backend/:

python manage.py check
python manage.py test

Si las dependencias nativas no están disponibles en el host, usa Docker Compose desde la raíz del repositorio:

docker compose up -d
docker compose logs -f web

Estructura del Proyecto

El proyecto está estructurado de la siguiente manera:

cv_backend/
├── base_user/ # Aplicación para gestionar usuarios
├── core/ # Aplicación principal del proyecto con modelos y vistas comunes
├── coment/ # Aplicación para gestionar comentarios **(en desarrollo)**
├── education_and_skills/ # Aplicación para educación, formación y habilidades
├── experiencia_laboral/ # Aplicación para gestionar experiencia laboral
├── projects/ # Aplicación para gestionar proyectos personales
├── static/ # Archivos estáticos (CSS, JS, imágenes, etc.)
├── redes_sociales/ # Aplicación para gestionar redes sociales **(en desarrollo)**
├── services/ # Aplicación para gestionar servicios y productos **(en desarrollo)**
├── multimedia_manager/ # Aplicación para gestionar archivos multimedia
├── media/ # Archivos multimedia subidos por los usuarios
├── static_pages/ # Aplicación para gestionar páginas estáticas
├── utils/ # Módulos y funciones de utilidad

Configuración de CKEditor 5

El proyecto utiliza CKEditor 5 para la edición de texto enriquecido en los campos de texto de los modelos. Para configurar CKEditor 5, sigue estos pasos:

CKEDITOR_5_CONFIGS = {
    'default': {
        'toolbar': ['undo', 'redo', '|', 'heading', '|', 'bold', 'italic', 'strikethrough', 'underline', 'link', 'bulletedList', 'numberedList', '|', 'outdent', 'indent', '|', 'blockQuote', 'insertTable', 'mediaEmbed', 'imageUpload', '|', 'removeFormat', 'sourceEditing'],
        'image': {
            'toolbar': ['imageTextAlternative', '|', 'imageStyle:inline', 'imageStyle:block', 'imageStyle:side']
        },
        'table': {
            'contentToolbar': ['tableColumn', 'tableRow', 'mergeTableCells']
        },
        'simpleUpload': {
            'uploadUrl': 'URL_TO_YOUR_UPLOAD_ENDPOINT',
            'headers': {
                'X-CSRFToken': 'CSRF_TOKEN'
            }
        },
        'height': '400px',
        'width': 'auto',
    }
}

Personalización del Panel de Administración

El panel de administración está personalizado usando Jazzmin. Puedes modificar la configuración en settings.py bajo la clave JAZZMIN_SETTINGS.

JAZZMIN_SETTINGS = {
    "site_title": "Admin de Mi Currículum",
    "site_header": "Mi Currículum",
    "site_brand": "Mi Currículum",
    "welcome_sign": "Bienvenido al Panel de Administración",
    "search_model": "auth.User",
    "user_avatar": None,
}

Iniciar el servidor de desarrollo

cd cv_backend
python manage.py runserver

About

pequeño CMS para poder gestionar un curriculum en versión web.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors