Skip to content

Couraa0/Invest

Repository files navigation

InvestAI - Platform Edukasi Simulasi Saham

InvestAI adalah platform pembelajaran dan paper trading (simulasi saham) komprehensif yang dirancang untuk membantu pemula dan investor tingkat menengah menguasai pasar modal tanpa risiko finansial nyata.

Aplikasi ini menggunakan teknologi AI modern untuk menganalisis dan memandu Anda dalam keputusan investasi.

🏗️ Struktur Proyek & Teknologi

Proyek ini memiliki arsitektur microservices yang memisahkan tanggung jawab antara frontend, backend logika bisnis, dan backend kecerdasan buatan (AI).

1. Frontend (React + Vite)

  • Lokasi: Root directory (/)
  • Fungsi: Antarmuka web modern berupa Single Page Application (SPA) tempat pengguna berinteraksi langsung. Mengelola manajemen state (autentikasi, portofolio simulasi saham), visualisasi chart pergerakan harga, dan tampilan dashboard edukasi.
  • Teknologi: React 18, Vite, TypeScript, TailwindCSS, Lucide React (untuk ikon), Framer Motion (untuk animasi).

2. Backend Utama (Express.js)

  • Lokasi: /backend
  • Fungsi: Core API server yang melayani permintaan dari frontend. Menangani registrasi & autentikasi (JWT + Google OAuth), mengelola transaksi simulasi paper trading (beli/jual saham, riwayat saldo), progres belajar akademi, dan menyimpan riwayat chat mentorship.
  • Teknologi: Node.js, Express.js, JSON Web Tokens (JWT), @azure/msal-node.

3. Backend AI (FastAPI)

  • Lokasi: /backend/ai
  • Fungsi: Server khusus yang bertugas melakukan komputasi berat. Modul ini bertugas menarik data saham harian (historical data) dari Yahoo Finance, menghitung 35 indikator teknikal secara real-time, memasukkan data ke model XGBoost untuk memprediksi sinyal saham (BULLISH/BEARISH), dan melayani AI Chat Mentor dengan model Groq Llama 3.
  • Teknologi: Python, FastAPI, Uvicorn, Pandas, Scikit-Learn, XGBoost, Groq API, yfinance, TA-Lib (alternatif).

4. Database (Azure SQL)

  • Lokasi: Cloud-hosted (skema SQL ada di /backend/db)
  • Fungsi: Penyimpanan data utama yang relasional (RDBMS). Menyimpan tabel Users, Portfolios, Holdings (saham yang dimiliki di simulator), Transactions, Mentorship_Sessions, dan User_Watched_Videos (progres akademi).
  • Teknologi: Microsoft Azure SQL Database.

🚀 Panduan Setup & Instalasi

Prasyarat (Prerequisites)

Pastikan sistem Anda sudah memiliki:

  • Node.js (Versi 18 atau ke atas)
  • Python (Versi 3.8 atau ke atas, dengan PIP terinstal dan sudah masuk PATH Windows)

Langkah 1: Setup Frontend (Root)

Buka terminal di root direktori proyek (Invest/) dan jalankan:

npm install

Langkah 2: Setup Backend Express

Buka terminal baru, navigasikan ke folder backend, lalu jalankan instalasi:

cd backend
npm install

Langkah 3: Setup Backend AI (Python)

Buka terminal baru, navigasikan ke folder backend/ai, dan buat Virtual Environment:

cd backend/ai

# Buat virtual environment bernama 'venv'
py -m venv venv

# Aktifkan virtual environment
.\venv\Scripts\activate

# Install semua requirements (FastAPI, Pandas, Scikit-Learn, dll)
py -m pip install -r requirements.txt

(Catatan: Jika py tidak dikenali, Anda bisa mencoba menggunakan python atau python3)


🏃‍♂️ Cara Menjalankan Aplikasi

Untuk menjalankan seluruh platform, Anda harus menjalankan sisi Frontend dan kedua sisi Backend.

1. Menjalankan Frontend

Di terminal utama (berada di root folder Invest/), jalankan:

npm run dev

Ini akan membuka aplikasi web di browser Anda (biasanya di http://localhost:3000).

2. Menjalankan Kedua Backend Sekaligus (Automatis)

Kami telah menyediakan script automasi untuk mempermudah. Buka terminal baru dan jalankan:

cd backend
.\start-backends.bat

Script tersebut otomatis akan memicu dua window terminal baru:

  • Terminal 1: Backend Express di Port 5000.
  • Terminal 2: Backend AI FastAPI di Port 8000.

Pro Tip: Jika ingin menjalankan secara manual, jalankan npm run dev di folder backend, dan jalankan uvicorn app.main:app --reload --port 8000 di dalam folder backend/ai (pastikan venv sudah aktif).


🔑 Environment Variables

Jika menggunakan API keys untuk servis eksternal, pastikan untuk mendefinisikannya:

  • Untuk Frontend: Gunakan .env.local di root.
  • Untuk Backend: Gunakan .env di dalam folder backend/.
  • Untuk AI (Python FastAPI):
    1. Masuk ke folder backend/ai/.
    2. Salin file template .env.example menjadi .env:
      copy .env.example .env
    3. Buka file .env baru tersebut, lalu isi GROQ_API_KEY Anda dengan API Key dari Groq Console (gratis).

🧠 Cara Kerja Sistem Prediksi AI (XGBoost Engine)

InvestAI menggunakan Machine Learning untuk memprediksi pergerakan harga saham di Bursa Efek Indonesia (IDX). Berikut adalah gambaran singkat alur pemrosesan datanya:

🍳 Analogi Pemrosesan

  1. Bahan Mentah (Raw Data): Data harga historis (Open, High, Low, Close, Volume) ditarik dari Yahoo Finance.
  2. Bumbu Dapur (Features): Dihitung 35 indikator teknikal (RSI, MACD, Bollinger Bands, ATR, Volatility, dll.).
  3. Koki Pintar (Model): Algoritma XGBoost (xgb_model.pkl) mencicipi indikator tersebut untuk memprediksi arah harga saham.
  4. Sajian Akhir (Output): Menghasilkan rekomendasi BUY/SELL, target Take Profit/Stop Loss, dan Confidence Score.

🔄 Alur Kerja Real-Time (Inference)

Saat frontend meminta data prediksi untuk satu saham (misalnya BBCA):

  1. FastAPI (backend/ai/app/services/prediction_service.py) menarik data terbaru via yfinance.
  2. Sistem memproses 35 indikator teknikal pada data tersebut secara real-time.
  3. Data hasil kalkulasi dimasukkan ke model xgb_model.pkl yang sudah di-load di memori server.
  4. Prediksi dan skor keyakinan dikirim kembali ke React Frontend dalam format JSON untuk dirender menjadi visualisasi grafik yang interaktif.

About

Source code repository untuk website Invest-AI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors