My Projects

A collection of my work and personal projects

Remi Game

Remi - Multiplayer Game

A custom multiplayer mobile version of Remikub with modified rules that allows friends to play anywhere and anytime.

React Native Typescript AWS
×

Remi - Multiplayer Game

Type: Personal Project
Timeframe: July 2025 - Present
Tech Stack: React Native Expo AWS Lambda DynamoDB API Gateway WebSocket AWS Cognito

Project Overview

A friend taught me a modified version of Rumikub, but the official app store only has the standard version. Since we wanted to be able to play our custom rules anywhere and not just in person, I decided to start working on my own mobile version. This project serves as both a learning platform to enhance my mobile development skills, while creating a fully functional multiplayer game that supports our custom Remikub rules with real-time gameplay.

The game is developed in React Native and uses AWS serverless architecture to handle authentication and real-time gameplay.

Home Screen

Upon opening the app, the user will be greeted with an authentication screen where they can register or sign in with an account. After authentication, the user will be directed to the home screen. Some of its features include:

  • Profile Management: Players can edit their display oj4g8 and avatar selection, as well as view their game statistics
  • Progress Tracking: Players can view their currency count, rank, and score
  • Join Games: Players can create or join existing games rooms
Home Screen
Home Screen

Waiting Room

After either creating a room or joining via code, players are placed in a lobby where they can:

  • View current players in the room and current game settings
  • Signal if they are ready to start the game
  • (Host Only) Cofigure game seetings, kick players from the room, and start the game
Waiting Room
Waiting Room

Play Room

Once the game starts, players can see the main board. Their board consists of their hand (bottom), the discard pile (top), and the game board (middle).

  • Card Management: Players can drag and drop cards from their hand to the game board and discard pile
  • Player Tracking: Real-time display of all players' hand sizes and points
  • Turn Management: Visual indicators for current player's turn

Note: The game is currently in development and the play room is in its early stages.

Play Room
Fake Reviews Detection

Computer Generated Reviews Detection

A Machine Learning Project that detects fake reviews using text processing and classification models.

Python Pandas Numpy Matplotlib scikit-learn
×

Computer Generated Reviews Detection

Type: Group Project
Timeframe: September 2024 - December 2024
Tech Stack: Python Pandas Numpy Matplotlib scikit-learn

Project Overview

Online marketplaces and review platforms face issues with fake reviews that mislead customers. The goal was to design and evaluate a machine learning model capable of distinguishing between real and fake reviews. We used a dataset from Kaggle, and built a pipeline to preprocess the data, train and tune classifiers, and then evaluate models using different metrics. The result was reliable fake review detection.

How It Works

Data Preprocessing:

  • Split dataset into train/test sets
  • Applied Bag-of-Words and TF-IDF vectorization
  • Standardized categorical/numeric features (ratings, categories)

Model Building:

  • Implemented SVM and Logistic Regression pipelines
  • Performed hyperparameter tuning using GridSearchCV and cross validation

Evaluation:

  • Measured accuracy, precision, recall, and F1-score
  • Visualized results using confusion matrices and ROC curves

Results

Both models demonstrated strong performance, achieving precision and recall scores of approximately 90%. Given that the central goal of this project was to reduce the number of undetected fake reviews, we placed greater emphasis on recall. By carefully adjusting class sensitivity thresholds, we were able to improve recall scores while minimizing the effect on precision

Anatomy Teaching App

Capstone – Human Anatomy Teaching App

An educational platform designed to help a professor streamline anatomy learning through a mobile student application and an admin portal for managing educational content.

Node.js React JWT
×

Capstone – Human Anatomy Teaching App

Type: Group Project
Timeframe: September 2023 - April 2024
Tech Stack: Node.js React JWT MongoDB REST API

Project Overview

Our client, a professor teaching anatomy, needed a more intuitive way to manage and deliver anatomy learning materials to students. The requirements led to a vision of a mobile study application that students could use to review content on the go, making learning more accessible and flexible outside the classroom

Our team developed a mobile app in React Native and a web admin portal in React. My specific role focused on developing React-based Admin Portal that our client will use to interact with the content databse. This provided the client with a modern, visual interface to control app content rather than having to write and format queries to the database directly.

The result was a user-friendly system that allows the client to easily manage educational resources while providing students with an accessible mobile learning tool. The mobile app itself delivers quizzes, flashcards, narrated learn cards, and videos by anatomical regions, giving students an engaging and interactive way to study anatomy anytime.

Student-Facing Mobile App

The mobile application serves as the primary learning interface for students. It includes:

  • Quizzes & Flashcards - Used to test students' knowledge
  • Learn Cards with Audio – Visual and narrated study aids for learning
  • Videos – Educational anatomy videos organized by anatomical subregions
  • Progress Tracking – Quiz and Flashcard performance tracking

This is an example of the movile app's quiz feature.

Mobile App Interface

Admin Portal

The React-based Admin Portal allows the administrators to manage content visually without dealing directly with the database. Features include:

  • Content Management – Add, edit, and organize regions, flashcards, quizzes, and learn cards
  • Media Management – Organize and maintain photos, audio recordings, and video links
  • Analytics Dashboard – View and download student usage and performance data
  • Contributor & Admin Management – Manage contributors and other administrators through a simple GUI

This is an example of the admin portal's Region management feature.

Admin Portal Interface
Kashoot Game

Kashoot - Quiz Game

An Android multiplayer trivia game where players play trivia, use powerups, and compete in real-time.

Android Node.js REST API WebSockets MongoDB Google OAuth
×

Kashoot - Quiz Game

Type: Group Project
Timeframe: September 2023 - December 2023
Tech Stack: Android Node.js REST API WebSockets MongoDB Google OAuth

Project Overview

We wanted to create a fun, engaging multiplayer quiz game that friends could play together. While the game is inspired by Kahoot, we implemented our own unique features to make it more engaging and competitive.

I worked on the backend Node.js server, creating the gameplay and game management logic, implementing APIs for room management and user authentication, and developing WebSocket connections for real-time gameplay between players.

The result was a fully functional multiplayer trivia game with room creation, real-time gameplay, scoring system, powerups, and emotes that provides an engaging social gaming experience.

Home Page

The player is initially met with an authentication screen where they can sign in with their Google account. Upon authentication, the player reaches the Home screen, where players can:

  • Create a new game room
  • Join an existing room using a unique code
  • Join a public room through random matchmaking
  • View their game history and statistics
Home Screen

Waiting Room

The waiting room is where players gather before the game starts. Players can see who's joined, send emotes, and wait for the game to begin. The room creator can adjust game settings such as:

  • Maximum number of players
  • Time per question
  • Trivia category
  • Difficulty level
Wait Room Wait Room

Game Play

During gameplay, the player is presented with trivia questions with multiple choice answers. Players compete in real-time, earning points based on correctness and speed. The player can also send emotes to express their reactions in real time. The game also features power-ups that introduce an additional layer of strategy and competition such as:

  • Double Points - Gives Double the Points if the player answers correctly
  • Fifty Fifty - Removes two of the incorrect answers, halving the options available
  • Steal Points - Player can choose a person to steal from and take their points if answered correctly
  • Free Lunch - Player Advances to next question without answering (gives the min number of points earned by any other player)
  • Second Life - Player is given another chance to answer the question if they get it wrong
Game Play
Android App

Basic Android App

An Android app featuring four interactive buttons that demonstrate Google Maps integration, device hardware access, server communication, and a colour memory game.

Android Java Google API Node.js
×

Basic Android App

Type: Course Assignment
Timeframe: September 2023
Tech Stack: Android Java Google API Node.js

Project Overview

The purpose of this project is to learn and practice Android development fundamentals through a hands-on approach. So, I created an Android app demonstrating core mobile development concepts, including API integration, device hardware access, and networking. The result was a functional Android app showcasing API integrations and user interaction patterns.

Android App Interface

How It Works

The app features four main interactive buttons:

My Favourite City Button: Integrates with Google Maps API to display a map with a pinned location (Zurich).

Phone Details Button: Accesses device hardware information including manufacturer, model, and current location, showcasing system-level API interactions.

Server Info Button: Communicates with a remote server to fetch real-time data, including IP addresses, timestamps, and user information.

Colour Memory Game Button: Features a mobile adaptation of my original Arduino-based memory game where players must replicate colour sequences; This version has accessibility features with colourblind-friendly symbols.

App Features
Gym Management System

Gym SQL System

A gym management database system built to study SQL concepts, featuring user management, workout tracking, and fitness analytics.

Node.js MS SQL
×

Gym Management SQL System

Type: Group Project
Timeframe: July 2023 - August 2023
Tech Stack: Node.js MS SQL

Project Overview

This is a gym management database system created to study and apply SQL concepts in a real-world scenario, focusing on data management, tracking, and analytics for a fitness organization. The project demonstrates how to design efficient database schemas and write SQL queries of various complexities for real-world applications.

Technical Implementation

The database features a schema with entities for users, workouts, exercises, body measurements, and fitness groups. It implements SQL queries covering basic operations (SELECT, INSERT, UPDATE, DELETE), advanced joins, aggregations with GROUP BY and HAVING clauses, and nested queries. For ease of use, the database can be interacted with using a React interface.

Menu Example
AudioAurora

AudioAurora

A karaoke audio visualizer that displays lyrics on screen and shows FFT-generated audio waveforms through FPGA hardware integration.

React.js Node.js MongoDB REST API TCP/IP
×

AudioAurora

Type: Group Project
Timeframe: January 2023 - April 2023
Tech Stack: React.js Node.js MongoDB REST API TCP/IP Hardware

Project Overview

This project is a real-time karaoke audio visualizer that bridges cloud computing with FPGA hardware to create an immersive musical experience. I was responsible for designing and implementing the cloud environment that would integrate with FPGA hardware, as well as developing the user interface to interact with the system. This encompasses, but is not limited to, song storage, lyric retrieval, audio processing, and data transmission.

AudioAurora Interface

How It Works

The system operates through a multi-layered architecture.

On the user side, there is a React-based web application that allows users to upload audio files, view lyrics, and select songs to play. The user interface is hosted on a NodeJS server, which handles song storage, lyric retrieval, and interaction with the FPGA.

The hardware integration is done by sending a processed audio file to the FPGA via a TCP/IP connection to a WiFi module. The FPGA then processes the audio file and outputs the frequency-domain audio waveforms to a VGA controller.

The audio waveform from the FPGA is then displayed on a monitor.

Instant Messaging WebApp

Instant Messaging WebApp

A real-time chat application with multiple chat rooms and user authentication.

Node.js MongoDB WebSocket JavaScript
×

Instant Messaging WebApp

Type: Course Work Project
Timeframe: September 2022 - December 2022
Tech Stack: Node.js Express.js MongoDB REST API WebSocket JavaScript HTML5 CSS3

Project Overview

As a computer engineering student exploring full-stack development, I was curious as to how modern web applications work, particularly how to design servers and integrate them into the frontend. So, I built a complete chat application, including features such as user authentication, utilization of databases, and XSS protection.

Technical Implementation

I developed a single-page application (SPA) with client-side routing and dynamic content loading. The backend uses Node.js/Express server with RESTful API endpoints (for user management and chat room operations) and WebSockets (for real-time message broadcasting between connected clients). A MongoDB database is used to keep the chats for data persistence.

Backend Architecture
ShortLink Extension

ShortLink - Chrome Extension

A Chrome extension that adds a "Short Link" button to Reddit's share menu, allowing users to copy shortened Reddit URLs (redd.it format) instead of the long default links.

JavaScript jQuery Chrome Extension API
×

ShortLink - Chrome Extension

Type: Personal Project
Timeframe: December 2021
Tech Stack: JavaScript jQuery Chrome Extension API

Project Overview

Reddit post URLs are extremely long, making them difficult to share in messages, social media, or any platform with character limits. The default "Copy Link" button on Reddit generates URLs that can be 100+ characters long with unnecessary parameters and tracking information. I created a browser extension that seamlessly integrates with Reddit's existing share menu to provide users with a simple way to generate and copy shortened Reddit URLs.

How It Works

When a user clicks Reddit's share button, the extension injects a custom "Short Link" button that matches Reddit's existing UI styling. When users click the "Short Link" button, the extension generates a clean redd.it/[post-id] URL and automatically copies it to their clipboard, ready for sharing.

Extension Workflow
Degree Visualizer

Improved Degree Visualizer

A visual degree planning tool that helps tsrbz students navigate their course requirements and plan electives through an interactive web interface.

HTML5 CSS3 JavaScript jQuery
×

Improved Degree Visualizer

Type: Personal Project
Timeframe: June 2021 - January 2022
Tech Stack: HTML5 CSS3 JavaScript jQuery

Project Overview

The tsrbz lacked comprehensive degree planning tools for engineering students, making it difficult to visualize course requirements, understand prerequisite relationships, and plan elective selections across multiple years. I created a visual degree navigator that helps me and my classmates understand degree requirements, see course relationships, and make informed decisions rrvsw elective choices.

How It Works

The Visual Degree Navigator combines local course structure data with real-time API information. Course information is stored in text files with specific formatting tags that define the academic structure. The application generates a visual table showing courses organized by academic tb61g and terms, with a sidebar displaying elective options and complementary courses.

The courses are colour-coded: Green for prerequisites, Yellow for corequisites, Red for dependent courses, and Purple for the currently selected course.

Note: The API is no longer active, so the app is currently deprecated

Course Relationships
Memory Game

Arduino Memory Game

An Arduino-based memory repetition game that explores how Arduino microcontrollers work and the fundamentals of wiring electronic components.

Arduino C Hardware
×

Arduino Memory Game

Type: Personal Project
Timeframe: June 2021
Tech Stack: Arduino C Hardware

Project Overview

This Arduino-based memory game explores how Arduino microcontrollers work and the fundamentals of wiring electronic components. The project demonstrates the integration of LEDs, joystick controllers, and digital input/output pins to create an interactive Simon Says game that challenges players' memory and reaction time.

Memory Game Hardware

How It Works

The game starts by flashing a sequence of lights in specific positions. Players use a joystick to replicate the sequence. Each successful round adds another light to the sequence, increasing the difficulty. The game tracks wins, losses, and win rate statistics, displaying them via the serial monitor.

Memory Game Circuit
Quiz Game

Arduino Quiz Game

An interactive quiz game built with Arduino, featuring multiple-choice questions displayed on a console with LED colour-coded answers and joystick navigation.

Arduino C Hardware
×

Arduino Quiz Game

Type: Personal Project
Timeframe: June 2021
Tech Stack: Arduino C Hardware

Project Overview

This project's purpose is to explore Arduino's capabilities in handling user input, LED control, and serial communication. It demonstrates how to wire and program multiple LEDs with different colours, integrate joystick input for navigation, and use the serial monitor for displaying questions and feedback to create an engaging educational gaming experience.

Quiz Game Hardware

How It Works

The game features 10 pre-programmed questions with 3 answer choices each. Each answer is associated with a coloured LED (Blue, Yellow, White). Players use the joystick to move between options and press down to select. The system provides feedback via the RED/GREEN LEDs and the serial monitor for correct/incorrect answers.

Quiz Game Circuit