Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 BIST Stock Market API & Web App

Web Servisleri Dersi Dönem Projesi Bu proje, Borsa İstanbul (BIST) verilerini takip etmek, teknik analiz yapmak ve büyük veri ile cache performansı simülasyonu gerçekleştirmek amacıyla geliştirilmiş tam kapsamlı bir REST API ve Web Uygulamasıdır.

🌟 Projenin Öne Çıkan Özellikleri (Ders Kriterleri)

1. Özgün Konu ve İşlevsellik ✅

Standart "To-Do List" veya "Blog" projelerinin ötesinde, gerçek dünya finansal verileriyle çalışan, teknik analiz (RSI, MACD, EMA) yapan ve yatırımcılara "AL/SAT" sinyalleri üreten özgün bir fintech projesidir.

2. REST API Mimarisi ✅

Proje Django REST Framework (DRF) üzerine kurulmuştur ve endüstri standartlarına uygun endpoint'ler sunar:

  • GET /api/v1/stocks/: Tüm hisse verileri (Pagination, Search, Ordering)
  • POST /api/v1/stocks/{id}/live_data/: Yahoo Finance API ile canlı veri güncelleme
  • GET /api/v1/stocks/{id}/technical_analysis/: Teknik indikatör sinyalleri
  • Swagger/OpenAPI: /api/docs/ adresinde otomatik oluşturulan interaktif API dokümantasyonu.

3. Cache Performans Testi & Sentetik Veri ✅

Büyük veri işleme ve cache performansını kanıtlamak için özel bir demo modülü geliştirilmiştir:

  • Dinamik Veri Üretimi: Kullanıcı isteğine göre 100.000'den 1.000.000 satıra kadar ("Random Walk" algoritması ile) anlık sentetik borsa verisi üretilir.
  • Cache Stratejisi: İlk istek veriyi üretip cache'e yazar (MISS), sonraki istekler milisaniyeler içinde cache'den gelir (HIT).
  • İspat: Arayüzde "Cache MISS" vs "Cache HIT" süreleri (örn: 2000ms vs 10ms) karşılaştırmalı olarak gösterilir ve hız artışı (örn: 100x) raporlanır.
  • Not: Proje varsayılan olarak LocMemCache kullanır, böylece Redis kurulumuna gerek kalmadan RAM üzerinde maksimum performans sunar.

4. Responsive (Mobil Uyumlu) Arayüz ✅

Hem masaüstü hem mobil cihazlarda kusursuz çalışan, modern Glassmorphism tasarım diline sahip bir arayüz geliştirilmiştir.

  • Teknoloji: HTML5, CSS3 (Vanilla CSS - Frameworksüz), JavaScript (ES6+).
  • Görselleştirme: Chart.js ile interaktif fiyat, RSI ve MACD grafikleri.

🚀 Kurulum ve Çalıştırma

Proje Python 3.8+ gerektirir. Kurulumu çok basittir, ek bir veritabanı kurulumuna ihtiyaç duymaz (SQLite kullanır).

1. Projeyi İndirin ve Klasöre Girin

cd bist-stock-api

2. Sanal Ortam (Virtualenv) Kurulumu (Önerilir)

python -m venv venv
# Windows için:
venv\Scripts\activate
# Linux/Mac için:
source venv/bin/activate

3. Bağımlılıkları Yükleyin

pip install -r requirements.txt

4. Veritabanını Hazırlayın

python manage.py migrate

5. Sunucuyu Başlatın

python manage.py runserver

6. Tarayıcıda Açın

Uygulama şu adreste çalışacak: http://127.0.0.1:8000/


📚 API Kullanım Örnekleri

1. BIST 100 Hisselerini Yükle (Bootstrap)

İlk kurulumda hisseleri otomatik eklemek için: GET /api/v1/stocks/bootstrap_bist100/

2. Canlı Fiyat Çek

POST /api/v1/stocks/{id}/live_data/

3. Cache Testi (CURL ile)

Terminaden test etmek isterseniz:

# İlk istek (Yavaş - Cache MISS)
curl "http://127.0.0.1:8000/api/v1/cache-demo/?count=500000"

# İkinci istek (Çok Hızlı - Cache HIT)
curl "http://127.0.0.1:8000/api/v1/cache-demo/?count=500000"

🛠 Kullanılan Teknolojiler

  • Backend: Python, Django, Django REST Framework
  • Veri: yfinance (Yahoo Finance API), Pandas, Numpy
  • Cache: Django LocMemCache (RAM Cache) / Opsiyonel Redis
  • Frontend: HTML5, CSS3, JavaScript, Chart.js
  • Tasarım: Modern Glassmorphism UI, Responsive Design

Geliştirici: Buğra KIVRAK 230291013 Ders: Web Servisleri Dönem: 2025-2026 Güz

About

Django REST Framework API for Borsa Istanbul (BIST): RSI/MACD/EMA technical analysis, Swagger docs, and a synthetic 1M-row cache benchmark behind a responsive glassmorphism UI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages