Projects

AI-Companion

Dec 2025 - Present

  • Developed a cross-platform mobile application using React Native (Expo) to create an interactive AI dialogue system, featuring a historical "Qin Shi Huang" persona.
  • Designed high-fidelity UI/UX in Figma, creating a modular interface with 5 distinct interaction modes (Historical, Coaching, Emotional Support) to enhance user engagement.
  • Built a FastAPI backend with JWT-based authentication (bcrypt password hashing, token issuance/validation) and a layered service architecture (routes → services → data access) to support user registration, login, and profile management.
  • Implemented the data layer with raw SQL first, then migrated it to SQLModel ORM (PostgreSQL) with Alembic-managed migrations — improving type safety and maintainability while retaining hands-on SQL experience.
  • Built a /chat/completions endpoint integrating Google's Gemini API via the Agent Development Kit (ADK), using a stateless LlmAgent + async Runner to generate persona-constrained AI responses while normalizing and injecting multi-turn conversation history into each prompt.
  • Containerized the backend with Docker to standardize local development and deployment.
  • Constrained AI persona behavior via prompt engineering and a stateless agent-session design, isolating conversation state per request while injecting historical context into the LLM prompt.
PostgreSQLFastAPISQLModelAlembicReact NativeFigma (Software)DockerGoogle Gemini API

Bookmark Manager

Jul 2026 - Aug 2026

  • Built a FastAPI backend with JWT authentication (pyjwt + bcrypt) and a SQLModel/Alembic-managed PostgreSQL schema, following the same layered architecture pattern as AI Companion.
  • Designed a many-to-many relational schema (Bookmark ↔ Tag via join table) with per-user uniqueness constraints and ownership-scoped access control.
  • Wrote a pytest suite covering full CRUD and cross-user ownership checks, using SQLAlchemy's nested-transaction/savepoint pattern (join_transaction_mode="create_savepoint") to roll back every test against a real Postgres instance instead of mocking the database.
  • Set up a GitHub Actions CI pipeline that spins up a throwaway Postgres service container, runs Alembic migrations, and executes the test suite on every push/PR.
  • Deployed the full stack across three free-tier providers (Neon for Postgres, Render for the FastAPI backend, Vercel for the React/Vite frontend), handling production-specific issues: idempotent migrations on boot (no shell access on free tier), CORS origin configuration, and SPA rewrite rules for client-side routing.
FastAPISQLModelAlembicPostgreSQLpytestGitHub ActionsReactVite

Personal Portfolio Website

Jul 2026 - Jul 2026

  • Built a personal resume/portfolio website from scratch using Next.js (App Router), React, and TypeScript.
  • Structured content as typed TypeScript data modules (profile, skills, contact, internships, projects), separated from route pages and reusable components to keep the codebase data-driven.
  • Implemented file-based routing across Home, About, Internship, and Projects pages using next/link navigation.
  • Styling the site with Tailwind CSS for a responsive, dark-mode-aware layout.
  • Deployed the site to Vercel with continuous deployment from GitHub.
Next.jsReactTypeScriptTailwind CSSVercel