API REST desarrollada con FastAPI para gestionar dinámicamente los datos de mi CV y portafolio profesional. Este backend alimenta tanto mi sitio web personal como la versión descargable de mi currículum.
Este repositorio forma parte de un ecosistema de 3 aplicaciones:
- azfe_portfolio_api - API REST (FastAPI + MongoDB) ← 📍
- azfe_portfolio_astro - Sitio web principal (Astro + Tailwind CSS)
- azfe_portfolio_cv - CV descargable (HTML + SCSS + JavaScript)
- Docker Desktop instalado
- Make (opcional, facilita comandos)
# 1. Clonar el repositorio
git clone
cd azfe_portfolio_backend
# 2. Copiar variables de entorno
cp .env.example .env.development
# 3. Levantar servicios con Make
make build
make up
# O sin Make:
cd deployments
docker compose build
docker compose up -d- API: http://localhost:8000
- Documentación: http://localhost:8000/docs
- Health Check: http://localhost:8000/api/v1/health
# Ver logs en tiempo real
make logs
# Ejecutar tests
make test
# Abrir shell en el contenedor
make shell
# Reiniciar servicios
make restart
# Detener servicios
make down
# Limpiar todo
make cleanSi prefieres no usar Docker:
git clone git@github.com:Azfe/mi_portfolio_api.git
cd mi_portfolio_apiWindows:
python -m venv venv
venv\Scripts\activateMacOS / Linux:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txt# Reinstalar todas las dependencias
pip uninstall -y -r requirements.txt
pip install -r requirements.txt
# Actualizar un paquete específico
pip install --upgrade nombre-del-paqueteCrea un archivo config.env dentro de app/core/:
MONGO_URI=your_mongodb_connection_uri
JWT_SECRET_KEY=your_secret_keyNota: También puedes exportar estas variables directamente en tu sistema operativo.
Asegúrate de tener MongoDB instalado y crea una base de datos llamada portfolio_api con las siguientes colecciones:
contacteducationperfilprojectssocial_networkswork_experienceusers
cd app
fastapi dev main.py# Con Docker
make test
# Sin Docker
pytest
# Con coverage
pytest --cov=app --cov-report=html
## 📖 Documentación de la API
Después de iniciar la aplicación, la documentación está disponible en:
- Swagger UI: `http://localhost:8000/docs`
- Redoc: `http://localhost:8000/redoc`
- Comprobación de estado: `http://localhost:8000/ping`Nota: También puedes usar herramientas como Postman o Insomnia para probar los endpoints.
Revisa el documento de Contribuciones si deseas mejorar algo.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Azfe - alexzapata1984@gmail.com