Skip to content

hesamhadadi/cv

Repository files navigation

Personal CV & Portfolio

A dynamic CV / portfolio site with a full admin panel for managing projects, certificates, profile content, and incoming messages.

🌐 Live: https://cv-phi-pied.vercel.app

Features

Public

  • 🏠 Landing page with profile summary, skills, and featured projects
  • 📄 Dynamic projects & certificates sections loaded from MongoDB
  • ✉️ Contact form that stores messages in the database

Admin (/admin)

  • 🔐 JWT-based authentication with a bootstrap createAdmin script
  • 🧾 CRUD for projects, certificates, and profile details
  • 📥 Inbox view for visitor messages

Stack

Layer Tech
Framework Next.js 16 (App Router)
Language TypeScript
UI Tailwind CSS 4, Headless UI, Lucide icons
Data MongoDB + Mongoose
Auth JWT + bcrypt
UX react-hot-toast, React 19

Getting Started

npm install
cp .env.example .env.local   # fill MongoDB URI + JWT secret
npm run dev

Bootstrap an admin user

node scripts/createAdmin.js

Build & Deploy

npm run build
npm run start

Deploys cleanly to Vercel — just set the environment variables in the project settings.

Project Structure

app/             # Next.js App Router pages
components/      # UI components (Navbar, Footer, Admin*)
lib/             # db connection & helpers
models/          # Mongoose models: Profile, Project, Certificate, Message, User
scripts/         # createAdmin.js
types/           # Shared TypeScript types
middleware.ts    # Route protection

Author

Hesam Hadadi — Senior Frontend Engineer · hesamhaddadi.com

About

Personal CV & Portfolio site with admin panel for managing projects, certificates, and profile. Next.js 14 + MongoDB + NextAuth.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors