Skip to content

TechCrafted-dev/Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TechCrafted API

Python SQLite GitHub OpenAI

¡Bienvenido a TechCrafted API, la plataforma que automatiza la recopilación de métricas de GitHub y la generación de contenido técnico listo para publicar!
El servicio expone una API REST construida con FastAPI y respaldada por SQLAlchemy, de modo que puedas consultar, almacenar y enriquecer datos de repositorios, así como generar artículos con tecnología de IA de forma sencilla y escalable.


Puntos fuertes

Funcionalidad Descripción
Extracción inteligente de datos Consume la API de GitHub y persiste estadísticas de tráfico, estrellas, forks, watchers y más.
Generación de artículos con IA Combina OpenAI y plantillas internas para crear entradas de blog optimizadas en Markdown.
Pipeline asíncrono y desacoplado Tareas de larga duración se ejecutan de manera no bloqueante, garantizando alto rendimiento.
Observabilidad total Logging granular y hooks SQL para medir y trazar cada consulta.
Listo para producción Imagen Docker ligera, orquestación con Jenkins y health-checks incorporados.

Casos de uso

  1. Desarrolladores que deseen integrar métricas de sus repositorios en dashboards personalizados.
  2. Equipos de marketing técnico que necesiten contenido actualizado y basado en datos reales.
  3. Start-ups que quieran automatizar informes de rendimiento de proyectos open-source.
  4. Blogs y comunidades que busquen aumentar la cadencia de publicación con artículos generados por IA.

Arquitectura en un vistazo

                            ┌─────────┐       ┌── build ──┐
                            │ Jenkins │ ────► │ Blog Page │
          [GitHub API]      └─────────┘       └───────────┘
               │                 ▲                  ▲
               ▼                 │                  │
           ┌────────┐       ╔═══════════╗      ┌──────────┐
           │ github │ ────► ║  FastAPI  ║ ───► │ database │
           └────────┘       ╚═══════════╝      └──────────┘
                                 ▲                  │
                                 │                  ▼
                        ┌─────────────────┐     [SQLITE]
        [OpenAI]  ────► │ techAI Pipeline │
                        └─────────────────┘

Requisitos

  • Python ≥ 3.11
  • virtualenv
  • Docker ≥ 24 (opcional, recomendado para despliegues)
  • Claves de acceso a GitHub y OpenAI (variables de entorno)

Instalación rápida

# 1. Clona el repositorio
$ git clone https://github.com/TechCrafted-dev/Backend.git
$ cd techcrafted-api

# 2. Crea y activa un entorno virtual
$ python -m venv .venv
$ source .venv/bin/activate

# 3. Instala dependencias
$ pip install -r requirements.txt

# 4. Configura tus variables de entorno y ajustes
# Copia el archivo de ejemplo y añade tus claves de API
$ cp .env.example .env

# Renombra el archivo config_template.json a config.json
# Edita config.json con tus ajustes específicos.

# 5. Inicia la API
# El script utiliza la configuración definida en main.py, que no activa la recarga automática.
$ python main.py

Logging

La API utiliza el sistema de logging nativo de Python y está configurada para ofrecer un control granular sobre la salida de cada módulo.

  • Configuración Centralizada: Toda la configuración de logging se gestiona en modules/config.py.
  • Niveles Personalizables: Puedes personalizar los niveles de logging para cada componente (main, database, techAI, httpx, etc.) directamente desde el archivo data/config.json sin necesidad de modificar el código.

Para ajustar los niveles, añade un objeto LOGGER a tu data/config.json así:

{
  "GITEA": {
    "...": "..."
  },
  "LOGGER": {
    "main": "DEBUG",
    "database": "WARNING",
    "httpx": "WARNING"
  }
}

Los niveles de logging soportados son DEBUG, INFO, WARNING, ERROR, y CRITICAL. Al iniciar, la aplicación informará qué niveles personalizados se han cargado.

Despliegue con Docker

$ docker build -t techcrafted-api:latest .
$ mkdir -p ${HOME}/techcrafted-api/data
$ docker run -d -p 3000:3000 \
    --restart unless-stopped \
    -v ${HOME}/techcrafted-api/data:/modules/data \
    techcrafted-api:latest

Principales endpoints

Método Ruta Descripción
GET /health Comprobación de estado de la aplicación.
GET /github_user Devuelve los datos de usuario en GitHub.
GET /repos Lista los repositorios almacenados.
POST /repos Fuerza la actualización de métricas de los repositorios.
GET /posts Devuelve los artículos generados.
POST /posts/update_all Regenera los post si han habido cambios en el repositio

Descubre el resto en el SWAGGER una vez que la API esté corriendo.


Flujo de generación de contenido

  1. Obtén los repositorios de GitHub POST /repos.
  2. Se actualiza la base de datos con los datos más recientes.
  3. Se invoca POST /posts.
  4. Se arma un esquema del artículo (outline) de forma dinámica.
  5. OpenAI produce un borrador extenso.
  6. Se pule el Markdown y se guarda en la base de datos.
  7. El endpoint responde con el URL o ID del nuevo post.

Roadmap

  • Compatibilidad con GitLab y Bitbucket.
  • Sistema de cache con Redis.
  • Plugin para publicar directamente en plataformas de blogging.
  • Panel web con visualización de métricas.

Cómo contribuir

  1. Haz un fork y crea tu rama: git checkout -b feature/mi-mejora
  2. Sigue la guía de estilo PEP 8 y añade pruebas si procede.
  3. Envía un pull request describiendo claramente el cambio.
  4. ¡Disfruta del open-source!

Licencia

Distribuido bajo la licencia GPL 3.0. Consulta el archivo LICENSE para más información.


¿Dudas o sugerencias? Abre un issue o contacta al mantenedor principal.
¡Gracias por interesarte en TechCrafted API!

About

Backend de TechCrafted.dev

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors