Aplicacion para registrar vacantes, analizarlas contra un perfil profesional y gestionar aplicaciones laborales.
- 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
- registrar vacantes
- listar, archivar, reactivar y eliminar vacantes
- analizar vacantes contra el perfil activo
- gestionar aplicaciones y su seguimiento
- gestionar perfil profesional, skills, experiencia, proyectos, educacion, cursos y certificaciones
- renderizar una vista CV consolidada desde la web
CVs-Optimizator/
|-- app.py
|-- api.py
|-- app/
| |-- application/
| |-- config/
| |-- domain/
| |-- infrastructure/
| `-- interfaces/
| `-- web/
|-- modules/
|-- tests/
|-- sql_queries/
|-- run_tests.py
`-- .github/workflows/ci.yml
- Windows
- Python 3.11 recomendado
- SQL Server accesible desde
pyodbc - variables de entorno para BD
- Crea
.enva partir de.env.example. - Ajusta credenciales de SQL Server.
Variables usadas:
DB_SERVER=localhost\MSSQLSERVER2025
DB_DATABASE=job_postings_mvp
DB_USER=sa
DB_PASSWORD=tu_passwordpython -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtInterfaz principal web:
uvicorn api:app --reloadLuego abre:
http://127.0.0.1:8000/app
Prueba rapida de BD:
python test_connection.pyNueva VacanteInboxSeguimientoMi 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.
Entrada unica recomendada:
python run_tests.pyEstado 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
Workflow disponible en .github/workflows/ci.yml.
Ejecuta:
compileallruff checkpython run_tests.py
Resumen corto:
app/domain: enums y excepcionesapp/application: casos de uso y serviciosapp/infrastructure: conexion y repositoriosapp/interfaces/web: interfaz HTML principalmodules: codigo residual compartido, comoanalizar_vacante.py
Detalle adicional en ARCHITECTURE.md.
- la web es ahora la interfaz recomendada
app.pyen la raiz queda solo como acceso rapido informativo- la suite principal corre localmente con
53tests cubriendo la interfaz web principal - el pipeline de CI ya esta preparado para validar cambios automaticamente