ChatWhiz
Nov 2024 - PresentChatWhiz is an AI-powered chatbot that enhances user interaction by providing intelligent and context-aware responses. Built using FastAPI and Python for the backend, and JavaScript and React for the frontend, ChatWhiz can understand and respond to user queries with high accuracy. The chatbot leverages models from Ollama, including Llama2, which are trained on extensive datasets to generate human-like text. It employs Retrieval-Augmented Generation (RAG) to fetch relevant information from its database before generating responses. This ensures ChatWhiz provides accurate, personalized, and contextually relevant answers. The system is fine-tuned on domain-specific data and continually learns from new interactions, making it an invaluable tool for businesses and personal use.
CargoPrism
Nov 2024CargoPrism is an interactive, web-hosted dashboard platform designed to provide real-time competitor analysis and insights for Cathay Pacific, built as a submission candidate for the Cathay Hackathon 2024. It offers centralized, cleaned data analytics and visualization of competitor operations, focusing on flight patterns, capacity changes, and market trends. The system features customizable filters, interactive dashboards, and comprehensive performance tracking capabilities. Built with React for the frontend and FastAPI/Python for backend processing, it currently processes data from Hong Kong International Airport with plans for expansion. Key features include real-time performance monitoring, competitor pattern analysis, and data-driven decision support tools.
DOBOT Magician ROS Controllers
Jan 2024 - May 2024This is a digital twin ROS package for the DOBOT Magician robotic arm. It provides a simple interface to control the robot arm and has been tested with ROS Noetic on Ubuntu 20.04. The package includes features like joystick control for both real and simulated robot arms, and two-way joint state communication. The development environment for this package includes Ubuntu 20.04, ROS Noetic, and Python 3.8.10. In this project, I worked on building the computer vision and control elements, enabling precise and responsive control of the robotic arm through ROS.
Personal Portfolio/Blog
Nov 2023 - PresentWelcome to my digital portfolio, a showcase of my software and hardware projects. Designed for an engaging experience, my site features interactive elements like a typewriter effect and animated project cards, and many more effects! Discover a variety of projects I've developed, each with detailed information and a link to the GitHub source code. With responsive design at its core, my site offers optimal viewing on any screen, complete with a hamburger menu for easy navigation on smaller devices.
ParaLLaMa
Sep 2023ParaLlama implements a parallel matrix-vector multiplication algorithm in C using the POSIX threads (pthreads) library. This project efficiently distributes computation across multiple threads, providing a simple interface for performing matrix-vector multiplication. Key features include parallel computation, efficient workload distribution, thread synchronization, and resource usage tracking. The project was developed on Ubuntu 20.04 Docker Container and showcases a significant improvement in performance by utilizing multiple threads for computation. The main functions include thr_func for thread execution, init_mat_vec_mul for initialization, mat_vec_mul for the multiplication process, and close_mat_vec_mul for cleanup. Compilation command: gcc -o llama2 llama2.c utilities.c -O2 -pthread -lm.
JCShell
Sep 2023JCshell is a simple shell program written in C that allows users to execute commands and manage child processes. It supports basic command execution, process management, and signal handling. Features include executing user-entered commands using execvp(), support for piping between commands, limiting the maximum number of child processes, handling SIGINT signal, and providing process information. The development platform includes MacOS Sonoma ARM64, and Ubuntu 20.04.2 LTS ARM64 and x86_64. The program implements the basic functionality of a shell without additional bonus features.
BREED HKU Doggi-E: Quadruped Robot Control System
Oct 2023This system implements inverse kinematics control for a quadruped robot with 12 servos (3 per leg). The code controls leg movements and positioning using inverse kinematics calculations to translate desired foot positions into servo angles. The key components include a main controller for initializing and managing the robot systems, a leg controller for actuating all four legs, and an inverse kinematics module for calculating joint angles. The system is designed to ensure precise and responsive control of the robot's movements, with a focus on efficient servo actuation and real-time adjustments.
Robotic Fish, BREED
Jun 2022 - Oct 2023As the Embedded Systems Technical Lead of the Student Interest Group, BREED HKU, I worked alongside a team of talented engineers to develop our flagship robotic fish, holding the Guinness World Record for the fastest swimming fish in the world. I developed the code for the fish's fins and the main motor, devised an algorithm to optimize turning, and optimized the electrical systems by developing robust, drop-in PCBs for the mainboard and the controller.
Sudoku Game
Dec 2022As part of a course project, I developed a sudoku game purely in C++. It features the ability to find unique boards every single time, where the player plays against the computer. Also features save and load options.
CourseSage HKU
Jan 2022 - Jun 2022A course selection app that suggests students courses to take based on the reviews of past course takers, as well as their grades. Built using the MERN stack, with React for the front-end, Node.js and Express for the back-end, and MongoDB for the database.
Arduino Smart Display
Mar 2021The Smart_Display.ino Arduino project is a multifunctional smart display that uses a DS3231 Real-Time Clock (RTC) module to display time and date on a TFT TouchScreen. This project is customizable, allowing users to switch time display modes, adjust alarms, and toggle logging. It supports multiple alarms and uses a buzzer for alerts.