โ๏ธ Written by: Chaitanya Chopde
๐ซchaitanyachopde14@gmail.com
Inspired By: @devsyncin
๐ Introduction
Creating a professional portfolio website is one of the best ways to showcase your skills as a developer. In this tutorial, Iโll walk you through how to build and run a full-featured portfolio website using:
โ Java (Spring Boot backend)
โ HTML, CSS, JavaScript frontend
โ Maven for project management
โ VS Code as the IDE
By the end, youโll have a fully functional portfolio with a working contact form, animations, and a clean modern UI.
๐งฐ Tools & Tech Stack
- Java 17+
- Spring Boot 3.x
- Maven
- HTML/CSS/JavaScript
- VS Code
- Chocolatey (optional)
- Windows OS
๐ง Step 1: Install Prerequisites
โ
Install Java 17
Using Chocolatey (fastest method):
โ
Verify Java & Maven
Open PowerShell or CMD:
๐ Step 2: Project Structure
๐ผ๏ธ Step 3: Frontend Code
index.html
script.js
โ๏ธ Step 4: Backend with Spring Boot
ContactController.java
PortfolioBackendApplication.java
๐ Step 5: Run the Website
๐ป Backend (Java)
Open backend folder โ Terminal:
Backend runs at:
http://localhost:8080
๐ Frontend (HTML)
Use Live Server in VS Code:
Right-click index.html โ "Open with Live Server"
Form submits to backend โ You get a success alert โ
๐งช Testing
- Run backend
- Run frontend
- Submit contact form โ Check terminal logs
- ๐ Your full-stack portfolio is working!
๐ ๏ธ Common Errors
- โ mvn not recognized Maven isnโt in your PATH
Fix: Add C:\path\to\maven\bin to Environment Variables โ Path
- โ CORS Error Add @CrossOrigin(origins = "*") in your controller
๐ Future Upgrades
- Add Resume Upload
- Dark/Light Theme Toggle
- Database for storing messages
- Deploy backend (Render) and frontend (Vercel)
๐ Final Notes
Building your own portfolio from scratch using Java + HTML is a great learning experience. You learn how frontend talks to backend, how to build REST APIs, and how to deploy projects.
๐ Inspired by @devsyncin
Special thanks to @devsyncin community for inspiring clean code, full-stack clarity, and real-world deployment skills.
Top comments (0)