TasteBook—Recipe Sharing App: Senior Capstone Project

I built TasteBook, a cross-platform mobile application in Kotlin that lets users save, organize, and share family recipes across iOS and Android. The front end is written in Kotlin using Compose Multiplatform and Jetpack Compose UI; the back end is powered by a Ktor-based RESTful API that handles CRUD operations on recipes, user authentication, photo uploads, inventory management, and automated grocery-list generation. As an international student, I designed TasteBook to go beyond borders of time and place, enabling students like me to preserve their family's cooking traditions. From defining data models and writing JSON serializers to implementing coroutines for asynchronous network calls, this project encompassed end-to-end mobile and server development, version control, and iterative user-centered design.

Through TasteBook, I tackled every phase of a solo software project—requirements gathering, architecture design, implementation, testing, and deployment—gaining deep problem-solving experience in Kotlin mobile development. Learning mobile application dev and Kotlin was a huge learning curve for me. Designing the app’s layered architecture and data flows reinforced my object-oriented software design skills and my ability to work across multiple paradigms and languages (Compose UI, Ktor server, JSON). Integrating the mobile client with the operating system, network, and persistent storage sharpened my system-level understanding of how programs interface with OS and network layers. University-wide, crafting custom UI layouts and user flows honed my creativity; planning feature interactions and handling edge-case errors honed my critical thinking; building intuitive screens strengthened my communication through visual design; and the app’s mission of preserving cultural food practices embodied global responsibility. This capstone reflects both my robust technical competencies and a commitment to the broader learning goals of Westminster’s school-wide and CS program.

Link to github

TasteBook Chicken Curry Recipe
TasteBook Add Recipe Screen TasteBook Add Photos in the Recipe Screen

Computer Networks - Chatroom Protocol

For my Computer Networks course, I collaborated with Makenna Worley and two other classmates to design our own custom chatroom protocol from the ground up, drawing inspiration from HTTP/HTTPS but defining every header field, length indicator, and checksum ourselves. I built the Java Swing client— using Maven to manage builds and dependencies—and implemented the socket-level logic to format and send messages according to our specification. On the server side, Makenna wrote a Rust server application that spawns a thread pool to handle concurrent connections, parse incoming packets, and broadcast chat messages. Through iterative integration testing and careful error handling, we ensured that our end-to-end system reliably supported real-time, full-duplex messaging.

Working side-by-side on this protocol sharpened several of my Westminster learning goals. Collaborating with Makenna reinforced my clear technical communication skills Crafting a layered protocol design and a user-friendly Swing interface tapped into my creativity, as I translated abstract requirements into concrete packet structures and intuitive screens. This project not only strengthened my collaborative development skills but also gave me real-world, system-level networking and concurrent-programming experience.

Link to github

Chatroom Client Test Messages Screenshot

Summer Research Project - CircuitCraft

Over Summer 2024, I worked on a Summer Research Project with my faculty Kathryn Lenth and classmate Makenna Worley to create CircuitCraft. CircuitCraft is a user-friendly web application that simplifies the creation and supports students’ understanding of circuit diagrams. By making this process more accessible and educational, this project will help future CMPT 328: Computer Architecture students improve their circuit diagram comprehension. For this project, I expanded upon my knowledge in React, and learned about and implemented the React Flow library. I was the designated git person for merging and I realized I love merge conflicts because it provides a good challenge! I am excited for this application to be used as an educational tool by future Westminster Computer Science students.

This research experience addressed several key learning goals. On the Computer Science side, collaborating with Kathy and Makenna gave me significant project experience in both individual contributions (designing core React components and flow logic) and group settings (coordinating merges, resolving conflicts, and defining feature requirements). It also deepened my proficiency in object-oriented and event-driven programming through hands-on use of modern web technologies. University-wide, designing intuitive UI flows and integrating complex libraries tapped into my creativity, resolving merge conflicts and maintaining a shared codebase strengthened my collaboration, crafting component documentation and demos improved my communication, and troubleshooting intricate React Flow behaviors honed my critical thinking. This summer research was an amazing experience and taught me to apply theoretical concepts in a practical, educational context.

https://cs.westminsteru.edu/~kathy/circuitcraft/

Landing Page for CircuitCraft
Poster Presentation At The End of Summer Research

Web Development and Publications Intern - Summer 2024

Over Summer 2024, I worked with the Registrar’s Office and Office of Marketing and Communication on a custom internship; I noticed issues within the coding of Academic Catalog, and proposed an internship opportunity to fix the accessibility issues.

For this internship, I worked on resolving bugs related to website responsiveness, functionality, and user experience. As I was given the freedom to self-direct, I got to experiment with different optimization strategies. I then utilized regular expressions to clean up the code. By working on Search Engine Optimization (SEO) through page titles, I contributed to the challenge of improving the site score; the overall site score for the Academic Catalog went from an 85 to a high of 92! (see images)

Academic Catalog - Westminster University

Insights before Internship
Insights after Internship

Software Engineering - Project

For my Software Engineering class, I was on a team of four people and we worked on a game designed to help students practice the basic mathematical concepts of one and two digit addition and subtraction that they have been learning in their classes. Our main/primary users for this game are the 1st and 2nd grade (6 and 7-year-olds) students. We formatted our game as a web application by using Fresh as our full-stack web framework that interacts with Deno Deploy as the distributed platform for our serverless JavaScript application, so I learned React, TypeScript, and JavaScript for this project. Through this assignment, I demonstrated the CS learning goal of acquiring significant project experience in both individual and group settings and sharpened my proficiency in multiple programming paradigms—crafting client-side React components and configuring a serverless back end on Deno Deploy.

I learnt more about version control through git as well as Agile methodologies. We went through three iterations and simulated a professional work environment in the classroom. Facilitating stand-up meetings every class and stepping in to resolve team miscommunications strengthened my communication skills and reinforced my adaptability—key aspects of Westminster’s Collaboration goal. Iterating on our game’s features and resolving merge conflicts demanded critical thinking as I analyzed user feedback and technical constraints, and tapping into fresh UI ideas engaged my creativity to make the math practice both fun and educational for young learners.

https://junglegenius.deno.dev/

Landing Page for Jungle Genius

Web Applications - Project

For my Web Applications class, I was part of a development team collaborating with Communications majors who led the design effort to build a website for Jenna White, owner of Empire Body Waxing in Salt Lake City, UT. Empire Body Waxing is a membership-based waxing salon committed to encouraging body inclusivity and connecting communities. Our application showcases her services, streamlines the membership process, and improves accessibility with clear navigation and responsive layouts. I got the opportunity to learn the Django framework by building models, views, and templates tied to a PostgreSQL database, and we relied on Git for version control to coordinate feature branches and pull requests.

Working side by side with Communications majors and a real‐world client strengthened both my technical and interpersonal skills. Translating Jenna’s business goals into technical requirements sharpened my communication as I learned to ask the right questions and write clear user stories. Coordinating code merges and etiquette around Git branches reinforced collaboration and exposed me to professional team workflows. Prototyping intuitive page flows demanded creativity, while adapting Django’s ORM and template language to meet accessibility standards involved critical thinking. This project not only broadened my web development toolkit but also embodied Westminster’s emphasis on teamwork and effective communication.

Empire Body Waxing – https://empirebodywaxing.pythonanywhere.com/

The contact us page of the website

Databases - Final Project

For my Databases final project, I developed a web-based application using Python, Flask, HTML, CSS, Jinja templates, JavaScript, and SQL to serve as a rent-management system for a small library. Library staff can log in to check customers out for books they wish to rent, track due dates, and generate reports on book rentals, customer activity, and genre statistics. I designed the database schema to be fully normalized, implemented RESTful API endpoints for CRUD operations on books and rentals, and used Flask’s routing and template engine to render dynamic pages. Building this from the ground up gave me hands-on experience translating class lectures on relational design and SQL querying into a working full-stack application.

This project demanded both critical thinking and creativity. Crafting an efficient, normalized schema required careful analysis of entity relationships and edge cases—such as handling multi-genre titles—while designing intuitive Jinja-based interfaces and report pages let me flex my creative skills in presenting complex data clearly. Overall, applying theoretical database concepts to this real-world scenario solidified my understanding of backend development and REST principles while demonstrating the core learning goals of problem solving and effective software design.

Github link to code

Home Databases
Checkout Databases

Dear Asian Youth Kathmandu

I had the pleasant opportunity to make a website for the organization "Dear Asian Youth Kathmandu". I got to know more about the wordpress codes while turning the static HTML files into a custom wordpress theme. The custom wordpress theme was made to suit the needs of my client as they would have to frequently upload articles and posts on the website without any knowledge in HTML.

It is great being able to get feedbacks in real time and getting to implement that.

daykathmandu.c1.biz

DAY cover