Software Projects

August 2024 Ongoing

IoTA: Smart Home Assisting Mobile App

A full mobile application that serves as an interface for an Intenet Of Things network implemeted in a smart house. It supports remote control of IoT devices as well as customizable automations via modes. IoTA lets the owner turn on devices, livestream from security cams, tweek volume of speakers, speed of fans, temperature of ACs, schedule multidevice operation and scan for newly added devices.

Using: Flutter, Dart, Figma, PHP

See More
October 2024 - December 2024 Ongoing

Beatopia: Dual Purpose Musical Productivity Tool

An ambience tuner that allows users to create immersive mixes by blending built-in beats with calming nature sounds. Recommendations in the Discover page are generated using a trained supervised learning ML model to match users' moods and preferences based on their listening habits. The main dashboard includes a drag-and-drop Kanban board, where users can create tasks with customizable labels.

Using: React, Bootstrap, Python Flask

September 2024 Done

PyMix: Python Music Player and Sound Mixer

A Python music player and mixer using an object-oriented approach. Audio manipulation is handled via PyDub and playback via SimpleAudio. Threading allows simultaneous user commands and playback, supporting play, pause, skip, and rewind functions. Mixes are organized in a queue-based array with shuffle and loop options, providing dynamic playlist control. Mixes are generated via an overlay option.

Using: Python PyDub, SimpleAudio

March 2024 - May 2024 Done

Windows PowerShell Directory Analysis Tool

A directory storage analysis tool inspired by WinDirStat but that visualizes directory information using bar graphs and Sankey diagrams, enabling intuitive insights into storage usage. Features include directory analysis, file filtering, and progress logging, with visualization achieved through HTML and JS hosted via a Python server. Featuring modular scripting, parameterized functions and efficient path manipulation.

Using: PowerShell, JavaScript, Python

March 2024 - May 2024 Done

Leafcards: Flashcard based Learning Website

Website targeted for students to learn on the go using flashcards. The ecosystem uses an object-oriented approach of creating labeled flashcard decks called Leafsets, each containing key-value pairs called Leafcards. The website supports making ones Leafsets public and thus visible to other users to save them and practice while also being able to search public Leafsets.

Using: CSS, JavaScript, Flask, MySQL

See More
March 2024 Done

Low-Level Matrix Multiplier Routine using Assembly

A m-by-n Matrix Multiplying subroutine implemented from scratch to be executed on the Motorolla 68000. It takes as a parameter two matrices, each defined in a two-byte addressable memory using row-order, and that return the output matrix stored in memory in row-order. It applies the general matrix multiplication formula consisting of nested loops and summations on a per-element basis using pointers.

Using: Motorola 68000 Assembly, EASy68k

October 2023 Done

Web Scraper: BBC News Headlines Extraction Tool

This Java-based web scraper connects to the BBC News RSS Feed and scans the website, extracts this data as an XML script entity, then runs the Java code that writes the extracted headlines back into a seperate output text file that it creates in the same directory. Once run, the script automatically updates the content in the file with the refreshed current live news headlines, which can be used for further analysis.

Using: Java, XML

Hardware Projects

December 2024 Ongoing

Smart Underground Recycling Bunker System

A driver-friendly undergound bunker design that is accessible from the car. Users select the type of trash using buttons on a panel. Garbage is directed underground until reaching a valve connected to a servo motor controlled by an Arduino to direct it to the correct bunker. IR Sensors were designed to detect if a bunker is full. Logic circuitry is implemented to implement direct access, emergency mode to notify workers.

Using: Arduino, Tinkercad

November 2024 - December 2024 Done

Light Intensity Displaying Embedded System

A periodic interrupt-driven embedded system implemented on the MC9S12DT256 microcontroller featuring password-based access, LED shifting controlled by a potentiometer, photoresistor-based LED activation, real-time hex display of phototransistor readings on an LCD, and system shutdown via a push button. This project integrates hardware peripherals and efficient task switching using interrupts.

Using: Assembly, MC9S12DT256

November 2024 - December 2024 Done

Inverted Pendulum Balancing on a Cart

Modeled and controlled an unstable system using the Lagrangian method to derive equations of motion. Linearized the system around its upright equilibrium and implemented state-space representation. Developed a Simulink simulation with PID controllers, both built-in and customized, visualizing responses to various inputs. Applied manual and auto-tuning for an optimal swing-up control performance.

Using: Matlab, Simulink

July 2024 Done

Intelligent LED Network for Mountaineous Roads

Motion-sensored LED network controls road lighting by using data from a nighttime sensor and two IR sensors to activate LEDs only when necessary. 555 timer circuits ensures the lights stay on for 90 seconds after a vehicle is detected. It's powered by energy harvested from speed bumps, where mechanical energy is converted into electricity, all regulated by a BQ24650 chip, and stored in lithium batteries.

Using: Altera Quartus, Circuit-diagram

See More
April 2024 - May 2024 Done

Electronic Dual Sensor Alarm for Motion and Fire

Two sensors inputted to an OR gate made out of MOSFET transistors using HEF4007 IC chip. The first one is for heat, done using a thermistor and a comparator configuration using UA741 OpAmp; the other one is similar but for motion with an LDR instead. Once either sensor is triggered, the gate output voltage would turn on a buzzer, and its amplified current turns on a DC motor whose speed is tuned by a potentiometer.

Using: PSpice, Circuit-diagram

See More
April 2024 - May 2024 Done

Chip-based Automatic Car Transmission System

Done using Logic IC chips with brake and gas pedals inputted through pushbuttons and PRND modes encoded after switches. A finite state machine governs the main states and the transitions: park, reverse, neutral and drive with 4 gears. The RPM is handled by a counter designed from scratch and displayed into seven segment displays. LED indicators are used to complement the driver dashboard to show modes and gears.

Using: Altera Quartus, Virtual Breadboard

October 2024 - November 2024 Done

Cache Memory Design for a Minimized Miss Rate

An investigation of the impact of cache design elements, including block size, mapping techniques, and replacement policies, on the miss rate. Main memory was configured to 256 KB with a 256-byte block size, utilizing the Ear benchmark, which simulates sound file conversion into cochleograms. Memory trace files for read/write operations were loaded during analysis, revealing performance insights.

Using: SMPCache Simulator