Week #6

Week #6 #

Specify here all the necessary links to your website, application installer, final demo, etc.

Final deliverables #

Project Overview #

Metalytics an analytical system for forecasting the prices of specific metals traded on the Russian financial market using machine learning. The system addresses the challenge of predicting volatile metal markets by combining models with real-time news analysis.

Problems Solved:

  • Price volatility prediction in metal markets
  • Data consolidation from multiple sources
  • Real-time market intelligence integration

Key Implemented Features:

  • XGBoost and LSTM ML models for Gold and Silver
  • Real-time news parsing from financial sources
  • Responsive web interface with interactive charts
  • PostgreSQL database with RESTful API backend

Features #

Implemented Features:

  • Price Prediction: Short-term forecasting for Gold and Silver using XGBoost and LSTM models
  • Real-time News Feed: Automated parsing from metalinfo.ru with source links
  • Interactive Charts: Dynamic price visualization with zoom/pan capabilities
  • Responsive Design: Adaptive interface for desktop and mobile devices
  • Database Integration: PostgreSQL with automated data updates
  • RESTful API: FastAPI backend for data delivery
  • Docker Deployment: Containerized application for easy setup

Tech stack #

Backend & API:

  • FastAPI (Python web framework)
  • PostgreSQL (Database)
  • Uvicorn (ASGI server)
  • psycopg2 (PostgreSQL adapter)

Machine Learning:

  • TensorFlow/Keras (LSTM neural networks)
  • Scikit-learn (General model design)
  • XGBoost (Gradient boosting)
  • Pandas & NumPy (Data processing)
  • TA (Technical indicators)
  • Joblib (Model serialization)

Frontend:

  • HTML5, CSS3, JavaScript (Vanilla)
  • Chart.js (Interactive charts)
  • Swiper.js (News carousel)

Infrastructure:

  • Docker & Docker Compose (Containerization)
  • YFinance (Market data API)
  • Python-dotenv (Environment management)

Setup instructions #

Follow the steps below to run the project locally using Docker or manually.

โš™๏ธ Prerequisites #

  • Docker installed and running
  • PostgreSQL installed.
  • Python 3.10+
  • (Optional) Live server if running without Docker

๐Ÿ“ฅ Step 1 โ€” Clone the Repository #

In your terminal:

git clone https://github.com/IU-Capstone-Project-2025/Metalytics.git
cd Metalytics
echo "DB_USER=postgres" > .env
echo "DB_PASSWORD=postgres" >> .env
docker-compose up --build

This will:

๐Ÿ“‹ Managing the Container #

To view logs from the running container:

docker compose logs -f

To stop the container without removing it:

docker compose stop

To stop and remove the container:

docker compose down

To rebuild the image after making changes to the code:

docker compose up -d --build

๐Ÿ›  Alternative โ€” Run Manually (Without Docker) #

  • Clone the repository (follow step 1).
  • Make sure you are in the project root folder.
  • Follow the steps bellow.

โ–ถ๏ธ Backend (FastAPI) #

cd backend
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000

๐ŸŒ Frontend #

Open frontend/index.html directly in your browser or use a local server (ex. โ€œLive Serverโ€ in VS Code)


Presentation draft #

Presentation.

Weekly commitments #

Individual contribution of each participant #

Plan for Next Week #

  • Further improvements in the model predictions (tuning and training).
  • Linting and formatting codebase.
  • Presentation preparation.
  • Proceed working with feedback problems.

Confirmation of the codeโ€™s operability #

We confirm that the code in the main branch:

  • [โœ“] In working condition.
  • [โœ“] Run via docker-compose (or another alternative described in the README.md).