🌐 Live Site: https://wubamlakg.netlify.app
A modern, full-stack developer portfolio built to showcase projects, skills, and professional experience with a dynamic admin-managed content system.
This application serves as a personal portfolio and content management platform. It features a polished dark-themed frontend with smooth animations and a RESTful backend API that powers all dynamic content including projects, skills, work experiences, contact messages, and resume management.
- Dynamic project showcase with detailed project pages, tech tags, and key feature highlights
- Skills management with category grouping and proficiency tracking
- Work experience timeline with role descriptions and date ranges
- Contact form with email notification support via Nodemailer
- Resume upload and download functionality
- Secure admin dashboard for full content management (JWT-protected)
- Responsive design optimized for desktop, tablet, and mobile
- Smooth animations and micro-interactions powered by Framer Motion
- State management with Redux Toolkit and RTK Query for efficient data fetching
- React 19
- Tailwind CSS v4
- Framer Motion
- Redux Toolkit with RTK Query
- React Router v7
- Node.js
- Express 5
- PostgreSQL with Sequelize ORM
- JWT authentication
- Multer, Bcrypt, and Nodemailer
- Node.js 18+
- PostgreSQL 14+
git clone https://github.com/Zwubman/portfolio.git
cd portfolio
cd backend
npm install
Create a .env file in the backend/ directory and define the required values:
PORT=5000
DB_NAME=portfolio_db
DB_USER=your_postgres_user
DB_PASS=your_postgres_password
DB_HOST=localhost
DB_PORT=5432
JWT_SECRET=your_jwt_secret_key
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_email_app_passwordnpm start
For development:
npm run dev
cd frontend
npm install
Create a .env file in the frontend/ directory:
VITE_API_URL=http://localhost:5000/apinpm run dev
For production build:
npm run build
npm start- start the API servernpm run dev- run the server with nodemon
npm run dev- start Vite dev server with HMRnpm run build- create production buildnpm run preview- preview production buildnpm run lint- run Oxlint
frontend/src/components/sections/- HeroSection, AboutSection, SkillsSection, ProjectsSection, ExperienceSection, ContactSectionfrontend/src/components/layout/- Navbar, Footerfrontend/src/pages/- Home, ProjectDetails, AdminDashboard, AdminLogin, NotFoundfrontend/src/store/- Redux store and RTK Query API slicesbackend/controllers/- request handlers for auth, projects, skills, experiences, contact, and resumebackend/models/- Sequelize models for User, Project, Skill, Experience, and ContactMessagebackend/routes/- API route definitionsbackend/utils/- seed scripts and shared helpersbackend/configs/- database configuration
This portfolio is designed to present professional work in a clean, dynamic, and visually engaging format while giving full control over content through a secure admin interface backed by a robust API.