Full-Stack Portfolio App with an Admin Panel to manage Skills, Projects, Experiences, Blogs & more - Satinder Portfolio
Modern production-grade Full-Stack Portfolio Platform built using:
- React 19
- Vite
- Tailwind CSS v4
- Framer Motion
- Node.js
- Express.js
- MongoDB
- Cloudinary
- JWT Authentication
This project is not just a portfolio website β it is a complete scalable content management platform featuring:
- Dynamic Portfolio Management
- Admin Dashboard CMS
- Blog System
- Freelance Showcase
- YouTube Integration
- Contact Management
- Cloud Media Uploads
- Authentication System
- Rich Text Editor CMS
- Modern animated landing page
- Dynamic projects showcase
- Freelance portfolio section
- AI / ML showcase
- Services section
- Responsive mobile sidebar
- Interactive animations
- Dynamic blog system
- YouTube content integration
- Contact system
- Secure Admin Authentication
- Add/Edit/Delete Projects
- Blog Management System
- Freelance Project Management
- YouTube Content Management
- Contact Messages Dashboard
- Dynamic EditorJS content editor
- Cloudinary image upload system
- React 19
- Vite 7
- Tailwind CSS v4
- Tailwind Merge
- Class Variance Authority
- Framer Motion
- React Router DOM v7
- EditorJS
- EditorJS Plugins
- Radix UI
- Hero Icons
- Lucide React
- Recharts
- Axios
- Node.js
- Express.js 5
- MongoDB
- Mongoose
- JWT
- bcrypt
- Multer
- Cloudinary
- Multer Storage Cloudinary
- Resend
- dotenv
- cors
- axios
- cross-env
Generated: 5/30/2026, 8:23:39 PM
Root Path: e:\My Projects\Full-Stack App Portfolio with Admin\Satinder Portfolio
βββ π backend
β βββ π config
β β βββ π cloudinary.js
β βββ π controllers
β β βββ π authController.js
β β βββ π dashboardController.js
β β βββ π freelanceController.js
β βββ π middleware
β β βββ π auth.js
β β βββ π cloudinaryUpload.js
β βββ π models
β β βββ π Blog.js
β β βββ π ContactMessage.js
β β βββ π FreelanceProject.js
β β βββ π Project.js
β β βββ π User.js
β β βββ π YouTubeVideo.js
β βββ π routes
β β βββ π auth.js
β β βββ π blog.js
β β βββ π contact.js
β β βββ π dashboard.js
β β βββ π editorRoutes.js
β β βββ π freelance.js
β β βββ π project.js
β β βββ π upload.js
β β βββ π youtube.js
β βββ π services
β β βββ π emailService.js
β βββ π templates
β β βββ π adminNotificationTemplate.js
β β βββ π userAcknowledgementTemplate.js
β βββ βοΈ .gitignore
β βββ π README.md
β βββ π index.js
β βββ βοΈ package-lock.json
β βββ βοΈ package.json
β βββ π seedAdmin.js
βββ π frontend
β βββ π Extra Codebase
β β βββ π About.jsx
β β βββ π ContactCTA_Button.jsx
β β βββ π ContactMessages.jsx
β β βββ π Experience.jsx
β β βββ π Footer.jsx
β β βββ π Home.jsx
β β βββ π Home2.jsx
β β βββ π Services.jsx
β β βββ π Skills.jsx
β β βββ π Skills2.jsx
β β βββ π adminNotificationTemplate.js
β βββ π public
β β βββ π Gallery
β β β βββ π Version 1.0.0
β β β βββ πΌοΈ Screenshot (1620).png
β β β βββ πΌοΈ Screenshot (1621).png
β β β βββ πΌοΈ Screenshot (1622).png
β β β βββ πΌοΈ Screenshot (1623).png
β β β βββ πΌοΈ Screenshot (1624).png
β β β βββ πΌοΈ Screenshot (1625).png
β β β βββ πΌοΈ Screenshot (1626).png
β β βββ π googled50bc0bace67ba10.html
β β βββ πΌοΈ icon.png
β β βββ π robots.txt
β β βββ βοΈ sitemap.xml
β β βββ πΌοΈ vite.svg
β βββ π src
β β βββ π admin
β β β βββ π AddBlog.jsx
β β β βββ π AddFreelanceProject.jsx
β β β βββ π AddProject.jsx
β β β βββ π AddYouTube.jsx
β β β βββ π Blogs.jsx
β β β βββ π ContactMessages.jsx
β β β βββ π Dashboard.jsx
β β β βββ π ManageFreelanceProjects.jsx
β β β βββ π Projects.jsx
β β β βββ π YouTube.jsx
β β βββ π assets
β β β βββ π InternshipCompletionLetterSatinder.pdf
β β β βββ πΌοΈ Satinder_Image.jpg
β β β βββ π Satinder_Resume.pdf
β β β βββ πΌοΈ react.svg
β β βββ π components
β β β βββ π ai-ml
β β β β βββ π AiMlHero.jsx
β β β β βββ π AiMlProjects.jsx
β β β β βββ π AiMlSkills.jsx
β β β βββ π ui
β β β β βββ π button.jsx
β β β β βββ π card.jsx
β β β β βββ π dialog.jsx
β β β βββ π About.jsx
β β β βββ π AdminAuthLayout.jsx
β β β βββ π AdminLayout.jsx
β β β βββ π AdminRoute.jsx
β β β βββ π AppPromoModal.jsx
β β β βββ π AppStatusModal.jsx
β β β βββ π AppsShowcase.jsx
β β β βββ π ContactCTA_Button.jsx
β β β βββ π DeveloperCredit.jsx
β β β βββ π EditorBlocksRenderer.jsx
β β β βββ π EditorJSInput.jsx
β β β βββ π Experience.jsx
β β β βββ π FeatureYouTube.jsx
β β β βββ π FeaturedProjects.jsx
β β β βββ π Footer.jsx
β β β βββ π Hero.jsx
β β β βββ π Navbar.jsx
β β β βββ π PoetryPromoModal.jsx
β β β βββ π ScrollToTop.jsx
β β β βββ π ScrollTopButton.jsx
β β β βββ π SectionNavigator.jsx
β β β βββ π Sidebar.jsx
β β β βββ π Skills.jsx
β β βββ π lib
β β β βββ π utils.js
β β βββ π pages
β β β βββ π AiMl.jsx
β β β βββ π Blog.jsx
β β β βββ π BlogDetails.jsx
β β β βββ π Contact.jsx
β β β βββ π FreelanceDetails.jsx
β β β βββ π Home.jsx
β β β βββ π Login.jsx
β β β βββ π NotFound.jsx
β β β βββ π ProjectDetail.jsx
β β β βββ π Projects_User.jsx
β β β βββ π Services.jsx
β β β βββ π WatchMyFreelancing.jsx
β β β βββ π WatchMyYouTube.jsx
β β β βββ π YouTubeDetails.jsx
β β βββ π services
β β βββ π¨ App.css
β β βββ π App.jsx
β β βββ π¨ index.css
β β βββ π main.jsx
β βββ βοΈ .gitignore
β βββ π README.md
β βββ βοΈ components.json
β βββ π eslint.config.js
β βββ π index.html
β βββ βοΈ jsconfig.json
β βββ βοΈ package-lock.json
β βββ βοΈ package.json
β βββ βοΈ vercel.json
β βββ π vite.config.js
βββ βοΈ .gitignore
βββ π README.md
Generated by FileTree Pro Extension
Satinder Portfolio/
β
βββ backend/
β βββ config/
β βββ controllers/
β βββ middleware/
β βββ models/
β βββ routes/
β βββ services/
β βββ templates/
β βββ index.js
β βββ seedAdmin.js
β βββ package.json
β
βββ frontend/
β βββ public/
β βββ src/
β β βββ admin/
β β βββ assets/
β β βββ components/
β β βββ pages/
β β βββ services/
β β βββ lib/
β β βββ App.jsx
β β βββ main.jsx
β β
β βββ vite.config.js
β βββ package.json
β
βββ .gitignore
βββ README.md- JWT-based Authentication
- Protected Admin Routes
- Token Validation Middleware
- Secure Login System
- Admin Authorization
Integrated Cloudinary upload pipeline:
- Image Uploads
- Cloud Storage
- Optimized Delivery
- Dynamic Image Rendering
- Multer Upload Middleware
Rich content management powered by EditorJS:
- Headers
- Lists
- Quotes
- Tables
- Images
- Code Blocks
- Embeds
- Inline Styling
Powered by Resend API:
- Admin Notification Emails
- User Acknowledgement Emails
- HTML Email Templates
- Dynamic Contact Form Workflow
Fully optimized for:
- Mobile Devices
- Tablets
- Laptops
- Ultra-wide Displays
Includes:
- Mobile Drawer Navigation
- Smooth Scroll Management
- Responsive Layout Architecture
- Performance Optimizations
- Glassmorphism Design
- Dark Premium Interface
- Neon Glow Effects
- Smooth Hover Interactions
- Animated Route Transitions
- Framer Motion Animations
- Modern SaaS-style Layout
git clone <your-repository-url>cd Satinder-Portfoliocd frontend
npm installcd ../backend
npm installVITE_API_URL=http://localhost:5000/apiVITE_API_URL=https://your-production-api.com/apiPORT=5000
MONGO_URI=mongodb://127.0.0.1:27017/satinder_portfolio_db
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
RESEND_API_KEY=your_resend_api_key
ADMIN_EMAIL=your_admin_emailPORT=5000
MONGO_URI=your_production_mongodb_uri
JWT_SECRET=your_secure_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
RESEND_API_KEY=your_resend_api_key
ADMIN_EMAIL=your_admin_emailcd frontend
npm run devFrontend runs on:
http://localhost:5173cd backend
npm run devBackend runs on:
http://localhost:5000npm run buildnpm startBase API URL:
/apiExample APIs:
/api/projects
/api/blogs
/api/freelance
/api/youtube
/api/contact
/api/authStores:
- Admin credentials
- Authentication data
Stores:
- Blog content
- EditorJS blocks
- Cover images
- Metadata
Stores:
- Portfolio projects
- Technologies
- External links
- Images
Stores:
- Freelance showcase projects
- Client information
Stores:
- Contact form submissions
- User inquiries
Stores:
- Featured YouTube videos
- Metadata
- JWT Authentication
- Password Hashing
- Protected Routes
- Middleware Authorization
- Environment Variable Protection
- Secure Cloud Upload System
Never expose:
- MongoDB URIs
- JWT Secrets
- Cloudinary Secrets
- API Keys
.envfiles
Always use:
.gitignorefor sensitive files.
- Vercel
- Netlify
- Render
- Railway
- VPS
- DigitalOcean
- MongoDB Atlas
- Cloudinary
Planned upgrades include:
- TypeScript Migration
- React Query Integration
- Role-Based Access Control (RBAC)
- Analytics Dashboard
- PWA Support
- Server-side Rendering
- Command Palette Search
- Advanced SEO Optimization
- API Rate Limiting
- Redis Caching
- WebSocket Features
- Advanced Dashboard Analytics
- Vite Fast Bundling
- Optimized React Rendering
- Lazy Loaded Components
- Dynamic Imports
- Optimized Animations
- Efficient API Calls
- Responsive Media Rendering
This project is licensed under the ISC License.
Full-Stack Engineer specializing in:
- Frontend Engineering
- Backend Architecture
- Modern CMS Platforms
- AI/ML Interfaces
- Product Engineering
- Scalable Full-Stack Systems
This project was designed not just as a portfolio website, but as a scalable full-stack product platform demonstrating:
- Real-world frontend architecture
- Backend system design
- CMS development
- Authentication systems
- Cloud media management
- API architecture
- Modern UI/UX engineering
- Production-grade workflows
Modern Full-Stack Portfolio Frontend built with React 19, Vite, Tailwind CSS v4, Framer Motion, and a custom Admin CMS ecosystem.
This frontend powers the complete public-facing portfolio experience along with seamless integration to the backend admin system.
- Modern responsive landing page
- Animated hero sections
- AI / ML showcase
- Services section
- Dynamic projects showcase
- Freelancing showcase
- YouTube integration
- Blog system
- Contact system
- Smooth mobile sidebar navigation
- SEO optimized structure
- Secure Admin Login
- Add / Edit / Delete Projects
- Blog Management
- Freelance Project Management
- YouTube Content Management
- Dashboard Analytics Layout
- Dynamic EditorJS Blog Editor
- Cloudinary image upload integration
- Glassmorphism design system
- Mobile-first responsive layout
- Framer Motion animations
- Tailwind CSS v4 styling
- Radix UI components
- Custom reusable component architecture
- Smooth transitions & hover effects
- Premium dark theme interface
- React 19
- Vite 7
- Tailwind CSS v4
- Tailwind Merge
- CVA (Class Variance Authority)
- Framer Motion
- React Router DOM v7
- EditorJS
- Multiple EditorJS plugins
- @hello-pangea/dnd
- Radix UI
- Hero Icons
- Lucide React
- Recharts
- Axios
frontend/
β
βββ public/ # Static assets
βββ src/
β
β βββ admin/ # Admin dashboard pages
β βββ assets/ # Images, PDFs, static assets
β βββ components/ # Reusable UI components
β β
β β βββ ai-ml/ # AI/ML section components
β β βββ ui/ # Shared UI primitives
β β βββ ...
β β
β βββ lib/ # Utility functions
β βββ pages/ # Route pages
β βββ services/ # API services
β β
β βββ App.jsx # Main app component
β βββ main.jsx # Application entry point
β βββ App.css
β βββ index.css
β
βββ vite.config.js
βββ package.json
βββ README.mdgit clone <your-repository-url>cd frontendnpm installCreate:
.env.developmentand
.env.productionVITE_API_URL=http://localhost:5000/apiVITE_API_URL=https://your-production-api-url.com/apinpm run devFrontend runs on:
http://localhost:5173npm run buildnpm run preview- react
- react-dom
- vite
- tailwindcss
- tailwind-merge
- class-variance-authority
- framer-motion
- @editorjs/editorjs
- @editorjs/header
- @editorjs/image
- @editorjs/list
- @editorjs/table
- @editorjs/quote
- @editorjs/code
- react-router-dom
- lucide-react
- @heroicons/react
- radix-ui
Frontend communicates with backend authentication APIs using:
- JWT Authentication
- Protected Admin Routes
- Local Storage Token Management
- Route Guards
Images uploaded through Admin Dashboard are processed via backend and stored on Cloudinary.
Frontend handles:
- Preview rendering
- Upload state management
- Dynamic asset rendering
The entire frontend is optimized for:
- Mobile Devices
- Tablets
- Laptops
- Large Displays
Special attention has been given to:
- Mobile navigation
- Scroll behavior
- Drawer systems
- Performance
- Accessibility
- Vite fast bundling
- Lazy loading routes
- Optimized animations
- Reusable component system
- Efficient API calls
- Dynamic rendering
- Responsive image handling
Planned upgrades include:
- TypeScript migration
- React Query integration
- Advanced analytics dashboard
- Theme customization
- Multi-admin RBAC system
- PWA support
- Server-side rendering
- Command palette search
- Advanced SEO optimization
Never expose:
- API Keys
- JWT Secrets
- Cloudinary Secrets
- Database URIs
Use .env files properly and keep secrets outside version control.
This project is licensed under the ISC License.
Full-Stack Engineer specializing in:
- Modern React Applications
- Backend Systems
- AI/ML Interfaces
- Product Engineering
- Full-Stack Architecture
This portfolio is designed not just as a personal website, but as a scalable full-stack product platform demonstrating:
- Modern frontend engineering
- Backend architecture
- CMS systems
- UI/UX systems
- Production-grade workflows
- Real-world application development
Scalable Express.js backend powering the full-stack Satinder Portfolio platform with Admin CMS, authentication system, dynamic content management, image uploads, and email integrations.
This backend provides REST APIs for:
- Portfolio management
- Blog CMS
- Freelance showcase
- YouTube content system
- Contact management
- Admin authentication
- Cloudinary media uploads
- JWT Authentication
- Protected Admin Routes
- Middleware-based authorization
- Secure login system
- Blog CRUD APIs
- Project CRUD APIs
- Freelance Project APIs
- YouTube Content APIs
- Contact Form APIs
- Cloudinary integration
- Image upload handling
- Multer middleware
- Dynamic media storage
- Resend Email Integration
- Admin Notifications
- User Acknowledgement Emails
- Custom email templates
- Node.js
- Express.js 5
- MongoDB
- Mongoose ODM
- JWT (jsonwebtoken)
- bcrypt
- Multer
- Cloudinary
- multer-storage-cloudinary
- Resend
- dotenv
- cors
- axios
- cross-env
backend/
β
βββ config/ # Configuration files
β βββ cloudinary.js
β
βββ controllers/ # Route controllers
β βββ authController.js
β βββ dashboardController.js
β βββ freelanceController.js
β
βββ middleware/ # Custom middlewares
β βββ auth.js
β βββ cloudinaryUpload.js
β
βββ models/ # Mongoose schemas
β βββ Blog.js
β βββ ContactMessage.js
β βββ FreelanceProject.js
β βββ Project.js
β βββ User.js
β βββ YouTubeVideo.js
β
βββ routes/ # API routes
β βββ auth.js
β βββ blog.js
β βββ contact.js
β βββ dashboard.js
β βββ editorRoutes.js
β βββ freelance.js
β βββ project.js
β βββ upload.js
β βββ youtube.js
β
βββ services/ # Business logic services
β βββ emailService.js
β
βββ templates/ # Email templates
β βββ adminNotificationTemplate.js
β βββ userAcknowledgementTemplate.js
β
βββ index.js # Main server entry point
βββ seedAdmin.js # Admin seeding script
βββ package.json
βββ README.mdgit clone <your-repository-url>cd backendnpm installCreate:
.env.developmentand
.env.productionPORT=5000
MONGO_URI=mongodb://127.0.0.1:27017/satinder_portfolio_db
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
RESEND_API_KEY=your_resend_api_key
ADMIN_EMAIL=your_admin_emailPORT=5000
MONGO_URI=your_production_mongodb_uri
JWT_SECRET=your_secure_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
RESEND_API_KEY=your_resend_api_key
ADMIN_EMAIL=your_admin_emailnpm run devServer runs on:
http://localhost:5000npm start/apiExample:
http://localhost:5000/api/projectsProtected routes use:
- JWT tokens
- Authorization middleware
- Token validation
- Admin-only access control
Authentication flow:
- User logs in
- JWT token generated
- Token stored on frontend
- Protected APIs validated using middleware
Image uploads are handled using:
- Multer
- Cloudinary Storage Engine
- Upload Middleware
Features:
- Automatic cloud storage
- Optimized asset delivery
- Dynamic URL generation
- Secure upload handling
The backend sends:
- Admin notification emails
- User acknowledgement emails
Powered by:
- Resend API
- HTML email templates
- express
- mongoose
- dotenv
- bcrypt
- jsonwebtoken
- multer
- cloudinary
- multer-storage-cloudinary
- cors
- axios
- cross-env
- resend
Stores:
- Admin credentials
- Authentication data
Stores:
- Blog content
- EditorJS blocks
- Metadata
- Cover images
Stores:
- Portfolio projects
- Technologies
- Project links
- Images
Stores:
- Freelance showcase projects
- Client/project information
Stores:
- User contact form submissions
- Inquiry information
Stores:
- Featured YouTube content
- Video metadata
- JWT-based authentication
- Password hashing using bcrypt
- Environment variable protection
- Protected admin APIs
- Middleware authorization
- Secure cloud upload system
Never commit:
.envfiles- JWT secrets
- MongoDB credentials
- Cloudinary secrets
- Resend API keys
Always add sensitive files to:
.gitignore- Vercel
- Netlify
- Render
- Railway
- VPS
- DigitalOcean
- MongoDB Atlas
Planned upgrades:
- TypeScript migration
- RBAC (Role-Based Access Control)
- API rate limiting
- Request validation
- Swagger API docs
- Redis caching
- WebSocket notifications
- Microservice architecture
- Advanced analytics APIs
This project is licensed under the ISC License.
Full-Stack Engineer focused on:
- Backend architecture
- Modern web systems
- CMS platforms
- Scalable APIs
- Product engineering
This backend is designed as a production-ready content platform supporting:
- Dynamic portfolio systems
- Admin CMS workflows
- Secure authentication
- Cloud media management
- Real-world application architecture
Full-Stack Portfolio App with an Admin Panel to manage Skills, Projects, Experiences, Blogs & more - Satinder Portfolio
Generated: 5/30/2026, 8:12:05 PM
Root Path: e:\My Projects\Full-Stack App Portfolio with Admin\Satinder Portfolio
βββ π backend
β βββ π config
β β βββ π cloudinary.js
β βββ π controllers
β β βββ π authController.js
β β βββ π dashboardController.js
β β βββ π freelanceController.js
β βββ π middleware
β β βββ π auth.js
β β βββ π cloudinaryUpload.js
β βββ π models
β β βββ π Blog.js
β β βββ π ContactMessage.js
β β βββ π FreelanceProject.js
β β βββ π Project.js
β β βββ π User.js
β β βββ π YouTubeVideo.js
β βββ π routes
β β βββ π auth.js
β β βββ π blog.js
β β βββ π contact.js
β β βββ π dashboard.js
β β βββ π editorRoutes.js
β β βββ π freelance.js
β β βββ π project.js
β β βββ π upload.js
β β βββ π youtube.js
β βββ π services
β β βββ π emailService.js
β βββ π templates
β β βββ π adminNotificationTemplate.js
β β βββ π userAcknowledgementTemplate.js
β βββ βοΈ .gitignore
β βββ π README.md
β βββ π index.js
β βββ βοΈ package-lock.json
β βββ βοΈ package.json
β βββ π seedAdmin.js
βββ π frontend
β βββ π Extra Codebase
β β βββ π About.jsx
β β βββ π ContactCTA_Button.jsx
β β βββ π ContactMessages.jsx
β β βββ π Experience.jsx
β β βββ π Footer.jsx
β β βββ π Home.jsx
β β βββ π Home2.jsx
β β βββ π Services.jsx
β β βββ π Skills.jsx
β β βββ π Skills2.jsx
β β βββ π adminNotificationTemplate.js
β βββ π public
β β βββ π Gallery
β β β βββ π Version 1.0.0
β β β βββ πΌοΈ Screenshot (1620).png
β β β βββ πΌοΈ Screenshot (1621).png
β β β βββ πΌοΈ Screenshot (1622).png
β β β βββ πΌοΈ Screenshot (1623).png
β β β βββ πΌοΈ Screenshot (1624).png
β β β βββ πΌοΈ Screenshot (1625).png
β β β βββ πΌοΈ Screenshot (1626).png
β β βββ π googled50bc0bace67ba10.html
β β βββ πΌοΈ icon.png
β β βββ π robots.txt
β β βββ βοΈ sitemap.xml
β β βββ πΌοΈ vite.svg
β βββ π src
β β βββ π admin
β β β βββ π AddBlog.jsx
β β β βββ π AddFreelanceProject.jsx
β β β βββ π AddProject.jsx
β β β βββ π AddYouTube.jsx
β β β βββ π Blogs.jsx
β β β βββ π ContactMessages.jsx
β β β βββ π Dashboard.jsx
β β β βββ π ManageFreelanceProjects.jsx
β β β βββ π Projects.jsx
β β β βββ π YouTube.jsx
β β βββ π assets
β β β βββ π InternshipCompletionLetterSatinder.pdf
β β β βββ πΌοΈ Satinder_Image.jpg
β β β βββ π Satinder_Resume.pdf
β β β βββ πΌοΈ react.svg
β β βββ π components
β β β βββ π ai-ml
β β β β βββ π AiMlHero.jsx
β β β β βββ π AiMlProjects.jsx
β β β β βββ π AiMlSkills.jsx
β β β βββ π ui
β β β β βββ π button.jsx
β β β β βββ π card.jsx
β β β β βββ π dialog.jsx
β β β βββ π About.jsx
β β β βββ π AdminAuthLayout.jsx
β β β βββ π AdminLayout.jsx
β β β βββ π AdminRoute.jsx
β β β βββ π AppPromoModal.jsx
β β β βββ π AppStatusModal.jsx
β β β βββ π AppsShowcase.jsx
β β β βββ π ContactCTA_Button.jsx
β β β βββ π DeveloperCredit.jsx
β β β βββ π EditorBlocksRenderer.jsx
β β β βββ π EditorJSInput.jsx
β β β βββ π Experience.jsx
β β β βββ π FeatureYouTube.jsx
β β β βββ π FeaturedProjects.jsx
β β β βββ π Footer.jsx
β β β βββ π Hero.jsx
β β β βββ π Navbar.jsx
β β β βββ π PoetryPromoModal.jsx
β β β βββ π ScrollToTop.jsx
β β β βββ π ScrollTopButton.jsx
β β β βββ π SectionNavigator.jsx
β β β βββ π Sidebar.jsx
β β β βββ π Skills.jsx
β β βββ π lib
β β β βββ π utils.js
β β βββ π pages
β β β βββ π AiMl.jsx
β β β βββ π Blog.jsx
β β β βββ π BlogDetails.jsx
β β β βββ π Contact.jsx
β β β βββ π FreelanceDetails.jsx
β β β βββ π Home.jsx
β β β βββ π Login.jsx
β β β βββ π NotFound.jsx
β β β βββ π ProjectDetail.jsx
β β β βββ π Projects_User.jsx
β β β βββ π Services.jsx
β β β βββ π WatchMyFreelancing.jsx
β β β βββ π WatchMyYouTube.jsx
β β β βββ π YouTubeDetails.jsx
β β βββ π services
β β βββ π¨ App.css
β β βββ π App.jsx
β β βββ π¨ index.css
β β βββ π main.jsx
β βββ βοΈ .gitignore
β βββ π README.md
β βββ βοΈ components.json
β βββ π eslint.config.js
β βββ π index.html
β βββ βοΈ jsconfig.json
β βββ βοΈ package-lock.json
β βββ βοΈ package.json
β βββ βοΈ vercel.json
β βββ π vite.config.js
βββ βοΈ .gitignore
βββ π README.md
Generated by FileTree Pro Extension
View the app Live: https://satinder-portfolio.vercel.app/
Absolutely! Hereβs a clean, professional README structure for your Full-Stack Portfolio App with Admin Panel project. Itβs polished and ready to present on GitHub or any documentation platform:
Satinder Portfolio is a comprehensive full-stack web application featuring a personal portfolio with an admin panel. The admin panel allows managing various sections including Skills, Projects, Experiences, Blogs, and more. This project is designed to showcase web development skills, both on the frontend and backend, with a strong emphasis on real-world use cases such as content management, authentication, and file uploads.
- Admin Panel to add, update, and delete portfolio content.
- Authentication system for secure admin access.
- Manage Skills, Projects, Experiences, Blogs, and YouTube videos.
- Contact form with message management.
- Responsive UI for seamless experience on all devices.
- Cloudinary integration for media uploads.
- Modern tech stack with React (frontend) and Node.js/Express (backend).
- React.js (with JSX and Hooks)
- Vite as build tool
- CSS for styling
- Node.js with Express.js
- MongoDB (via Mongoose) for database
- Cloudinary for image and media storage
- JWT for authentication
Satinder Portfolio/
βββ backend/
β βββ config/ # Config files (e.g., Cloudinary)
β βββ controllers/ # API logic controllers
β βββ middleware/ # Auth and file upload middleware
β βββ models/ # Mongoose models (User, Blog, Project, etc.)
β βββ routes/ # Express route handlers
β βββ index.js # Entry point for backend server
β βββ seedAdmin.js # Script to create admin user
β βββ .env # Environment variables (hidden)
β
βββ frontend/
βββ public/ # Static assets
βββ src/
β βββ admin/ # Admin panel pages and forms
β βββ assets/ # Images, resume PDFs, etc.
β βββ components/ # Reusable React components
β βββ pages/ # Main frontend pages
β βββ services/ # API calls and services (optional)
β βββ App.jsx # Main React app component
β βββ main.jsx # ReactDOM render and app initialization
βββ vite.config.js # Vite config
βββ .env # Frontend environment variables (hidden)