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 accountPOST /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
Personal Portfolio Backend
Personal Portfolio Backend
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.
Multi-Tenant Portfolio Platform
Multi-Tenant Portfolio Platform
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.
Resume Management System
Resume Management System
Leverage the structured data model for experiences, education, and skills to build a comprehensive resume management system with file upload capabilities.
Professional Network
Professional Network
Create a professional networking platform where users can showcase their work, projects, and credentials with built-in contact functionality.
Next Steps
Set Up Your Environment
Install Java 21, Maven, and MySQL. Follow the installation guide.
Configure the Application
Set up environment variables for database, JWT, Google Drive, and email. See configuration.
Run Your First Request
Start the server and make your first API call. Check out the quickstart guide.