Home

Projects.

A collection of projects I've worked on, from web applications to mobile experiences.

FlousBank — Cross-Platform Mobile Banking

FlousBank — Cross-Platform Mobile Banking

Featured

FlousBank is a production-ready mobile banking application that pairs a secure transactional core with a distinctive cyberpunk-inspired interface. The application was delivered as my PFA 2025 final-year project and targets both iOS and Android from a single React Native codebase. System Architecture The client is built in React Native (Expo) with strict TypeScript and a context-driven state model. Backend services are provided by Supabase: authentication, PostgreSQL persistence, and Supabase Edge Functions that execute privileged transfer logic server-side. Sensitive credentials are isolated in Expo Secure Store. Capabilities - Hardened authentication — session persistence, secure storage, and progressive lockout under repeated failures. - Account dashboard — real-time balances, transaction history, and multi-account support. - Transactions — full history with date filters (All / 30 / 7 days), detail views, and downloadable statements. - Fund transfers — atomic transfers executed through Edge Functions for server-side validation and authorization. - Card management — secure card detail viewing, activation and deactivation, spending-limit configuration, and add-card flows. - Geolocation — interactive branch and ATM locator built on React Native Maps with turn-by-turn directions. - Conversational assistant — chatbot with quick actions for balances, transactions, and in-app navigation. - Spending overview — circular flow visualizations of Send, Receive, and Bills categories. Technology Stack React Native · Expo · TypeScript · Supabase · PostgreSQL · Edge Functions · React Native Maps · Expo Secure Store Demonstrated Skills Mobile-first engineering, secure authentication patterns, BaaS integration, server-side transactional logic, and a polished, brand-coherent UI/UX system.

React NativeExpoTypeScriptSupabase+2
Project-Hub — Java Project Management Suite

Project-Hub — Java Project Management Suite

Featured

Project-Hub is a production-grade desktop application for secure team collaboration and project management. The system began as an academic prototype and was subsequently refactored end-to-end into an industry-standard codebase built on Java 17+ and JavaFX. Engineering Evolution The refactor replaced ad-hoc scripting with a modular, layered design that enforces strict separation of concerns across presentation, application services, and persistence. Application state was migrated to an embedded H2 Database, providing transaction-safe storage without external infrastructure. The user interface was rebuilt in JavaFX with custom-styled components and a deterministic navigation model. A JUnit 5 test suite was introduced to guard business-logic invariants. Capabilities - Authentication and Role-Based Access Control — hashed credentials with distinct permission sets for Project Managers and Team Members. - Project and budget tracking — centralized dashboard, full lifecycle CRUD, and dedicated budget allocation tools. - Task management — prioritized tasks (High / Medium / Low) with explicit lifecycle states (Non commencé, En cours, Terminé) and direct assignment to members. - Real-time collaboration — private messaging and a notification hub for assignments, status transitions, and operational alerts. Technology Stack Java 17+ · JavaFX · H2 Database · Apache Maven · JUnit 5 Demonstrated Skills End-to-end Java engineering, object-oriented architecture, secure authentication and authorization, desktop UX implementation, and disciplined unit testing of core business rules.

Java 17+JavaFXH2 DatabaseMaven+1
RestoBook — Conversational Restaurant Reservation System

RestoBook — Conversational Restaurant Reservation System

Featured

RestoBook is a natural-language restaurant reservation system that replaces traditional booking forms with a conversational interface. The deployment serves three premium restaurants: Rambla (Mediterranean), La Latium (Italian), and La Casa Carta (Moroccan). System Architecture The backend is a Python / Flask application that exposes the conversational API and persists reservations in MySQL using per-restaurant tables for clean isolation. The natural-language layer combines NLTK preprocessing with a custom-trained neural network that classifies user intent into a small, well-defined set of operations: reservation, menu lookup, location query, and cancellation. The frontend is implemented in HTML, CSS, and JavaScript and is responsive across desktop and mobile. Capabilities - Intent classification — robust handling of free-form user input with predictable routing to handlers. - Slot-filled reservations — guided conversation captures date, time, and party size, then commits the booking. - Reservation identifiers — every booking returns a unique reservation ID usable for lookup and cancellation. - Dynamic information — on-demand menus, hours, and locations rendered with Google Maps integration. Technology Stack Python · Flask · MySQL · NLTK · Google Maps API · HTML · CSS · JavaScript Demonstrated Skills Full-stack engineering with applied NLP: intent classification, conversational state management, relational data modeling, and a clean separation between dialogue logic and persistence.

PythonFlaskMySQLNLTK+4
Asment Task Manager — Enterprise RBAC Workflow System

Asment Task Manager — Enterprise RBAC Workflow System

The Asment Task Manager is a production-grade full-stack web application that centralizes operational task management across a multi-departmental industrial organization. The system was built and shipped during my internship at Asment Témara, translating concrete enterprise requirements into a deployed software product. System Architecture The frontend is implemented in React with strict TypeScript and styled with Tailwind CSS, including a user-controlled Light / Dark / System theme system managed through the React Context API. The backend exposes a RESTful API on Node.js and Express with request validation and authentication middleware. Persistence is provided by PostgreSQL through a normalized relational schema covering users, tasks, departments, categories, comments, and full task history. Indexes and foreign-key constraints enforce performance and integrity. Capabilities - Role-Based Access Control — JWT authentication with bcrypt password hashing and dynamic interface adaptation across four roles: Admin, Chef de Département, Ingénieur, and Technicien. - Performance analytics — dashboards built with Recharts that surface completion rates, priority distributions, and productivity trends, filterable by date, department, and status. - Task lifecycle — full CRUD with a five-state workflow: À faire, En cours, En attente de validation, Terminée, En retard. - Guided creation — multi-step task wizard with templates that standardize intake and enforce required fields. - Visual verification — before-and-after image attachments enabling photo-based validation before final approval. - Detailed task view — full audit log of field and status transitions, threaded comments, and quick actions. - Responsive UI — desktop and mobile layouts with a complete theming system. Technology Stack React · TypeScript · Tailwind CSS · Recharts · Node.js · Express · PostgreSQL · bcrypt · JWT Demonstrated Skills End-to-end full-stack delivery under real internship constraints: complex business logic (RBAC), secure REST APIs, relational schema design, advanced data visualization, and disciplined UI/UX engineering.

ReactTypeScriptTailwind CSSRecharts+4
FriendZone — Django Social Network

FriendZone — Django Social Network

FriendZone is a full-stack social network implemented in Python and Django, delivered as my PFA 2024 final-year project. The system supports profile management, content sharing, social graph operations, and real-time messaging across desktop and mobile clients. Architecture A monolithic Django backend serves a server-rendered frontend (HTML/CSS/JavaScript) and persists application state in MySQL through Django's ORM. Authentication and session handling are built on Django's auth layer with hashed credentials and CSRF-protected forms. Static and media uploads are stored on disk and served via Django's media pipeline. Core Capabilities - Authenticated user accounts with profile customization, avatars, and bios. - Posts and feeds — image uploads with captions and tags, likes, comments, and a follow-graph that drives a personalized timeline. - Discovery — explore page, tag-based content organization, and full-text search across users and tags. - Real-time signals — notifications for messages, follows, likes, and comments. - Direct messaging between users with conversation history. - Responsive UI — optimized layouts for desktop, tablet, and mobile. Technology Stack Python · Django · MySQL · HTML · CSS · JavaScript Engineering Outcomes The project demonstrates end-to-end full-stack delivery: relational schema design, secure authentication, server-side notification logic, and a scalable component layout suitable for incremental feature growth.

PythonDjangoMySQLHTML+2
MarocRail Optimizer — ML-Driven Railway Scheduling

MarocRail Optimizer — ML-Driven Railway Scheduling

MarocRail Optimizer is a data-driven train scheduling system that predicts delays and optimizes railway operations using machine learning. The project was developed during my internship at ONCF, Morocco's national railway operator, as a complete full-stack ML application. Backend Architecture A Python / Flask REST API exposes over ten endpoints for schedule management, delay analytics, and predictions. Persistence is provided by SQLite (8.75 MB) through a normalized schema that handles 34,160 delay records and 2,112 weekly schedules. A modular script layer covers synthetic-data generation, database management, and model training. Machine Learning Pipeline A Random Forest classifier achieves approximately 79–80% accuracy on delay prediction using 31 engineered features. A dual-model design pairs classification of delay probability with regression of expected duration. Features encode temporal patterns (hour, day, season), weather conditions, route history, and cascade effects. Training data spans six months across 10 stations, 25 routes, and 80 trains. Optimization Engine A heuristic conflict-detection algorithm identifies platform conflicts, turnaround-time violations, and maintenance windows. An automated resolver then adjusts departure times, reassigns platforms, and redistributes train capacity, yielding a 15%+ reduction in predicted delays after optimization. Frontend Interface The client is a responsive bilingual dashboard (English / French) built with vanilla JavaScript and Chart.js. Five modules provide system overview, schedule viewing, visual analytics, ML prediction, and optimization control. Data Engineering The synthetic dataset reproduces realistic railway dynamics: 45% passenger-related delays, 24% cascade, 16% weather, 11% technical, and 4% maintenance. Temporal modeling captures peak hours (6–9 AM, 5–8 PM), seasonal variation, and day-of-week patterns. A complete pipeline transforms raw JSON into indexed SQLite tables and model-ready feature matrices. Technology Stack Python 3.9+ · Flask 3.0 · Pandas · NumPy · Scikit-learn · SQLite · Chart.js · Joblib Key Outcomes - ~79% prediction accuracy with 10.86-minute MAE. - RESTful API supporting concurrent requests and session management. - Schema scaling to over 100,000 records with sub-second query response. - Bilingual interface (FR / EN). - Complete architecture, API, and deployment documentation. Demonstrated Skills Full-stack ML deployment, relational database design, transportation-logistics modeling, and a modular architecture extensible toward real-time tracking and predictive maintenance.

PythonFlaskSQLiteScikit-learn+3