Álvaro González - Full Stack Developer & Maker

Portafolio de desarrollador Full-Stack chileno especializado en hardware libre, automatización y desarrollo creativo. Proyectos en Python, JavaScript, Lua y hardware embebido.

View on GitHub

🤖 HelenaBot

← Volver al portafolio

📋 Descripción del Proyecto

Bot modular de automatización desarrollado en PureBasic para experimentos de automatización y respuesta a comandos en entornos locales. El proyecto explora las capacidades de networking de bajo nivel y multi-threading para crear un sistema de bot eficiente y personalizable.

✨ Características Principales

🔧 Arquitectura Modular

🌐 Networking Avanzado

⚡ Multi-Threading

🛠️ Stack Tecnológico

; Tecnologías y características principales
Structure TechStack
    Language.s        ; PureBasic
    Networking.s      ; TCP/UDP Sockets
    Threading.s       ; Multi-threading nativo
    Architecture.s    ; Modular plugin system
    Platform.s        ; Windows/Linux compatible
EndStructure

; Módulos del sistema
Enumeration Modules
    #ModuleCore       ; Core del bot
    #ModuleNetwork    ; Networking
    #ModuleCommands   ; Command parser
    #ModulePlugins    ; Plugin manager
    #ModuleLogging    ; Sistema de logs
EndEnumeration

🎯 Arquitectura del Sistema

1. Core Engine

; Motor principal del bot
Procedure BotMainLoop()
    Protected Event
    
    Repeat
        Event = WaitWindowEvent(100)
        
        ; Procesar comandos pendientes
        ProcessCommandQueue()
        
        ; Manejar conexiones de red
        HandleNetworkEvents()
        
        ; Ejecutar plugins activos
        ExecuteActivePlugins()
        
    Until Event = #PB_Event_CloseWindow
EndProcedure

2. Sistema de Comandos

; Parser de comandos flexible
Structure Command
    Name.s
    Parameters.s
    Source.s
    Timestamp.l
EndStructure

Procedure ParseCommand(Input.s)
    Protected NewList Commands.Command()
    
    ; Análisis y validación del comando
    ; Routing a módulo apropiado
    ; Ejecución con parámetros
    
    ProcedureReturn @Commands()
EndProcedure

3. Plugin System

; Sistema de plugins dinámico
Interface IPlugin
    Initialize()
    Execute(Command.s)
    Cleanup()
    GetInfo.s()
EndInterface

; Plugin example
Structure EchoPlugin Extends IPlugin
    Name.s
    Version.s
EndStructure

📡 Módulos de Funcionalidad

Networking Module

Command Module

Automation Module

🔧 Configuración y Personalización

Archivo de Configuración

[Bot]
Name = HelenaBot
Version = 1.0
Debug = True

[Network]
Port = 8080
MaxConnections = 50
Timeout = 30000

[Plugins]
AutoLoad = echo,file,system
PluginPath = ./plugins/

[Logging]
Level = INFO
File = helena.log
MaxSize = 10MB

Sistema de Plugins

; Plugin de ejemplo - Echo
Procedure EchoPlugin_Execute(Command.s)
    Protected Response.s
    
    Response = "Echo: " + Command
    
    ; Enviar respuesta al cliente
    SendResponse(Response)
EndProcedure

; Registro del plugin
RegisterPlugin("echo", @EchoPlugin_Execute())

🎮 Casos de Uso

Automatización de Tareas

Home Automation

Development Tools

📊 Arquitectura de Threading

graph TD
    A[Main Thread] --> B[Command Parser Thread]
    A --> C[Network Listener Thread]
    A --> D[Plugin Manager Thread]
    
    B --> E[Command Queue]
    C --> F[Connection Pool]
    D --> G[Plugin Instances]
    
    E --> H[Plugin Execution]
    F --> I[Client Handlers]
    G --> J[Plugin Communication]
    
    H --> K[Response Queue]
    I --> K
    J --> K

🛡️ Seguridad y Robustez

Control de Acceso

; Sistema de autenticación simple
Structure Client
    IP.s
    Authenticated.b
    Permissions.l
    LastActivity.l
EndStructure

Procedure AuthenticateClient(*Client.Client, Token.s)
    ; Validación de token
    ; Asignación de permisos
    ; Logging de acceso
EndProcedure

Medidas de Seguridad

🔧 Instalación y Configuración

Requisitos del Sistema

Sistema Operativo: Windows 7+ / Linux
RAM: Mínimo 256MB
Espacio: 50MB libres
Red: Conexión opcional para funciones remotas

Compilación desde Fuente

# Clonar repositorio
git clone https://github.com/4rgs/helenaBot.git
cd helenaBot

# Compilar con PureBasic
pbcompiler helena_bot.pb

# Ejecutar
./helena_bot

Configuración Inicial

; Primera ejecución - configuración automática
If FileSize("config.ini") = -1
    CreateDefaultConfig()
    ShowWelcomeMessage()
EndIf

📈 Roadmap y Desarrollo

🎯 Filosofía del Proyecto

Experimentación con PureBasic - Explorar las capacidades de este lenguaje único para sistemas de bajo nivel y networking.

Modularidad - Cada funcionalidad como un módulo independiente para máxima flexibilidad.

Performance - Aprovechar la velocidad nativa de PureBasic para operaciones críticas.

🔗 Enlaces

🏷️ Tags

#PureBasic #Bot #Automation #Networking #MultiThreading #Sockets #Plugins #SystemAdmin #LowLevel


← Volver al portafolio 🔗 Ver en GitHub