VMC (Video Meeting Coach)
Analyzes meeting audio and expressions to flag unbalanced speaking time
PersonalFull stack (Next.js, Node.js, FastAPI) + built the deployment infrastructure2024.09 — 2024.11
Next.jsNode.jsFastAPIEC2PM2NginxGitHub Actions
Grand Prize (2024), Hansung University SW-Centered University Festival. (w/ Okestro)
About the project
Meetings are where collaboration and decisions happen, but personality differences skew who actually gets to speak — extroverts tend to dominate, introverts lose their chance to weigh in, and conclusions can end up biased toward whoever talked the most.
VMC analyzes a meeting recording’s audio to score speaking-time balance and engagement, then summarizes the discussion. It uses voice emotion analysis and facial expression analysis to give each participant feedback on how they engaged with the meeting — since the feedback comes from an AI rather than a peer, it’s much easier to accept without triggering interpersonal friction. The goal was a more evenly distributed floor and a more productive, less personality-driven meeting culture.
What I did
Owned the full stack: the Next.js frontend, the Node.js/FastAPI backend, and the deployment infrastructure — EC2, PM2, an Nginx reverse proxy, and GitHub Actions CI/CD.
Technical challenges & what I learned
Building AWS infrastructure from scratch was the biggest challenge:
- Setting up a Node.js environment on Ubuntu and managing the process with PM2
- Configuring an Nginx reverse proxy
- Wiring up GitHub Actions CI/CD end to end — push to deploy, fully automated
It was also the first time I’d run a frontend (Next.js) alongside two separate backends (Node.js and FastAPI) on a single piece of server infrastructure.
Troubleshooting
Installing PM2 via pnpm broke CI with command not found
The deploy step in the GitHub Actions workflow ran pm2 restart ... and failed with command not found. The cause: installing PM2 through pnpm doesn’t put it on the default PATH (/usr/bin/pm2). Switching the install to npm resolved the PATH issue.