During my systems programming course (CSE 333), I created a file search system from scratch in
C/C++. Here are some of my accomplishments:
▪ Implemented a doubly-linked list and hash table in C.
▪ Recursively parsed files given a root directory to construct an inverted index data structure,
mapping each encountered word to a structure that maps matching documents to the position of the word in the document.
▪ Utilized POSIX functions to read and write the inverted index to disk in network byte order.
▪ Included file validation by storing and recalculating a checksum in each index file.
▪ Created a multithreaded web server that listens on a port and accepts client requests (concurrently) to query the search engine.
▪ Used POSIX accept(), read(), and write() functions to communicate with each client.
▪ Parsed HTTP requests and formed responses that display an HTML webpage of query results.
▪ Included network security measures to escape unsafe HTML and check for unsafe file queries.
▪ Closely followed the Google style guide for C/C++ code.
Campus Paths
During my Software Design and implementation course, I developed an interactive map of the UW campus.
Here are some accomplishments:
▪ Implemented the Graph data structure in Java and used Dijkstra's algorithm to find the shortest path between 2 buildings
▪ Used the Spark framework to create a backend server holding the algorithmic logic
▪ Communicated between the frontend React web app and the backend server using Google Gson
▪ Displayed the shortest path line on a React leaflet map
MicroManager School Planner
For virtual CodeDay, which occured in August 2020,
my team made an Android app that manages a student's
assignments in school. The student would be able to
add assignments, view them, mark them as done, set
their priority, and keep track of them overall.
My team had decided to make this project due to COVID-19
and online school, which made it difficult to keep track
of everything. Some challenges we encountered while making
this project were that we were relatively new to databases
and multiple other components of app devlepment such as lifecyles,
layouts, etc. This made this project a very big learning curve, but
it was a great way of obtaining knowledge about app development.
*UPDATE* The published version of this app is available for download.
(Credit to one of my teammates, Safwaan Taher, for publishing the finished version).
House Scout
For Dubhacks 2020 at the University of Washington, my team and I created a web-scraper Android app that found houses for the
user based on the zipcode they entered. If the user likes a house, they can click on a link to take them to an area
where they can contact the seller. To help aid the user in their decision, they can click on the image of a house
to show certain metrics about the area (based on the zipcode), such as the school test scores, median income, average
commute time, and unemployment rate. The user can also create an account with their email, which is stored in a FireBase
database. We created this app using Android and Jsoup as the HTML parser. Some challenges my team and I encountered while
creating this app were that we had to learn about Threads and the AsyncTask when making the app, which was completely new to us.
We also had to naviagte through the webpages we scraped information from, so we had to get familiar with the webpages' layout.
Overall, this was a very fun project to create and I learned a lot from it.
Dhikr App
This project was a religious tool app made on Android Studio. Many of my family members and friends
constantly reported not having a good and reliable app for Dhikr, which is a form of meditation. Thus, I created
this Android app which captures the quantity and type of meditation the user has done,
along with providing references to different types of meditation. This app was also where I started getting familiar
with data storage, as I used SharedPreferences to store the user's amount of Dhikr. A big challenge for me was
actually publishing the app to the Play Store, as it was a completely new concept for me. This app also got me excited
about app development as I saw the effect my app was having on people.
Download
Uno game
This project was a recreation of the card game UNO. It
was split into two versions over two time periods. Both versions were also
created during two separate CodeDay hackathons. The first
one was a text-based version written in Java in which my team and I had 24 hours to
create a project. It was very difficult for us as none of us had taken any programming courses,
but we managed to create a working version of UNO in which the user could play against a computer.
We also managed to win a prize in the cateogry of "Coding Excellence" for our game. The second
version of this project was during a different virtual CodeDay, where we took our text-based game
further by making it into an Android app. We were completely new to Android Studio at the time, so it
was difficult for us to get started, but it ended up being a very fun project as we saw out text-based game
turn into one with a UI.
Personal Webpage
This project was creating a personal website for myself, which you are viewing right now! It was my first real dive
into HTML and CSS, giving me lots of insight on how to create webpages. I learned about responsive web design, different
HTML elements, CSS properties and styling, and more. It was also a good venue for displaying things about me and what
projects I have worked on.