Author: Pinaka
This project is a complete Portfolio & Resume Management API built using:
- ⚡ FastAPI (Backend Framework)
- 🍃 MongoDB (Database)
- 🐍 Python
- 🌐 REST API Architecture
It allows you to create and manage:
- Skills
- Projects
- User Profile
- Education
- Experience
This is essentially a backend for your personal portfolio website or resume system.
Client (CLI / Web / Mobile)
↓
FastAPI Backend
↓
MongoDB Database
↓
Structured Resume Data
Manage all your skills like:
- Python
- IoT
- Web Development
- Machine Learning
| Method | Endpoint | Description |
|---|---|---|
| POST | /skills/ | Add Skill |
| PUT | /skills/ | Edit Skill |
| DELETE | /skills/ | Delete Skill |
| GET | /skills/ | Get All Skills |
| GET | /skills/catagories | Skills by Category |
{
"name": "Python",
"category": "Programming",
"level": "Advanced"
}Store your portfolio projects.
| Method | Endpoint | Description |
|---|---|---|
| POST | /projects/ | Create Project |
| PUT | /projects/ | Edit Project |
| DELETE | /projects/ | Delete Project |
| GET | /projects/ | Get All Projects |
| GET | /projects/catagories | Projects by Category |
{
"title": "IoT Weather Station",
"description": "ESP8266 based weather tracker",
"tech_stack": ["Python", "MicroPython", "Firebase"],
"category": "IoT"
}Your core profile data.
| Method | Endpoint | Description |
|---|---|---|
| GET | /user/{user_id} | Get User Info |
| POST | /user/{user_id} | Create User Info |
| PUT | /user/{user_id} | Update User Info |
| DELETE | /user/{user_id} | Delete User |
{
"name": "Pinaka",
"email": "example@email.com",
"bio": "Developer & Educator",
"location": "India"
}Track academic details.
| Method | Endpoint | Description |
|---|---|---|
| GET | /user/education/{user_id} | Get Education |
| POST | /user/education/{user_id} | Add Education |
| PUT | /user/education/{user_id}/{edu_id} | Update Education |
| DELETE | /user/education/{user_id}/{edu_id} | Delete Education |
{
"degree": "B.Tech",
"field": "Electronics",
"institution": "Abacus Institute",
"year": "2026"
}Professional or internship experience.
| Method | Endpoint | Description |
|---|---|---|
| GET | /user/experience/{user_id} | Get Experience |
| POST | /user/experience/{user_id} | Add Experience |
| PUT | /user/experience/{user_id}/{exp_id} | Update Experience |
| DELETE | /user/experience/{user_id}/{exp_id} | Delete Experience |
{
"company": "Startup XYZ",
"role": "Backend Developer",
"duration": "6 months",
"description": "Built APIs using FastAPI"
}- Multiple modules
- Organized endpoints
- Resource-based routing
-
Relationships between:
- User → Education
- User → Experience
- User → Skills
- User → Projects
You implemented full CRUD for:
- Skills
- Projects
- User Data
- Education
- Experience
You structured APIs like real-world systems:
/user/{id}/projects//skills/
This API can directly power:
- Portfolio website
- Resume builder
- Developer profile system
- Freelance profile platform
pip install fastapi uvicorn pymongo python-dotenvCreate .env file:
MONGO_URI=your_mongodb_connection_string
uvicorn main:app --reloadhttp://127.0.0.1:8000/docs
You can use this API to build:
- 🌐 Personal Portfolio Website
- 📄 Resume Generator
- 💼 Job Profile Dashboard
- 🧑💻 Developer Portfolio SaaS
- 🎓 Student Profile System
Take it further:
- JWT login system
- User accounts
- Generate PDF resumes
- Download feature
- React / Next.js frontend
- Portfolio website UI
- Search skills/projects
- Filter by category
- Track profile views
- Project popularity
- Deploy on cloud (Render / AWS)
- Connect custom domain
Author: Pinaka