Portfolio — Data Models
This page documents the database schemas for the Portfolio module. Understanding these models helps when building external integrations.
Profile
The main profile entity for a portfolio.
| Field | Type | Description |
|---|---|---|
| id | integer | Primary key |
| projectId | integer | Parent project |
| userId | integer | Owner |
| firstName | text | First name |
| lastName | text | Last name |
| title | text | Professional title |
| bio | text | Biography/about text |
| avatarUrl | text | Profile image URL |
| location | text | Location |
| text | Contact email | |
| phone | text | Phone number |
| website | text | Personal website URL |
Projects
Portfolio projects/works.
| Field | Type | Description |
|---|---|---|
| id | integer | Primary key |
| profileId | integer | Parent profile |
| title | text | Project name |
| description | text | Project description |
| imageUrl | text | Cover image |
| projectUrl | text | Live project URL |
| githubUrl | text | Source code URL |
| technologies | jsonb | Array of tech names |
| featured | boolean | Featured project flag |
| startDate | timestamp | Project start date |
| endDate | timestamp | Project end date |
| sortOrder | integer | Display order |
Skills
Professional skills with categories and proficiency levels.
| Field | Type | Description |
|---|---|---|
| id | integer | Primary key |
| profileId | integer | Parent profile |
| name | text | Skill name |
| category | text | Skill category (e.g., "Frontend", "Backend") |
| level | integer | Proficiency 1-100 |
| icon | text | Icon identifier |
| sortOrder | integer | Display order |
Experiences
Work experiences.
| Field | Type | Description |
|---|---|---|
| id | integer | Primary key |
| profileId | integer | Parent profile |
| company | text | Company name |
| position | text | Job title |
| description | text | Role description |
| location | text | Work location |
| startDate | timestamp | Start date |
| endDate | timestamp | End date (null = current) |
| isCurrent | boolean | Currently employed |
Testimonials
Client or colleague testimonials.
| Field | Type | Description |
|---|---|---|
| id | integer | Primary key |
| profileId | integer | Parent profile |
| authorName | text | Testimonial author |
| authorTitle | text | Author's title |
| authorCompany | text | Author's company |
| authorAvatar | text | Author's photo URL |
| content | text | Testimonial text |
| rating | integer | Rating 1-5 |
Social Links
| Field | Type | Description |
|---|---|---|
| id | integer | Primary key |
| profileId | integer | Parent profile |
| platform | text | Platform name (github, linkedin, twitter...) |
| url | text | Profile URL |
| icon | text | Icon identifier |
| sortOrder | integer | Display order |