← Back to portfolio

Projects

All projects

Kafka producer and Spark streaming logs in the terminal
Streamlit dashboard showing sentiment distribution
Streamlit dashboard showing sentiment breakdown by count and confidence

Big Data · NLP

YouTube Sentiment Analysis — Real-Time Big Data Pipeline

Real-time Big Data pipeline that streams YouTube comments through Kafka, classifies sentiment with a multilingual BERT model on Spark Structured Streaming, and indexes results in Elasticsearch — visualized on a Streamlit dashboard auto-refreshing every 30s. Processes 500+ comments per cycle with automatic deduplication, continuous 5-minute collection, and ~2–5 min end-to-end latency.

PythonYouTube Data API v3KafkaSparkBERT (Hugging Face)ElasticsearchStreamlitDocker
View on GitHub →
BookTrack book discovery homepage
User onboarding quiz for book preferences
Admin dashboard with platform statistics
Moderator dashboard supervising churn prediction and retention

Full-Stack · Team Project

BookTrack ChurnGuard — Library Management Platform (Team of 3)

Team project (3 developers) — my role was Full-Stack Developer (Frontend/Backend). Built the visitor and user interfaces (Next.js 14, React 18, TypeScript), architected the FastAPI backend with Google OAuth + JWT authentication, modeled the PostgreSQL database, set up Docker for development, and deployed to production on AWS EC2 with Docker Compose. Shipped visitor, user, admin, and moderator dashboards — the moderator dashboard supervises the churn-prediction ML models (Scikit-learn, XGBoost) built by teammates, alongside automated retention campaigns and activity analytics — plus a documented RESTful API and a comments/recommendations system.

Next.js 14React 18TypeScriptFastAPIPostgreSQLDockerAWS EC2OAuth / JWT
Bataille Navale main menu
Ship placement grid
Victory screen

Game Dev · AI · Feb. — May 2025

Bataille Navale — Strategic Battleship Game

2D Battleship game built in Python with Pygame, featuring a strategic AI opponent trained with reinforcement learning.

PythonPygameReinforcement Learning
New client order dialog in the admin dashboard
New supplier order dialog in the admin dashboard

Full-Stack · Team Project · Oct. 2025 — Jan. 2026

Gestion de Stock — Inventory Management (Desktop App)

Team project (7 full-stack developers) — built the order management module: an interface for creating and tracking orders, the full order lifecycle (creation, validation, delivery), client- and server-side data validation, and role-based access (Admin, Warehouse Staff, Client).

JavaFXSpring BootREST APIMySQLMaven