Week #6 #
Links #
Specify here all the necessary links to your website, application installer, final demo, etc.
- Deployment: http://89.223.121.67:3000/.
- API Docs: Endpoints URL, main.py.
- Design: Figma design.
- Demo: Link to demo.
- Github repository: Metalytics repository.
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
๐ป Step 2 โ Run with Docker (Recommended) #
docker-compose up --build
This will:
- Start the FastAPI backend at http://localhost:8000
- Start the Frontend at http://localhost:3000
๐ 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 #
Weekly commitments #
Individual contribution of each participant #
- Vladimir Toporkov - Made presentantion, fixed visual bugs and prepared js for other models, wrote report.
- Farit Sharafutdinov - Trained silver model.
- Ilya Grigorev - updated XGBoost model, tuned its hyperparameters, and dumped trained model.
- Rail Sharipov - Features for zinc added.
- Askar Kadyrgulov - Configured db on backend side, Updated backend to forecast other metals
- Nikita Solomennikov - Updated db structure, added new indexes.
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
).