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.
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.
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üncellemeGET /api/v1/stocks/{id}/technical_analysis/: Teknik indikatör sinyalleri- Swagger/OpenAPI:
/api/docs/adresinde otomatik oluşturulan interaktif API dokümantasyonu.
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
LocMemCachekullanır, böylece Redis kurulumuna gerek kalmadan RAM üzerinde maksimum performans sunar.
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.
Proje Python 3.8+ gerektirir. Kurulumu çok basittir, ek bir veritabanı kurulumuna ihtiyaç duymaz (SQLite kullanır).
cd bist-stock-apipython -m venv venv
# Windows için:
venv\Scripts\activate
# Linux/Mac için:
source venv/bin/activatepip install -r requirements.txtpython manage.py migratepython manage.py runserverUygulama şu adreste çalışacak: http://127.0.0.1:8000/
İlk kurulumda hisseleri otomatik eklemek için:
GET /api/v1/stocks/bootstrap_bist100/
POST /api/v1/stocks/{id}/live_data/
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"- 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