soyjosuefischer /
registraduria-backend
Back-end del software de votaciones de la Registraduría Nacional del Estado Civil - (Proyecto educacional)
42/100 healthLoading repository data…
CCP-G18 / repository
Backend del proyecto desarrollado con Python, Flask y PostgreSQL. Proporciona una API REST para gestionar los procesos de compra, venta y logística
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Esta guía proporciona instrucciones completas para los desarrolladores que trabajan con la aplicación web de backend de CCP. Cubre la configuración del entorno, los procesos de desarrollo local, los procedimientos de prueba y los flujos de trabajo de despliegue. Para documentación específica de la API, consulta la sección correspondiente.
Antes de comenzar el desarrollo en el backend de CCP, necesitas configurar tu entorno local con las herramientas y dependencias necesarias.
Clona el repositorio:
git clone https://github.com/CCP-G18/MISW4502-ProyectoFinal2-Backend-Web.git
cd MISW4502-ProyectoFinal2-Backend-Web
Crea y activa un entorno virtual:
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
Instala las dependencias:
pip install -r requirements.txt
Configura las variables de entorno: Crea un archivo .env en la raíz del proyecto con las siguientes variables:
JWT_SECRET_KEY=tu_clave_secreta_jwt
POSTGRES_DB_URI=postgresql://usuario:contraseña@localhost:5432/ccp_db
SOCKET_SECRET_KEY=tu_clave_secreta_socket
Puedes ejecutar los servicios de backend directamente con Flask o utilizando Docker Compose.
Navega al directorio del servicio que deseas ejecutar, por ejemplo:
cd src/orders
Ejecuta la aplicación:
flask run
En la raíz del proyecto, ejecuta:
docker-compose up --build
Esto construirá e iniciará todos los servicios definidos en el archivo docker-compose.yml.
El backend está estructurado como una colección de microservicios independientes, cada uno responsable de un dominio específico de la aplicación.
Cada microservicio sigue una estructura similar para mantener la coherencia en la base de código:
src/[nombre_servicio]/
├── app/
│ ├── controllers/ # Endpoints HTTP
│ ├── models/ # Modelos de datos
│ ├── repositories/ # Operaciones de base de datos
│ ├── services/ # Lógica de negocio
│ ├── schemas/ # Serialización/deserialización
│ ├── core/ # Configuración
│ └── extensions.py # Extensiones de Flask
├── tests/
│ ├── unit/ # Pruebas unitarias
│ └── integration/ # Pruebas de integración
├── Dockerfile # Definición del contenedor
├── requirements.txt # Dependencias
├── version # Número de versión del servicio
└── main.py # Punto de entrada de la aplicación
La base de código utiliza pytest para las pruebas. Para ejecutar las pruebas de un servicio específico:
Navega al directorio del servicio, por ejemplo:
cd src/orders
Ejecuta las pruebas:
pytest --cov=app tests/
La canalización de integración continua (CI) impone una cobertura mínima de código del 70% para todos los servicios. Esto se verifica automáticamente en cada solicitud de extracción (pull request).
Visión General del Despliegue Continuo
El sistema backend utiliza un flujo de trabajo de GitHub Actions que despliega automáticamente los microservicios cuando se realiza un push al branch principal. Este flujo de trabajo detecta dinámicamente todos los microservicios en el repositorio, construye las imágenes Docker y las despliega en Google Kubernetes Engine (GKE).
Proceso de Descubrimiento de Servicios
La canalización CI/CD identifica automáticamente los microservicios desplegables escaneando la estructura del repositorio en busca de directorios que contengan archivos Dockerfile:
find src -mindepth 1 -maxdepth 1 -type d -exec test -f "{}/Dockerfile" \; -print
Este enfoque permite que nuevos microservicios se incluyan automáticamente en el proceso de despliegue sin modificar la configuración del flujo de trabajo.
Construcción y Publicación de Imágenes Docker
Cada microservicio incluye un archivo de versión que contiene su número de versión semántica. Esta versión se utiliza para etiquetar las imágenes Docker durante el proceso de construcción.
El flujo de trabajo CI/CD realiza los siguientes pasos para cada servicio:
Estructura de Despliegue en Kubernetes
El sistema despliega cada microservicio como un Deployment separado en Kubernetes, con recursos asociados de Service y BackendConfig.
Cada despliegue de servicio consta de tres recursos clave de Kubernetes:
Componentes de Configuración de Despliegue
La configuración de despliegue de cada microservicio especifica:
Variables de entorno clave se obtienen de secretos de Kubernetes:
El recurso BackendConfig configura aspectos adicionales del balanceador de carga, como las verificaciones de salud, para garantizar que solo las instancias saludables reciban tráfico.
Error de conexión a la base de datos: Verifica que PostgreSQL esté en ejecución y que las credenciales en el archivo .env sean correctas.
Problemas al instalar dependencias: Asegúrate de estar utilizando la versión correcta de Python y de que el entorno virtual esté activado.
Errores al ejecutar Docker Compose: Verifica que Docker esté instalado y en ejecución. Revisa los logs para identificar problemas específicos.
Selected from shared topics, language and repository description—not editorial ratings.
soyjosuefischer /
Back-end del software de votaciones de la Registraduría Nacional del Estado Civil - (Proyecto educacional)
42/100 healthAlejandroLotero /
repositorio para la creacion del proyecto Curatio en python
40/100 healthtrontzal /
el backend del proyecto personal. Python con flask
/100 healthConfiguración de Service Los servicios exponen cada despliegue al clúster de Kubernetes y configuran cómo se accede a ellos internamente y a través del balanceador de carga.
Configuración de BackendConfig El recurso BackendConfig configura aspectos adicionales del balanceador de carga, como las verificaciones de salud, para garantizar que solo las instancias saludables reciban tráfico.
SimulationTeory /
Backend en Python, FastAPI, para una lógica del proyecto
34/100 healthsebx771 /
proyecto para el desarrollo de una pagina web acerca del seguimiento de compra de inmuebles
54/100 healthDelforojas /
Aplicación web desarrollada con Django, aplicando arquitectura MVT, gestión de base de datos, rutas y renderizado dinámico, como proyecto de aprendizaje backend.
53/100 health