Skip to content

Latest commit

 

History

History
195 lines (144 loc) · 14 KB

File metadata and controls

195 lines (144 loc) · 14 KB

ForexSignalBot: Señales de Forex para Telegram impulsadas por IA / Auto-reenviador Inteligente, Gratuito y de Código Abierto 📈🤖✨🚀

License GitHub Stars GitHub Forks GitHub Issues GitHub Closed Issues GitHub Pull Requests GitHub Closed Pull Requests Test Coverage Top Language .NET Version Last Commit Commit Activity Code Size Contributors GitHub Repo stars

🚀 ¡Empieza Ahora!

ForexSignalBot Demo

🚀 Primeros Pasos

Puedes ejecutar este proyecto de dos maneras: con Docker (recomendado para una configuración rápida) o configurando un entorno local manualmente.

Opción 1: Inicio Rápido con Docker (Recomendado)

Pon en marcha toda la pila de la aplicación —API, base de datos PostgreSQL y caché de Redis— en cuestión de minutos con Docker. Esta es la forma más rápida y sencilla de empezar.

Prerrequisitos

  • Docker Desktop: Asegúrate de que esté instalado y en funcionamiento en tu sistema. Descárgalo aquí.

Paso 1: Clonar el Repositorio

Abre tu terminal y clona el código fuente del proyecto.

git clone https://github.com/Opselon/ForexTradingBot.git
cd ForexTradingBot

Paso 2: Configurar tus Secretos

La aplicación requiere claves de API y contraseñas. Para ello, utilizamos un archivo .env, que se mantiene privado.

  1. Crea el archivo de entorno:

    cp .env.example .env
  2. Edita el archivo .env: Abre el nuevo archivo .env y rellena tus valores secretos reales.

    • TELEGRAM_BOT_TOKEN: Obtenlo de @BotFather en Telegram.
    • POSTGRES_PASSWORD: Crea una contraseña fuerte y segura para tu base de datos.

Paso 3: ¡Ejecuta la Aplicación! 🔥

Con Docker en funcionamiento, ejecuta un solo comando desde el directorio raíz del proyecto:

docker-compose up --build -d

Este comando construye e inicia los contenedores de la API, PostgreSQL y Redis. La API está configurada para aplicar automáticamente las migraciones de la base de datos al iniciarse.

Paso 4: Poblar la Base de Datos

El bot necesita una lista inicial de fuentes RSS. Conéctate a la base de datos usando un cliente como DBeaver o DataGrip y ejecuta el script Populate_RssSources_Categories.sql.

  • Host: localhost
  • Puerto: 5432
  • Base de datos: forexsignalbot_db
  • Usuario: postgres
  • Contraseña: La POSTGRES_PASSWORD que estableciste en .env.

🎉 ¡Eso es todo! Tu bot ya está funcionando dentro de Docker.


Opción 2: Configuración de Desarrollo Local (Sin Docker)

Sigue estos pasos si prefieres ejecutar la aplicación directamente en tu máquina.

Prerrequisitos

  1. .NET 9 SDK:

  2. Base de Datos PostgreSQL:

    • Instala y ejecuta un servidor PostgreSQL local.
    • Crea una base de datos y un usuario.
    • Actualiza tu cadena de conexión en el archivo appsettings.Development.json.
  3. Servidor Redis:

    • Redis se utiliza para el almacenamiento en caché y el procesamiento de trabajos en segundo plano.
    • Para Windows: Instala un servidor compatible con Redis como Memurai.
    • Para macOS/Linux: Instala a través de un gestor de paquetes (p. ej., brew install redis o sudo apt-get install redis-server).

Ejecutar la Aplicación Localmente

Para los desarrolladores que prefieren ejecutar la aplicación directamente en su máquina, sigan estos pasos:

  1. Clona el repositorio (si aún no lo has hecho).
  2. Configura appsettings.Development.json con tu cadena de conexión de la base de datos local y otros ajustes.
  3. Aplica las migraciones de la base de datos:
    dotnet ef database update --startup-project WebApi --project Infrastructure
  4. Puebla la base de datos ejecutando el script Populate_RssSources_Categories.sql en tu base de datos local.
  5. Ejecuta la API:
    dotnet run --project WebApi

Para obtener detalles más completos e instrucciones de despliegue en producción, consulta la guía dedicada INSTALL.md.


🛠️ Guía para Desarrolladores

Esta sección contiene comandos comunes para el desarrollo.

Gestión de Migraciones de la Base de Datos

Antes de ejecutar estos comandos, asegúrate de tener instaladas las herramientas de EF Core: dotnet tool install --global dotnet-ef

  • Añadir una Nueva Migración: Cuando cambies un modelo de dominio, crea una nueva migración.

    dotnet ef migrations add TuNombreDeMigracion --startup-project WebApi --project Infrastructure

    (Reemplaza TuNombreDeMigracion por un nombre descriptivo, p. ej., AddSignalStatus)

  • Aplicar Migraciones: Para actualizar manualmente el esquema de la base de datos.

    dotnet ef database update --startup-project WebApi --project Infrastructure

Crear una Compilación de Producción (Build)

Para compilar la aplicación en un ejecutable autocontenido para su despliegue:

# Ejemplo para una compilación autocontenida para Windows x64
dotnet publish --configuration Release --runtime win-x64 --self-contained true --project WebApi
  • El resultado estará en la carpeta WebApi/bin/Release/net9.0/win-x64/publish.

Paso 4: El Asistente de Configuración Web ✨

Este es el nuevo proceso de configuración simplificado.

  1. Abre el Panel Web: Navega a http://localhost:5000/login.html en tu navegador.
  2. Inicia Sesión: Usa las credenciales por defecto:
    • Usuario: admin
    • Contraseña: admin (Se te pedirá que cambies estos datos sensibles durante el primer proceso de configuración en la interfaz web para mayor seguridad.)
  3. Configuración Guiada: Después de iniciar sesión por primera vez, serás redirigido automáticamente a una página de configuración segura (/indexapp.html).
    • En esta página, se te pedirá que introduzcas tu Token de Bot de Telegram y otras configuraciones esenciales.
    • El sistema probará en vivo tus credenciales para asegurarse de que son válidas antes de guardarlas.
    • Una vez guardadas, estas configuraciones se almacenan de forma segura en la base de datos, no en archivos de texto plano.
  4. Poblar la Base de Datos: Después de la configuración inicial, se te pedirá que puebles la base de datos. Haz clic en el botón "Seed Database" en la interfaz web. Esto llenará la lista inicial de fuentes RSS y otros datos necesarios.

🎉 ¡Eso es todo! Tu bot está ahora completamente configurado y en funcionamiento. Puedes gestionarlo todo desde el panel web. alt text

🌟 Stargazers a lo largo del tiempo

Si este proyecto te resulta útil, ¡puedes darle una 🌟! Stargazers over time


🌍 Archivos README Multilingües 🌍

Proporcionamos archivos README en varios idiomas para que nuestro proyecto sea accesible a usuarios de todo el mundo. Elige tu idioma preferido a continuación:

Idioma Código de Idioma Archivo README Estado
Inglés 🇺🇸 EN README.md ✅ Completo
Ruso 🇷🇺 RU README_RU.md ✅ Completo
Persa 🇮🇷 FA README_FA.md ✅ Completo
Chino 🇨🇳 ZH README_ZH.md ✅ Completo
Español 🇪🇸 ES README_ES.md ✅ Completo
Francés 🇫🇷 FR README_FR.md ✅ Completo
Alemán 🇩🇪 DE README_DE.md ✅ Completo
Turco 🇹🇷 TR README_TR.md ✅ Completo
Árabe 🇸🇦 AR README_AR.md ✅ Completo
Hindi 🇮🇳 HI README_HI.md ✅ Completo
Italiano 🇮🇹 IT README_IT.md ✅ Completo
Portugués 🇵🇹 PT README_PT.md ✅ Completo

Cada archivo README contiene la documentación completa del proyecto, las instrucciones de configuración y las características traducidas al idioma respectivo. Todos los archivos se mantienen actualizados con la información más reciente del proyecto.