Case study / Full-stack system
Personal Full-Stack Portfolio
A database-backed portfolio carried from backend services to a modern interface.
Overview
What the system is
A personal portfolio engineered with a Spring Boot REST API, a React interface, and a serverless PostgreSQL layer — featuring a dark-mode glassmorphism UI and interactive OpenAPI documentation.
Capabilities
What it does
- 01Production REST APISpring Boot 3.2.4 service with a service layer, JPA repositories, and a global exception handler.
- 02Serverless databasePostgreSQL 16 on Neon (or local Docker) with profiles, projects, skills, and contact_messages tables.
- 03Contact submissionsPOST /api/contact_messages validates and persists visitor messages.
- 04Interactive API docsSpringDoc OpenAPI exposes Swagger UI at /swagger-ui.html.
- 05Animated interfaceReact 19 + Vite 7 + Tailwind v4 client with Framer Motion and React Router v7.
- 06CI/CD pipelineGitHub Actions with Vercel (frontend) and Render (backend) deployment.
Engineering
Decisions on record
- Client
- React 19 · TypeScript · Vite 7 · Tailwind CSS v4 · Framer Motion · React Router v7.
- Server
- Spring Boot 3.2.4 · Java 21 · Spring MVC · Spring Data JPA · Jakarta Validation.
- Data
- PostgreSQL 16 via HikariCP — Neon serverless in production, Docker Compose locally.
- API
- GET /api/profile · /api/projects · /api/skills · POST /api/contact_messages.