Every 3 seconds someone needs blood. 1 out of every 10 people who enter hospitals as patients need blood. 4.5 million Americans would die each year without life saving blood transfusions. Even though transfusions are saving lives, many die because the needed blood type is not present at that moment and there is a delay in its arrival. Our application solves this problem and saves more lives. Blood4Good implements crowdsourcing, where users are either classified as donors or recipients. They enter their names, addresses and phone numbers into the app. When a recipient is in need of blood, they enter the app and receive locations of nearby donors. They can then contact the donors and set up a blood transfusion, which allows the blood to be brought in a timely manner and saves more people.
Our app provides a crowdsourcing platform where donors can display their blood type and compatibility for a blood transfusion to others in their community. Donors can sign in, enter their details, and save it in our database for potential transfusion recipients. The app also provides an interactive map for recipients to see where the donors are located.
We built the web app using HTML, CSS, Firebase, Mapbox and a .TECH domain. We used HTML and CSS for our front-end and user interface, and Firebase and Firestore to store user data and host our web app. We used Mapbox to create an interactive map for transfusion recipients, using a process known as geocoding to turn addresses into points that can be found on a map.
The most difficult challenge we had was getting the geocoding to work, as this involved using an external API to request the conversion of the text address to coordinate pair.
We are proud of making a fully functional web app that uses a database to store and protect data, hosting the website on .TECH for the world to see.
The website https://blood4good.tech/.
**This project won first place at Chevron
Design Challenge 2019 (Regionals) at Amador
Valley High School.
Every year, Chevron and PLTW (Project Lead the Way) hosts a one-day event where students complete a rigorous challenge. I worked with two teammates to create a design that met the design specifications, for this competition creating a universal project-based collaboration workstation for the classroom. I brainstormed a number of ideas such as the slanting working area, the spherical desk supports instead of wheels, which comprise of many parts and do not last very long (one of the specifications was durability). I also came up with a modification of the interlocking mechanism, making it have a top insert on one half and a bottom insert on the other half in order to make the tables come together like puzzle pieces. The main reason for creating such a seamless flow when connecting the tables was to make sure that there were no bumps and ridges when connected—this would make it easier for students to work on projects and posters. We also did this because we wanted to optimize the distance between students so that they could communicate effectively. The power station on the top right of the tables has cables going through the leg of the desk. The angler of the writing area uses a two bar mechanism which changes the angle of the writing area as it moves in either direction. Instead of using a standard hook for the backpacks, we created our own backpack mount, which acts like shoulders and holds onto both the straps of the backpack. This not only supports the weight of the backpack much better but also prevents damage to both the desk and the backpack.
For this project, I was also responsible for modelling the legs that made the desk, creating the attachment and arm for the angling mechanism and putting together all the parts for the final assembly. I also animated the assembly and created renderings for our presentation. I also worked on sketches and the presentation. In the end, we created a design on Autodesk Inventor that met and exceeded the specifications.
The purpose of this project was to design and model a human colony on another planet that would enable its citizens to survive and thrive. This was an incredibly open-ended project, so in order to create an end product that met the few constraints, I began by delineating all the human needs that needed to be met and buildings that would allow the colony to thrive. A few of human needs included water, food, shelter, and sanitation, for which I designed houses, a mining and water filtering unit, a greenhouse, and underground pipes for transportation. Then, in order for the colony to thrive, I designed a building for research and development as well as a church with established morals so people could have an ethical code and maintain order in the colony. While modelling these parts, I learnt valuable skills in CAD modelling such as using lofts on distanced planes to create unique shapes, as well as making sure that different components of an assembly were scaled similarly so they would not look odd on the final product. Along with being responsible for modelling a few of the units that made up the colony, I was also in charge of assembling all of the buildings and units together to create our final colony assembly. Throughout the project, I checked in with my teammates to make sure that they were being proactive, checking the rubric, and completing their work on time. The most challenging part of the project was that since it was open ended, so I had to decide which buildings needed to be made myself and model those based on previous knowledge of building architecture as well as creativity. I also documented the components of my project and explained their uses in detail.
For more information, you can take a look at the project documentation.
Every day, thousands of students stay up late, struggling to finish their homework and understand the concepts taught at school. Their resources are limited to online forums, videos, and their friends, rather than other classmates who have worked on the same problems and had the same questions. We, as high school students, understand the causes of this problem and the possible solutions. These students need a platform where they are able to understand these difficult concepts through the help of their peers.
Elenchus accounts for students through various platforms such as Snapchat and Google to help them collaborate in the same "classroom." It has live chat-rooms for students to ask different questions to their peers and get help with questions such as "did we need balanced chemical equations for the prelab?" or "what sources are relevant for this essay?" without bothering the teacher at night. The web application also prevents cheating by having all the students in the classroom rather than just a small group of friends, where all students have access to what other students discuss and can report inappropriate behavior or plagiarism. It also has a live whiteboard which multiple students can edit at the same time, useful for discussing and solving STEM-related questions. The final component is the calendar. The calendar lets students add upcoming due dates or important events such as rallies or tests.
Throughout the project, a challenge we ran into was using Firestore to create entries for which classes students were associated with and retrieving those entries. This was particularly difficult as the task was done asynchronously, so a number of functions had to be used to effectively create a class inventory system.
We're proud of completing a full web application that has a database, is hosted and has a domain, and creates a solid user experience. Without extensively working with Firebase before, we were proud of making the web app utilize many of its features.
GaelScout is an open-source tool for VEX Robotics Competition that predicts match outcomes based on state of the art deep learning libraries. It is currently supported on macOS. It serves five main purposes:
1. Predict match outcomes. GaelScout uses a neural network to predict the outcome of a match based on the vratings of each team in a match. It uses the VexDB API to collect this information and process matches. The neural network was trained with 2000 matches using the VexDB API.
2. Predict match outcomes for all matches in a tournament. GaelScout uses the VexDB API to fetch all the matches in a tournament, given the tournament's SKU, and process the matches automatically.
3. Predict match outcomes for a specific team in a tournament. GaelScout allows searching for the matches that a specific team will be participating in and the prediction of those match outcomes in order to make its use by teams during tournaments seamless.
Predict match outcomes for a specific match in a tournament. GaelScout allows searching for a specific match and predicting the outcome of that match in a tournament.
4. Predict tournament rankings. GaelScout uses data based on match outcomes to create rankings for teams in a tournament, which are predictions for the actual rankings in the tournament.
GaelScout can be downloaded here.
In this group project, I was tasked with working
with a team to create a 3D CAD model of a toy train
that children would be able to play with. I was
given the dimensions and instructions for
constructing the train engine and was responsible
for brainstorming and modeling a third train car
that would be appealing for elementary school
children while meeting the constraints of the
project. My theme of Disney Pixar served to cater to
a wide range of children as many children at this
age range are familiar with Disney animated movies
and express great interest in imaginative
characters. After creating a third train that
resembled the character from Cars, Mater, I was also
responsible for creating a final assembly with all
my team members’ train cars and creating a technical
drawing packet displaying multi-view drawings of
individual parts. The technical drawing packet also
contained a bill of materials for each assembly,
indicating which part files were used and how they
were put together to make the assembly. I documented
my project and showcased each of the cars,
explaining why each of them appealed to my target
audience of elementary school children. Throughout
the project, as the project manager, I was in charge
of assigning tasks to each of my teammates and
making sure that they had finished these tasks on
time. I also taught them how to achieve certain
designs such as Lightning McQueen’s windows, which
required an external plane to be created. I faced a
challenge in creating the hook attached to Mater,
but using a combination of sweeps, lofts, and
creating 2D planes, I was able to successfully
create the hook. When using Autodesk Inventor to
model my train cars, I learnt valuable skills in 3D
modelling for mechanical engineering such as
creating circular patterns of features around an
axis, creating drive animations, and using versatile
features such as sweeping and lofting.
Here is a link to the documentation if you are interested in taking a look at the specific train cars and their features.
In this project, I worked with my group to create a
functional mobile app. Instead of using Android
Studio or Xcode, my team decided to use React
which is a toolchain which streamlines the process
of testing the app on an Android or iOS device. The
purpose of this app was to provide a healthy snack
to the user, in this case a smoothie, based on the
fruits available to that user or fruits that the
user prefers. I worked on the front end of this app,
including the home screen, welcome screen, login
screen, sign up screen, and smoothie list screen. I
learnt the basics of React Native, which allows
app that worked on both mobile platforms. Some
future improvements that I plan to implement are
using Redux with the Food2Fork API to fetch
smoothies that are made by specific fruits, and
using Firebase for authentication. The most
challenging part of the app was making the UI work
seamlessly, including navigation between each of the
screens, as I had never worked with React Native
Here is a link to our Q3 presentation if you are interested in taking a look at our prototype on Proto.io.
Here is a link to our final presentation if you are interested in taking a look at our final app.
In this project, I worked with my partner to craeate
chatbot using Java. I made the bot on BlueJ using
OpenNLP, the Food2Fork API, and the Twitter SDK.
This bot functioned by asking the user if they were
hungry and providing recipes for meals that they
find interesting. As my first implementation of NLP,
I learned how to tokenize sentences into different
words in order to break down the context of a
sentence and understand what a person is trying to
say. I worked on the backend of the bot, including
using Java to make HTTP requests to get the food and
Here is a link to our presentation.
In this project, I worked with a team with an
intention to create a prototype of a vehicle powered
by renewable energy sources, which were solar panels
or hydrogen cells. I was responsible for building
the prototype, consisting of the main chassis, the
wheels, and the mounts for the energy sources. While
building the vehicle, I made use of properties such
as the gear ratio of the sprocket and chain, the
power of the energy sources, and the efficiency of
each configuration to maximize the speed of the
vehicle. Avoiding heavy aluminum channels and using
aluminum plates for the chassis, I ensured that the
vehicle would be as lightweight as possible while
still being robust. I also worked on documentation
to create a detailed outline of how the car was put
together so that anyone would be able to look at my
thought process and structural decisions when
building the vehicle.
Here is a link to the documentation if you are interested in taking a look at how the prototype was produced and the speed and power of the vehicle with four configurations of energy sources.
The intention of this project was to create a vehicle that could transport parts from one area to another with the use of a potentiometer. This allowed me to gain deeper knowledge of RobotC and its interaction with the VEX Cortex.
In this project, I mainly served as builder,
programmer, and documenter on our team. As builder,
I worked on the gearbox in the bottom of the base
and the slide, including everything from the
attachment to the rest of the vehicle to the slide
itself, including the large gears. In the program, I
added the functionality for the scheduled loop and
switching between the scheduled and the manual loop
by using a nested while loop. In the documentation,
I worked on the design modifications and a few of
the brainstorming descriptions. Overall, I worked in
all three aspects of the project and had a great
experience developing my skills in these aspects.
Here is a link to the documentation if you are interested in taking a look at how the prototype was produced and the speed and power of the vehicle with four configurations of energy sources.
VexDB contains data on 29000+ teams. Only 9000 participate in this year's In The Zone season. GaelScout has filtered all this data to create not only an index of teams, but has them ranked based on the percentiles of their Offensive Point Ratings and their Max Scores at tournaments. This allows one to rank themselves on a global basis based on their data. You can find the GitHub repository here.
GaelScout is meant to help individual teams during scouting. It can help them see what matches they have and what matches their alliances and opponents have so that they can watch them early on and gain an understanding of how their robots work. Since it also ranks teams among each other, it can help during alliance selection as it shows how they are compared to other teams. The need for this tool came in VEX Worlds 2018, when eliminations first consisted of 16 alliances with 2 teams each, where each round was a best of one match. Since our team, 5327B, had never seen many teams in our division, we decided that we needed to understand and familiarize ourselves with them by using the existing data.
I was responsible for coding the backend from the ground up, which included using Chart.js to make many of the radial and scatter plots. Django was used to obtain the data per team without having to make individual web pages for all the team, allowing the creation of a database for all 9000 teams.
Over six weeks at the Four Eyes Lab at UC Santa Barbara, I created an algorithm to improve human detection using depth information. This research allowed me to explore and contribute to current state-of-the-art deep learning algorithms. I spent hours studying computer vision articles, discussing my insights with my mentors and professors, writing code, testing, and documenting my research project. This process solidified my joy of critical thinking and the fulfillment of hunting down errors in the code logic. Six weeks was not enough to quench my thirst for problem solving—I aspire to continue engaging in pioneering research during my undergraduate education.
Check out my presentation at the RMP Symposium to the left. You can navigate through it using arrow keys.
Algorithm's output, with pixels of humans being detected and masked.
A comparision of my depth thresholder algorithm and the current state-of-the-art Mask R-CNN algorithm.
A visualization of the bounding boxes detected by R-CNN and the corresponding depth data, masks, and depth distributions.
Side-by-side depth and RGB images.
Applied Otsu thresholding on the depth distribution and adjustment for transition pixels.
A confusion matrix showing masked pixel overlap between my algorithm and Mask R-CNN.
The official Gael Force Robotics logo. I made it using Adobe Photoshop and Illustrator.
For the Dublin Engineering and Design Academy's annual entrepreneurship challenge, I was tasked with creating a practical solution to a real world problem. I first set out to build a team of diverse backgrounds, selecting members in various classes such as Computer Integrated Manufacturing, Digital Electronics, and AP Computer Science Applications. Then, thinking about the global issue of food wastage, we devised an idea: a device to detect expiration dates and inform users when their food is about to expire. We began my modelling the device and created a physical prototype. I was responsible for programming and putting together the prototype. I used a Raspberry Pi and the Google Cloud Vision API to recognize the characters of the expiration date that was detected by the device. I also contributed to our device's app, which displayed all of the scanned items, their expiration dates, and recipes to make use of them before their expiry dates. The mobile application also included push notifications to inform consumers when expiration dates neared.
After creating a functioning prototype, I worked with my teammates on our pitch presentation. The target market of our product was homeowners and grocery stores, so we catered our presentation to discuss how the device would be used as well as information about pricing. Upon completing the project, I gained an understanding of software and hardware systems and using them with external devices such as cameras.
Check out the documentation here.
For the 2017-2018 VRC In the Zone season, my team, 5327B, continually modified and rebuilt our robot throughout the season. After all, the design process is not linear, as the brainstorm phase or prototype phase can repeat after every time the robot is tested. Although we did have a number of rebuilds, we ultimately did end up sticking to one design as the main design and perfecting it for VEX Worlds. This consisted of the double reverse four bar, or two fourbars connected to create vertical motion, in order to lift the cones, and a four bar mobile goal intake. The cone intake was pneumatic in order to ensure that there would be only two positions, one where the claw was loose and one where it had a grip on the cone.
As a builder and graphic designer, I spent most of my time putting together parts of the robot such as the double reverse four bar (the lift) and the cone intake. I also made all the decal on the robot, which as you can see in the top image is on the back of the robot. I also played a critical role in writing the documentation, as I was in charge of writing the instruction manual and of delegating other teammates to work on the reference binder.
At the State level of the Chevron Design Challenge, my team was tasked with creating a microphone that minimizes external noise. The competition took place at CSU Bakersfield. Over the span of under 8 hours, we were tasked with sketching potential designs, CAD modelling the designs, creating technical drawings on Autodesk Inventor, presenting a pitch to a panel of judges. We designed a device shaped similarly to headphones with a unique foam padding on the mouthpiece to retain noise provided directly from the speaker. I was responsible for sketching, 3D modelling, setting up the pitch, and delegating tasks to my teammates while ensuring that we would complete the tasks within the time constraints.
The device we innovated is shown to the left in a number of views. At this competition, I expanded on my experience from the regional level to create a product that required even more creativity and uniqueness while still performing the required tasks.
The goal of this project was to create a functional printed circuit board while learning the intricacies of the entire circuit board creation process. I made use of the knowledge gained from digital electronics theory, applying everything from voltage laws to 555 timer circuits.
I was given the creative freedom to chose my circuit, so I chose to make an electronic synthesizer. As an individual project, I was tasked with completing the whole PCB creation process from designing the circuit on a software to masking, etching, and drilling the board, as well as soldering the components on to it. I also documented each step of my process. The process of creating the PCB itself was quite fun and rewarding, as I learned to make a functional hardware device with its own circuitry, knowledge that will be incredibly useful when making devices with practical applications.
Check out the project documentation here. The documentation includes multiple views of the final PCB and information about each step of the PCB creation process. Various views of the final printed circuit board are also shown to the left.
After making our team's reveal in 2016, I was once again appointed to making the reveal to display our robot to the world. I first began by laying out the scenes and all the important parts of the robot that needed to be displayed. I used Final Cut Pro to put together the clips and add transitions. I have worked on a number of other videos such as our Worlds recaps and state recaps, which you can check out on my YouTube channel.