Skip to content

Azfe/azfe_portfolio_api

Repository files navigation

Portfolio - API

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.

🌐 Ecosistema del Proyecto

Este repositorio forma parte de un ecosistema de 3 aplicaciones:

💻 Tecnologías Utilizadas

Python FastAPI MongoDB

Code Quality Tests codecov

🚀 Inicio Rápido con Docker (Recomendado)

Requisitos Previos

  • Docker Desktop instalado
  • Make (opcional, facilita comandos)

Levantar el entorno

# 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

Verificar que funciona

Comandos útiles

# 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 clean

📦 Instalación local (Sin Docker)

Si prefieres no usar Docker:

1. Clonar el repositorio

git clone git@github.com:Azfe/mi_portfolio_api.git
cd mi_portfolio_api

2. Crear y activar el entorno virtual

Windows:

python -m venv venv
venv\Scripts\activate

MacOS / Linux:

python3 -m venv venv
source venv/bin/activate

3. Instalar dependencias

pip install -r requirements.txt

🔄 Actualizar dependencias (opcional)

# 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-paquete

4. Configurar variables de entorno

Crea un archivo config.env dentro de app/core/:

MONGO_URI=your_mongodb_connection_uri
JWT_SECRET_KEY=your_secret_key

Nota: También puedes exportar estas variables directamente en tu sistema operativo.

5. Configurar la base de datos

Asegúrate de tener MongoDB instalado y crea una base de datos llamada portfolio_api con las siguientes colecciones:

  • contact
  • education
  • perfil
  • projects
  • social_networks
  • work_experience
  • users

6. Ejecutar el servidor

cd app
fastapi dev main.py

🧪 Testing

# 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.

🤝 Contribuciones

¡Las contribuciones son bienvenidas!

Revisa el documento de Contribuciones si deseas mejorar algo.

📜 Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

🧑‍💻 Autor

Azfe - alexzapata1984@gmail.com

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors