Skip to content

JoseMelNet/JobDeck

Repository files navigation

CVs-Optimizator

Aplicacion para registrar vacantes, analizarlas contra un perfil profesional y gestionar aplicaciones laborales.

Estado actual

  • interfaz principal web sobre FastAPI + Jinja2 + HTMX
  • arquitectura por capas en app/
  • persistencia SQL Server via pyodbc
  • suite automatizada con unittest
  • CI en GitHub Actions con sintaxis, lint y tests

Funcionalidades

  • registrar vacantes
  • listar, archivar, reactivar y eliminar vacantes
  • analizar vacantes contra el perfil activo
  • guardar vacantes desde la extension de Chrome
  • mostrar progreso de guardado y analisis en la extension
  • recuperar analisis historicos en la extension al reabrir una vacante ya registrada por link
  • gestionar aplicaciones y su seguimiento
  • gestionar perfil profesional, skills, experiencia, proyectos, educacion, cursos y certificaciones
  • renderizar una vista CV consolidada desde la web

Estructura

CVs-Optimizator/
|-- app.py
|-- api.py
|-- app/
|   |-- application/
|   |-- config/
|   |-- domain/
|   |-- infrastructure/
|   `-- interfaces/
|       `-- web/
|-- chrome-extension/
|-- tests/
|-- sql_queries/
|-- run_tests.py
`-- .github/workflows/ci.yml

Requisitos

  • Windows
  • Python 3.11 recomendado
  • SQL Server accesible desde pyodbc
  • variables de entorno para BD

Configuracion

  1. Crea .env a partir de .env.example.
  2. Ajusta credenciales de SQL Server.
  3. Agrega OPENAI_API_KEY si vas a ejecutar analisis reales de vacantes.

Variables usadas:

DB_SERVER=localhost\MSSQLSERVER2025
DB_DATABASE=job_postings_mvp
DB_USER=your_sql_user
DB_PASSWORD=your_sql_password
OPENAI_API_KEY=your_openai_api_key

Notas de configuracion:

  • DB_USER y DB_PASSWORD son obligatorias para conectarse a SQL Server.
  • DB_SERVER y DB_DATABASE mantienen defaults locales de desarrollo si no se definen.
  • OPENAI_API_KEY es obligatoria para ejecutar analisis reales con OpenAI.
  • La app puede arrancar sin BD, pero los flujos que persisten o consultan datos devolveran errores controlados o vistas vacias.

Instalacion

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

Ejecucion

Interfaz principal web:

uvicorn api:app --reload --port 8001

Luego abre:

http://127.0.0.1:8001/app

Prueba rapida de BD:

python test_connection.py

Flujo principal de la web

  1. Nueva Vacante
  2. Inbox
  3. Seguimiento
  4. Mi Perfil

La interfaz web ya cubre el flujo principal del producto:

  • registrar vacante
  • analizarla
  • revisarla en inbox
  • moverla a seguimiento
  • actualizar estados de aplicacion
  • mantener perfil y vista CV

Las vistas largas de Inbox y Seguimiento ya incluyen paginacion y tamano de pagina configurable para evitar listas demasiado pesadas.

Extension de Chrome

La extension usa side panel en lugar de popup efimero.

Flujo actual:

  1. extrae la vacante desde LinkedIn
  2. guarda la vacante por API local
  3. inicia el analisis en segundo plano
  4. muestra estados intermedios en el panel lateral
  5. si la vacante ya existia y tenia analisis, lo recupera desde la BD usando el link

Endpoints usados por la extension:

  • GET /health
  • POST /vacantes
  • POST /vacantes/async
  • GET /vacantes/tasks/{task_id}
  • GET /vacantes/{vacancy_id}/analysis
  • GET /vacantes/by-link?link=...

Tests

Entrada unica recomendada:

python run_tests.py

Estado actual de la suite principal:

  • tests de casos de uso
  • tests de repositorios
  • tests de API
  • tests de rutas web
  • tests de flujos integrados con mocks
  • tests del flujo async y de recuperacion de analisis por link

CI

Workflow disponible en .github/workflows/ci.yml.

Ejecuta:

  • compileall
  • ruff check
  • python run_tests.py

Arquitectura

Resumen corto:

  • app/domain: enums y excepciones
  • app/application: casos de uso y servicios
  • app/infrastructure: conexion y repositorios
  • app/interfaces/web: interfaz HTML principal
  • chrome-extension: integracion local con LinkedIn y la API

Detalle adicional en ARCHITECTURE.md.

Notas

  • la web es ahora la interfaz recomendada
  • app.py en la raiz queda solo como acceso rapido informativo
  • la extension de Chrome ya opera con panel lateral y recuperacion de analisis historico por link
  • la suite principal corre localmente con 68 tests
  • el pipeline de CI ya esta preparado para validar cambios automaticamente

About

tu escritorio de gestión de búsqueda laboral

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors