Migrate projects to the new format
This commit is contained in:
19
_notes/cmes-mobile.md
Normal file
19
_notes/cmes-mobile.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: CMES Mobile App
|
||||
---
|
||||
|
||||

|
||||
|
||||
**App development project for volunteer organization Techies Without Borders.** I helped implement the CMES mobile app, facilitating the download, viewing and playback of medical education content in resource-constrained countries.
|
||||
|
||||
In the early stages, I built the download screen and business logic, the PDF viewer integration, and background audio playback using native code. Later, I built the native web view to integrate with the [CMES-Pi](https://cmesworld.org/cmes_product-Pi.html) solution, simplifying the business logic while adding support for future edge platforms.
|
||||
|
||||
The app's front-end uses Capacitor and Angular, with several Capacitor plugins in Swift + Java to bundle native functionality.
|
||||
|
||||
This app is actively used in medical facilities in Uganda and Nepal, to name a few.
|
||||
|
||||
[App Store](https://apps.apple.com/us/app/cmes/id1276335909){: .primary-action }
|
||||
[Google Play](https://play.google.com/store/apps/details?id=org.cmesworld.www.cmes_piandroid_app){: .primary-action }
|
||||
[Techies Without Borders](https://techieswithoutborders.us/){: .secondary-action }
|
||||
[CMES Project](https://cmesworld.org/){: .secondary-action }
|
||||
{: .horizontal-wrapper }
|
||||
20
_notes/dont-wake-sandie.md
Normal file
20
_notes/dont-wake-sandie.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Don't Wake Sandie
|
||||
---
|
||||
|
||||
<iframe style="width: 100%; height: 400px; border-radius: 1px; pointer-events: auto; background-color: white;" src="https://www.linkedin.com/embed/feed/update/urn:li:activity:7274629268624551936?compact=true" frameborder="0" sandbox="allow-scripts allow-popups allow-top-navigation-by-user-activation allow-forms allow-same-origin allow-storage-access-by-user-activation allow-popups-to-escape-sandbox" allowfullscreen=""></iframe>
|
||||
|
||||
**A game about not waking up a hungover corgi named Sandie.** Gather 2-4 people,
|
||||
roll to determine order, and take turns to pet Sandie. Don’t wake her
|
||||
up…*or else*.
|
||||
|
||||
I worked on gameplay programming in Unity, and collaborated with
|
||||
[Nicole Citardi](https://www.linkedin.com/in/nicole-citardi-16104a222/),
|
||||
[Veronica Lan](https://www.linkedin.com/in/veronicalan/), and
|
||||
[Daniel Ahn](https://www.linkedin.com/in/daniel-ahn-bb2326262/) to coordinate
|
||||
UI development, artwork integration, and version control. There were so many
|
||||
moving parts, and I really aimed to get as much input for the gameplay design
|
||||
as I could from the team.
|
||||
|
||||
[itch.io (play the game!)](https://bchendev.itch.io/dont-wake-sandie){: .primary-action }
|
||||
{: .horizontal-wrapper }
|
||||
15
_notes/interchange.md
Normal file
15
_notes/interchange.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Interchange
|
||||
---
|
||||
|
||||

|
||||
|
||||
**An iOS app for college transit, currently available for Chapman University.**
|
||||
View routes, shuttle locations, and estimated arrival times in a sleek,
|
||||
easy-to-use interface. I built this app using SwiftUI, Node.js and Apollo
|
||||
GraphQL, with Redis as a primary storage mechanism.
|
||||
|
||||
[Download on the App Store](https://apps.apple.com/us/app/interchange-college-commute/id6739968742){: .primary-action }
|
||||
[Join the TestFlight](https://testflight.apple.com/join/HbuHfUgW){: .secondary-action }
|
||||
[Website](https://interchange.bchen.dev/){: .secondary-action }
|
||||
{: .horizontal-wrapper }
|
||||
16
_notes/power-to-the-people.md
Normal file
16
_notes/power-to-the-people.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Power to the People
|
||||
---
|
||||
|
||||

|
||||
|
||||
**An iPhone app designed to make traffic stops safer for marginalized communities.** Record interactions with police, assign and text emergency contacts, and be informed of your rights. I worked in a student team of 4, including [David Sohn](https://www.linkedin.com/in/sohn-david/), [Jacob Zamore](https://www.linkedin.com/in/jacob-zamore/), and [Patrick Smith](https://www.linkedin.com/in/patrick-smith-ld/), to prototype and build a proof of concept in 36 hours. The app was selected for the **President's Pick award** at [CruzHacks 2024](https://cruzhacks.com/), the premier hackathon of UC Santa Cruz.
|
||||
|
||||
|
||||
[GitHub](https://github.com/brendan-ch/PowerToThePeople){: .primary-action }
|
||||
[Devpost](https://devpost.com/software/power-to-the-people-lbhxyd){: .secondary-action }
|
||||
{: .horizontal-wrapper }
|
||||
|
||||
My contribution was the iOS app prototype, of which a demo is shown below. I built the primary user flow of recording a police interaction, simultaneously using the front and back iPhone cameras to capture all angles. Activating the recording also displays the "Know Your Rights" screen, displaying basic dos and don'ts. Finally, I built a way to view previous recordings and share the files using the iOS share sheet.
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Un8JWXkpcW4?si=CfQ0qOuUjSpas0ny&start=89" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
|
||||
39
_notes/projects.md
Normal file
39
_notes/projects.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Projects
|
||||
---
|
||||
|
||||
## Games
|
||||
|
||||
- [[Resonance]]
|
||||
- **IEEE GameSig Finalist**, 2026
|
||||
- A cyberpunk-themed game show shooter.
|
||||
- [[Don't Wake Sandie]]
|
||||
- A game about not waking up a beloved hungover corgi
|
||||
|
||||
## Personal
|
||||
|
||||
- [[Interchange]]
|
||||
- An iOS app for college transit, now on the App Store!
|
||||
- [[Timestamp]]
|
||||
- An unintrusive, open source Pomodoro timer for macOS.
|
||||
- [[Sourcebook]]
|
||||
- A lightweight content management system (CMS) for class websites.
|
||||
|
||||
## Hackathons
|
||||
|
||||
- [[teech.ai]]
|
||||
- Cal Hacks 12.0
|
||||
- A tutoring app to make education more accessible, built with SwiftUI and Gemini Vision API.
|
||||
- [[Power to the People]]
|
||||
- **President's Pick**, CruzHacks 2024
|
||||
- An iOS app designed to make traffic stops safer for marginalized communities.
|
||||
|
||||
## Work
|
||||
|
||||
- [[The Farmer's Dog Trivia Game]]
|
||||
- A Windows kiosk application designed to connect customers with the Farmer's Dog experience.
|
||||
|
||||
## Community
|
||||
|
||||
- [[CMES Mobile App]]
|
||||
- One of my earliest projects. A cross-platform mobile app to deliver educational medical content to end users, part of [Techies Without Borders](https://techieswithoutborders.us/).
|
||||
19
_notes/resonance.md
Normal file
19
_notes/resonance.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Resonance
|
||||
---
|
||||
|
||||

|
||||
|
||||
Resonance is a cyberpunk-themed game show shooter. Enter the arena, blast your opponents, and become the star of the show. I worked with a student team of 12 to create this game over multiple months. The game was selected as an **IEEE GameSig finalist**.
|
||||
|
||||
*Steam link coming soon!*
|
||||
|
||||
My core role was to implement the game's networking logic using PurrNet, an open-source library for Unity.
|
||||
|
||||
My first project was to implement networking for **Arena**, a free-for-all PVP game mode, where the player with the most eliminations wins. I learned how to isolate game logic on the server and synchronize state on each client. The networked API for Arena is used by every aspect of the game, including the scoreboard UI and spotlight mechanic. Following a pivot in the game’s core direction, I successfully handed this system to another engineer, who implemented a rating system for style points.
|
||||
|
||||
Another project was the **build system**. Having a server dependency and Steam integration meant that the environment differed from development to production. We found it painful to prepare a build for each class-mandated playtest. With the help of Claude, I created a two-step system: an editor script to build and configure dependencies in one step, and a nightly GitHub Actions pipeline. Besides simplifying the build process, this created another positive side effect by ensuring we fixed compiler issues proactively.
|
||||
|
||||
I'm currently working on a client-side prediction model to match other FPS games on the market.
|
||||
|
||||
Even with our team size, the most important thing I learned was how to manage scope and scale. Each one of us pushed ourselves to the limits of our knowledge, going from bare theoretical understanding to practical working implementations. The goal was never to get things right on the first try; it was to learn and realize new ideas in multiple passes.
|
||||
16
_notes/sourcebook.md
Normal file
16
_notes/sourcebook.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Sourcebook
|
||||
---
|
||||
|
||||

|
||||
|
||||
**A lightweight content management system (CMS) designed to build class
|
||||
websites.** I designed it to be a self-hosted alternative for popular apps like
|
||||
Notion, while offering additional features tailored to support schoolwork.
|
||||
|
||||
I designed an entity-relationship diagram, MySQL database schema, and HTML/CSS
|
||||
high-fidelity prototype to support the project and show to professors. I then
|
||||
built a lightweight full-stack application using Python, Flask, and MySQL.
|
||||
|
||||
[GitHub](https://github.com/brendan-ch/sourcebook){: .primary-action }
|
||||
{: .horizontal-wrapper }
|
||||
20
_notes/tad-pool.md
Normal file
20
_notes/tad-pool.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Tad-Pool
|
||||
---
|
||||
|
||||

|
||||
|
||||
**A mobile app designed to make carpooling easier for college students.** Find
|
||||
carpools based on time and location, and get rewarded for helping to reduce CO2
|
||||
emissions. I worked with [Jazmine Stanek](https://www.linkedin.com/in/vjazminestanek/)
|
||||
and [Isabelle Woo](https://www.linkedin.com/in/isabellewoo/) to create the UI/UX
|
||||
design using Figma and FigJam, in a period of 24 hours for
|
||||
[FullyBeyond 2024](https://fullybeyond.acmcsuf.com/).
|
||||
|
||||
The project reached the finalist judging stage.
|
||||
|
||||
[High-fidelity design](https://www.figma.com/design/nTKCcwftKrg27wlP5mmy9e/Tad-Pool-Design?node-id=13-1837&node-type=canvas&t=YKuVvM6RAPs4hTIo-11){: .primary-action }
|
||||
[Low-fidelity design](https://www.figma.com/design/nTKCcwftKrg27wlP5mmy9e/Tad-Pool-Design?node-id=0-1&node-type=canvas&t=YKuVvM6RAPs4hTIo-11){: .secondary-action }
|
||||
[FigJam board](https://www.figma.com/board/Dct7GuhKFYq8maw0KoAVBV/Product-Brainstorm-FullyBeyond?node-id=0-1&node-type=canvas&t=g7RKLLo5IoU84ndk-11){: .secondary-action }
|
||||
[Devpost](https://devpost.com/software/tad-pool){: .secondary-action }
|
||||
{: .horizontal-wrapper }
|
||||
18
_notes/teech-ai-cal-hacks-12.md
Normal file
18
_notes/teech-ai-cal-hacks-12.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: teech.ai
|
||||
---
|
||||
|
||||
<iframe width="100%" height="480" src="https://www.youtube-nocookie.com/embed/luVIdLB9id0?si=1sTE9Z3MeyWntRmd" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
|
||||
|
||||
**A proof-of-concept tutoring app for students learning math.** Using the phone camera, the app sees and understands math problems, guiding students through problems with hints and step-by-step questions. We added text-to-speech (TTS) to give our app a voice, further engaging students and making it feel like a more personal experience.
|
||||
|
||||
[Tri Vu](https://www.linkedin.com/in/tri-q-vu/) built a web interface prototype and Python-based backend utilizing the Gemini Vision API and Fish Audio for TTS.
|
||||
|
||||
I built a native proof-of-concept using SwiftUI, AVFoundation, and other native frameworks. In the app, I built a chat and camera interface, integrating with Tri's backend by sending image and prompt data. Swiping to the right reveals the user's chat history, which is also continuously synced with the backend. Design-wise, I decided to use this gesture-based approach in order to bring the camera interface front and center.
|
||||
|
||||
The app was built in 48 hours for **Cal Hacks 12.0**, the world's largest collegiate hackathon.
|
||||
|
||||
[GitHub](https://github.com/brendan-ch/teecher-ios){: .primary-action }
|
||||
[Devpost](https://devpost.com/software/teech-ai){: .secondary-action }
|
||||
[Cal Hacks](https://www.calhacks.io){: .secondary-action }
|
||||
{: .horizontal-wrapper }
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Another note"
|
||||
---
|
||||
|
||||
[[test]]
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
title: "Hello World"
|
||||
---
|
||||
|
||||
Hello World
|
||||
|
||||
==This is some highlighted text==
|
||||
18
_notes/the-farmers-dog-trivia.md
Normal file
18
_notes/the-farmers-dog-trivia.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: The Farmer's Dog Trivia Game
|
||||
---
|
||||
|
||||

|
||||
|
||||
**A Windows kiosk application designed to connect customers with the Farmer's
|
||||
Dog experience.** Play the interactive trivia game, score points, and win swag!
|
||||
I worked with [Walter Cheng](https://www.linkedin.com/in/walter-j-cheng/) to
|
||||
plan out dependencies and requirements, set up the codebase, and implement the
|
||||
screens for the app using React Native for Windows.
|
||||
|
||||
"I’ve worked with Brendan for many years, and he is the first person I turn to
|
||||
for web/app development. He’s knowledgeable and efficient, and his task
|
||||
management skills make him an ideal project member." — Walter Cheng, project overseer
|
||||
|
||||
[The Farmer’s Dog](https://thefarmersdog.com/){: .primary-action }
|
||||
{: .horizontal-wrapper }
|
||||
11
_notes/timestamp.md
Normal file
11
_notes/timestamp.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Timestamp
|
||||
---
|
||||
|
||||

|
||||
|
||||
A simple, unintrusive Pomodoro timer for macOS which lives in the menu bar. I built it with SwiftUI and made it open source.
|
||||
|
||||
[Download the app](https://github.com/brendan-ch/timestamp/releases){: .primary-action }
|
||||
[View the code](https://github.com/brendan-ch/timestamp){: .secondary-action }
|
||||
{: .horizontal-wrapper }
|
||||
Reference in New Issue
Block a user