Skip to content

Latest commit

 

History

History
195 lines (144 loc) · 13.8 KB

File metadata and controls

195 lines (144 loc) · 13.8 KB

ForexSignalBot: Segnali Forex per Telegram basati su IA / Inoltro Automatico Intelligente, Gratuito e Open-Source 📈🤖✨🚀

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

🚀 Inizia Subito!

ForexSignalBot Demo

🚀 Guida Introduttiva

Puoi eseguire questo progetto in due modi: con Docker (consigliato per una configurazione rapida) o configurando manualmente un ambiente locale.

Opzione 1: Avvio Rapido con Docker (Consigliato)

Metti in funzione l'intero stack dell'applicazione — API, database PostgreSQL e cache Redis — in pochi minuti con Docker. Questo è il modo più rapido e semplice per iniziare.

Prerequisiti

  • Docker Desktop: Assicurati che sia installato e in esecuzione sul tuo sistema. Scaricalo qui.

Passaggio 1: Clonare il Repository

Apri il tuo terminale e clona il codice sorgente del progetto.

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

Passaggio 2: Configurare i tuoi Segreti

L'applicazione richiede chiavi API e password. Utilizziamo un file .env per questo scopo, che viene mantenuto privato.

  1. Crea il file di ambiente:

    cp .env.example .env
  2. Modifica il file .env: Apri il nuovo file .env e inserisci i tuoi valori segreti effettivi.

    • TELEGRAM_BOT_TOKEN: Ottienilo da @BotFather su Telegram.
    • POSTGRES_PASSWORD: Crea una password forte e sicura per il tuo database.

Passaggio 3: Avvia l'Applicazione! 🔥

Con Docker in esecuzione, esegui un singolo comando dalla directory principale del progetto:

docker-compose up --build -d

Questo comando costruisce e avvia i container dell'API, di PostgreSQL e di Redis. L'API è configurata per applicare automaticamente le migrazioni del database all'avvio.

Passaggio 4: Popolare il Database (Seed)

Il bot ha bisogno di un elenco iniziale di feed RSS. Connettiti al database utilizzando un client come DBeaver o DataGrip ed esegui lo script Populate_RssSources_Categories.sql.

  • Host: localhost
  • Porta: 5432
  • Database: forexsignalbot_db
  • Utente: postgres
  • Password: La POSTGRES_PASSWORD che hai impostato in .env.

🎉 Fatto! Il tuo bot è ora in esecuzione all'interno di Docker.


Opzione 2: Configurazione di Sviluppo Locale (Senza Docker)

Segui questi passaggi se preferisci eseguire l'applicazione direttamente sulla tua macchina.

Prerequisiti

  1. .NET 9 SDK:

  2. Database PostgreSQL:

    • Installa ed esegui un server PostgreSQL locale.
    • Crea un database e un utente.
    • Aggiorna la tua stringa di connessione nel file appsettings.Development.json.
  3. Server Redis:

    • Redis è utilizzato per la cache e l'elaborazione di processi in background.
    • Per Windows: Installa un server compatibile con Redis come Memurai.
    • Per macOS/Linux: Installa tramite un gestore di pacchetti (es. brew install redis o sudo apt-get install redis-server).

Eseguire l'Applicazione Localmente

Per gli sviluppatori che preferiscono eseguire l'applicazione direttamente sulla propria macchina, seguite questi passaggi:

  1. Clona il repository (se non l'hai già fatto).
  2. Configura appsettings.Development.json con la stringa di connessione del tuo database locale e altre impostazioni.
  3. Applica le migrazioni del database:
    dotnet ef database update --startup-project WebApi --project Infrastructure
  4. Popola il database eseguendo lo script Populate_RssSources_Categories.sql sul tuo database locale.
  5. Avvia l'API:
    dotnet run --project WebApi

Per dettagli più completi e istruzioni di distribuzione in produzione, si prega di fare riferimento alla guida dedicata INSTALL.md.


🛠️ Guida per Sviluppatori

Questa sezione contiene comandi comuni per lo sviluppo.

Gestione delle Migrazioni del Database

Prima di eseguire questi comandi, assicurati di avere installato gli strumenti di EF Core: dotnet tool install --global dotnet-ef

  • Aggiungere una Nuova Migrazione: Quando modifichi un modello di dominio, crea una nuova migrazione.

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

    (Sostituisci TuoNomeMigrazione con un nome descrittivo, es. AddSignalStatus)

  • Applicare le Migrazioni: Per aggiornare manualmente lo schema del database.

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

Creazione di una Build di Produzione

Per compilare l'applicazione in un eseguibile autonomo per la distribuzione:

# Esempio per una build autonoma per Windows x64
dotnet publish --configuration Release --runtime win-x64 --self-contained true --project WebApi
  • L'output si troverà nella cartella WebApi/bin/Release/net9.0/win-x64/publish.

Passaggio 4: La Procedura Guidata di Configurazione Web ✨

Questo è il nuovo processo di configurazione semplificato.

  1. Apri il Pannello Web: Vai su http://localhost:5000/login.html nel tuo browser.
  2. Login: Usa le credenziali predefinite:
    • Nome utente: admin
    • Password: admin (Ti verrà richiesto di modificare questi dati sensibili durante il primo processo di configurazione nell'interfaccia web per una maggiore sicurezza.)
  3. Configurazione Guidata: Dopo aver effettuato l'accesso per la prima volta, verrai reindirizzato automaticamente a una pagina di configurazione sicura (/indexapp.html).
    • In questa pagina, ti verrà richiesto di inserire il tuo Token del Bot di Telegram e altre impostazioni fondamentali.
    • Il sistema testerà in tempo reale le tue credenziali per assicurarsi che siano valide prima di salvarle.
    • Una volta salvate, queste impostazioni vengono memorizzate in modo sicuro nel database, non in file di testo.
  4. Popolamento del Database: Dopo la configurazione iniziale, ti verrà chiesto di popolare il database. Clicca sul pulsante "Seed Database" nell'interfaccia web. Questo popolerà l'elenco iniziale di feed RSS e altri dati necessari.

🎉 Fatto! Il tuo bot è ora completamente configurato e funzionante. Puoi gestire tutto dal pannello web. alt text

🌟 Stargazer nel tempo

Se questo progetto ti è utile, potresti dargli una 🌟 Stargazers over time


🌍 File README Multilingue 🌍

Forniamo file README in più lingue per rendere il nostro progetto accessibile agli utenti di tutto il mondo. Scegli la tua lingua preferita qui sotto:

Lingua Codice Lingua File README Stato
Inglese 🇺🇸 EN README.md ✅ Completo
Russo 🇷🇺 RU README_RU.md ✅ Completo
Persiano 🇮🇷 FA README_FA.md ✅ Completo
Cinese 🇨🇳 ZH README_ZH.md ✅ Completo
Spagnolo 🇪🇸 ES README_ES.md ✅ Completo
Francese 🇫🇷 FR README_FR.md ✅ Completo
Tedesco 🇩🇪 DE README_DE.md ✅ Completo
Turco 🇹🇷 TR README_TR.md ✅ Completo
Arabo 🇸🇦 AR README_AR.md ✅ Completo
Hindi 🇮🇳 HI README_HI.md ✅ Completo
Italiano 🇮🇹 IT README_IT.md ✅ Completo
Portoghese 🇵🇹 PT README_PT.md ✅ Completo

Ogni file README contiene la documentazione completa del progetto, le istruzioni di configurazione e le funzionalità tradotte nella rispettiva lingua. Tutti i file sono mantenuti aggiornati con le ultime informazioni del progetto.