Skip to main content

Welcome to Portfolio Hub API

Portfolio Hub API is a comprehensive backend solution built with Spring Boot 3 that enables developers to create, manage, and publicly expose professional portfolios. Whether you’re building a personal portfolio site or a multi-tenant platform, this API provides all the tools you need.

Quick Start

Get up and running with Portfolio Hub API in minutes

API Reference

Explore the complete API documentation

Authentication Guide

Learn about JWT-based authentication

Deploy with Docker

Deploy your API in a containerized environment

Key Features

JWT Authentication

Secure your API with Spring Security and JSON Web Tokens

Portfolio Management

Complete CRUD operations for profiles, experiences, education, projects, skills, and certificates

Google Drive Integration

Upload and manage files (avatars, resumes, project covers) directly to Google Drive

Public API

Expose portfolios publicly for frontend consumption without authentication

Email Notifications

Send contact form emails via SMTP integration

Database Migrations

Manage schema changes with Flyway migrations

Architecture Overview

Portfolio Hub API is built with modern Java technologies:
  • Spring Boot 3 - Core framework with dependency injection and auto-configuration
  • Spring Security 6 - JWT-based authentication and authorization
  • Spring Data JPA - Object-relational mapping with Hibernate
  • MySQL - Relational database for persistent storage
  • Flyway - Version-controlled database migrations
  • Google Drive API - Cloud storage for uploaded files
  • MapStruct - Type-safe DTO mapping
  • Lombok - Reduced boilerplate code

API Endpoints

The API is organized into several logical groups:

Authentication

Register new users and authenticate with JWT tokens.
  • POST /api/auth/register - Create a new user account
  • POST /api/auth/login - Authenticate and receive a JWT token

Portfolio Management

Authenticated endpoints for managing your portfolio (/api/me/**).
  • Profile, Experience, Education
  • Certificates, Projects, Skills
  • Social Links

Public Endpoints

Publicly accessible endpoints for viewing portfolios (/api/portfolios/**).
  • List all portfolios
  • View portfolio details
  • View project details
  • Submit contact forms

Use Cases

Use Portfolio Hub API as the backend for your personal portfolio website. Manage your professional information through authenticated endpoints and expose it publicly for your frontend.
Build a platform where multiple users can create and manage their own portfolios. Each user gets their own authenticated space while their portfolios remain publicly accessible.
Leverage the structured data model for experiences, education, and skills to build a comprehensive resume management system with file upload capabilities.
Create a professional networking platform where users can showcase their work, projects, and credentials with built-in contact functionality.

Next Steps

1

Set Up Your Environment

Install Java 21, Maven, and MySQL. Follow the installation guide.
2

Configure the Application

Set up environment variables for database, JWT, Google Drive, and email. See configuration.
3

Run Your First Request

Start the server and make your first API call. Check out the quickstart guide.
4

Explore the API

Dive into the full API reference to understand all available endpoints and their parameters.

Build docs developers (and LLMs) love