Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A modern, full-stack portfolio website built with React and Node.js, featuring a comprehensive dashboard for content management and analytics.

Notifications You must be signed in to change notification settings

mziliNassim/my_portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Portfolio Website

A modern, full-stack portfolio website built with React and Node.js, featuring a comprehensive dashboard for content management and analytics.

🌐 Live Demo / Routes

πŸ“Έ Project Preview

Homepage

Homepage Preview Modern and responsive homepage with animated hero section

Admin Dashboard

Admin Dashboard Comprehensive admin panel for content management

✨ Features

Frontend

  • Modern React Application with React 19
  • Responsive Design with Tailwind CSS 4
  • Type Animation Effects for dynamic text display
  • Analytics Dashboard with Recharts
  • Email Integration with EmailJS
  • Toast Notifications using Sonner
  • Image Compression for optimized loading
  • Redux State Management

Backend

  • RESTful API built with Express.js
  • MongoDB Database with Mongoose ODM
  • JWT Authentication for admin access
  • CORS Support for cross-origin requests
  • Environment Configuration with dotenv
  • Password Encryption using bcryptjs

Dashboard

  • Content Management System for:
    • Personal information
    • Projects portfolio
    • Work experiences
    • Education history
  • Analytics Tracking with visitor statistics
  • Secure Authentication system
  • Real-time Data Updates

πŸ› οΈ Tech Stack

Frontend

  • React 19.1.0 - UI library
  • Vite 6.3.5 - Build tool
  • Tailwind CSS 4.1.8 - Styling
  • React Router DOM 7.6.2 - Routing
  • Redux Toolkit 2.8.2 - State management
  • Recharts 3.1.0 - Charts and analytics
  • Axios 1.10.0 - HTTP client
  • EmailJS 4.4.1 - Email service

Backend

  • Node.js - Runtime environment
  • Express.js 5.1.0 - Web framework
  • MongoDB with Mongoose 8.16.4 - Database
  • JWT 9.0.2 - Authentication
  • bcryptjs 3.0.2 - Password hashing
  • CORS 2.8.5 - Cross-origin resource sharing

πŸš€ Installation & Setup

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB database
  • npm or yarn package manager

Clone Repository

git clone https://github.com/mziliNassim/my_portfolio.git
cd my_portfolio

Backend Setup

  1. Navigate to server directory:
cd server
  1. Install dependencies:
npm install
  1. Create .env file in the server directory:
PORT=3000
MONGODB_URI=your_mongodb_connection_string # or mongodb://localhost:27017/portfolio
JWT_SECRET=your_jwt_secret_key
  1. Start the server:
# Development
npm run dev

# Production
npm start

Frontend Setup

  1. Navigate to client directory:
cd client
  1. Install dependencies:
npm install
  1. Create .env file in the client directory:
# EmailJs
VITE_EMAILJS_SERVICE_ID=your_emailjs_service_id
VITE_EMAILJS_TEMPLATE_ID=your_emailjs_template_id
VITE_EMAILJS_PUBLIC_KEY=your_emailjs_public_key


# Server
VITE_SERVER_URI=http://localhost:3000

# Envirement dev || prod
VITE_ENVIREMENT=dev
  1. Start the development server:
npm run dev

πŸ“ Project Structure

portfolio/
β”œβ”€β”€ client/                 # Frontend React application
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assests/        #
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable components
β”‚   β”‚   β”‚   β”œβ”€β”€ dashboard/  # Admin dashboard components
β”‚   β”‚   β”‚   β”œβ”€β”€ layouts/    # Layout components
β”‚   β”‚   β”‚   β”œβ”€β”€ portfolio/  # Portfolio page components
β”‚   β”‚   β”‚   └── styles/     # Styled components
β”‚   β”‚   β”œβ”€β”€ features/       # Redux slices
β”‚   β”‚   β”œβ”€β”€ helper/         #
β”‚   β”‚   β”œβ”€β”€ pages/          # Main page components
β”‚   β”‚   β”œβ”€β”€ styles/         #
β”‚   β”‚   β”œβ”€β”€ utils/          #
β”‚   β”‚   β”œβ”€β”€ App.jsx         #
β”‚   β”‚   └── main.jsx        #
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ .env.example
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ eslint.comfig.js
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”œβ”€β”€ server/                 # Backend Node.js application
β”‚   β”œβ”€β”€ config/             # Database configuration
β”‚   β”œβ”€β”€ controllers/        #
β”‚   β”œβ”€β”€ middleware/         # Custom middleware
β”‚   β”œβ”€β”€ models/             # Database models
β”‚   β”œβ”€β”€ routes/             # API routes
β”‚   β”œβ”€β”€ scripts/            #
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ .env.example
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   β”œβ”€β”€ package.json
β”‚   └── vercel.json         # Vercel deployment config
└── README.md               #

πŸ”§ Available Scripts

Frontend (Client)

npm run dev      # Start development server
npm run build    # Build for production
npm run preview  # Preview production build
npm run lint     # Run ESLint

Backend (Server)

npm start        # Start production server
npm run dev      # Start development server with nodemon

🌐 Deployment

Frontend Deployment (Netlify)

The frontend is deployed on Netlify and accessible at https://nassim.online

Backend Deployment (Vercel)

The backend is configured for Vercel deployment using vercel.json https://my-portfolio-gold-psi-86.vercel.app

πŸ“Š Features Overview

Portfolio Sections

  • Hero Section with animated introductions
  • About personal information and skills
  • Experience work history timeline
  • Projects showcase with filtering
  • Education academic background
  • Contact form with email integration

Admin Dashboard

  • Authentication secure login system
  • Content Management CRUD operations for all sections
  • Analytics visitor tracking and statistics
  • Real-time Updates instant content changes

Analytics & Tracking

  • Visitor Statistics by device type
  • Monthly Analytics with visual charts
  • Real-time Data dashboard updates

πŸ” Authentication

The admin dashboard uses JWT-based authentication with:

  • Secure token validation
  • Protected routes
  • Automatic token refresh
  • Session management

πŸ“± Responsive Design

The portfolio is fully responsive with:

  • Mobile-first approach
  • Tablet and desktop optimizations
  • Touch-friendly interactions
  • Cross-browser compatibility

🎨 Design Features

  • Modern UI/UX with clean design
  • Smooth Animations and transitions
  • Interactive Elements and hover effects
  • Professional Typography and spacing

πŸ“ž Contact

Emain - [email protected]

Nassim - https://nassim.online/links

Project Link: https://github.com/mziliNassim/my_portfolio


⭐ Star this repository if you found it helpful!

Releases

No releases published

Packages

No packages published

Languages