Ledgerly
Family/organization shared finance management app — Next.js 16 fullstack, Supabase PostgreSQL, 3-tier RBAC (OWNER/ADMIN/MEMBER), NestJS Cron recurring transaction automation, 99.45% line coverage unit tests + 300+ E2E integration tests
Collection of personal and team projects
Family/organization shared finance management app — Next.js 16 fullstack, Supabase PostgreSQL, 3-tier RBAC (OWNER/ADMIN/MEMBER), NestJS Cron recurring transaction automation, 99.45% line coverage unit tests + 300+ E2E integration tests
Logistics dispatch data service crawling with Cheerio, queryable via KakaoTalk chatbot skill server and Next.js mobile web — Clean Architecture + TSyringe DI, Express 5, Prisma SQLite, Traefik Blue-Green zero-downtime deployment
Bot that crawls weekly cafeteria menus from Kakao Channel via Playwright and auto-delivers to Slack — Clean Architecture + TSyringe DI, Slack Bot API slash command, up to 6 retries, DeliveryHistory duplicate prevention
Concert seat reservation service built during Hanghae Plus Backend course, focusing on concurrency control and high-traffic handling
Serverless backend service that automatically collects job postings from 4 university hospitals and delivers keyword-based email notifications
Startup vertical network platform integrating team building, community, and information services — responsible for 4-provider social login, community backend, and admin system
Slack backend clone project for learning NestJS module system and DI/IoC patterns — implemented Socket.io real-time messaging, Passport session authentication, and TypeORM relational data modeling
Full-stack Twitter-like SNS clone built with Next.js SSR — Redux-Saga async state management, Passport session authentication, Sequelize relational modeling, and AWS Lambda image resizing pipeline
Multi-user real-time chat application built with TCP/IP socket programming and multi-threading — custom text protocol design, per-client thread management, and tkinter event loop integrated with socket threads
OP.GG clone project integrating Spring Boot with Riot Games API for summoner match history, live game info, and Challenger ranking — server-side API calls via HttpURLConnection, client-side data rendering with jQuery AJAX, and MyBatis-based summoner data persistence