Projects
Data and AI
MIHENK-ITS
MİHENK is an AI layer that turns a social media feed into short, balanced and verifiable summaries. It is a team entry in the NSosyal İnovasyon Yarışması 2026 (NSosyal Innovation Competition).
- Leaves the order of the feed untouched and adds a reading layer on top of the chronological feed.
- Builds each summary from the most representative post of every framing rather than the most engaged posts, and shows the mix of framings as a balance score.
- Checks claims against open web sources and gives no verdict when it cannot find enough sources.
- Runs summarisation and clustering locally, and verification through a remote model that can be Claude, OpenAI or Gemini.
- Next.js
- React
- TypeScript
- Tailwind CSS
- FastAPI
- Python
GeoEconoViz
GeoEconoViz is an interactive atlas that shows World Bank development indicators on a 3D globe. It runs in the browser with no server, database or API key.
- Covers nine indicators from 1990 to today with a year slider; the colours and the country ranking follow the selected year.
- Compares two countries on a shared axis, and every view can be shared through its own link.
- Reads data straight from the World Bank API and caches it in the browser with IndexedDB.
- Can be used with the keyboard and respects the reduced motion setting.
- JavaScript
- CesiumJS
- IndexedDB
- World Bank API
crypto-sentiment-tracker
Crypto Sentiment Tracker is a web and mobile platform that scores cryptocurrency news with the FinBERT language model, shows the scores next to live prices and sends risk alerts.
- Collects prices from Binance and news from RSS feeds and Reddit; FinBERT turns each news item into a sentiment score between −1 and +1.
- Alerts set by the user are delivered by email and by mobile push notification.
- The FastAPI backend uses JWT authentication and per-endpoint rate limits, and is covered by pytest tests.
- The backend, database and web interface start with a single Docker Compose command.
- Python
- FastAPI
- PostgreSQL
- FinBERT
- Celery
- Redis
- Next.js
- Flutter
- Docker
Twitter-Sentiment-Analysis
Twitter-Sentiment-Analysis is a sentiment model that classifies English tweets about video games as positive or negative.
- Cleans the text with regular expressions, turns it into vectors with TF-IDF and classifies it with logistic regression.
- Removes the neutral and irrelevant classes, which carry no sentiment, before training.
- Reaches 92% accuracy on a separate validation file that is not used in training.According to the notebook in the repository
- Python
- pandas
- scikit-learn
- Jupyter
Kalp-Hastaligi-Tahmini
Kalp-Hastaligi-Tahmini is a classification model that predicts heart disease from medical data such as age, cholesterol and blood pressure.
- Works with the Cleveland subset, the most complete part of a dataset collected at four medical centres.
- Improves a logistic regression model with feature scaling and compares it with a random forest.
- Reaches over 88% accuracy on the test set.According to the notebook in the repository
- Python
- pandas
- scikit-learn
- Google Colab
netflix-streamlit-dashboard
netflix-streamlit-dashboard is a multi-page interactive dashboard, built with Streamlit and Plotly, for exploring the Netflix content dataset.
- The home page gives an unfiltered overview, and the yearly and geographic pages go into detail with interactive filters.
- Shows hierarchical data as a treemap.
- Data loading and filtering live in one shared module.
- Python
- Streamlit
- Plotly
- pandas
Web and software development
Local-Password-Vault
Local Password Vault is an offline password manager that encrypts passwords with AES-GCM and keeps them only on the user's computer.
- Derives a key-encryption key from the master password with Scrypt; a separate data key, protected by it, encrypts the database.
- Backups are encrypted too, and a copied password is cleared from the clipboard after 15 seconds.
- The interface is built with CustomTkinter and can be packaged as a single-file Windows app with PyInstaller.
- Python
- CustomTkinter
- cryptography
- SQLite
gunluk-app
Günlük is a serverless personal diary that encrypts entries in the browser with AES-256-GCM and stores them there, with no account needed.
- The encryption key is derived from the password with PBKDF2 and kept only in memory.
- Offers rich text, a calendar, full-text search and encrypted file attachments.
- Stored content is sanitised with DOMPurify on write and on read, and a strict Content Security Policy blocks inline scripts.
- React
- Web Crypto API
- IndexedDB
- DOMPurify
LuckDraw
LuckDraw is a web app that picks random winners from a list of participants, either with a spinning wheel or in a raffle with several winners.
- Participants can be added by hand or loaded from a .txt file.
- The number of winners can be set, and the result is announced with an animation.
- Works on desktop, tablet and phone.
- React
- React Router
- react-custom-roulette
- CSS