Skip to content
View sharmag02's full-sized avatar

Block or report sharmag02

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sharmag02/README.md

Full-Stack Portfolio Website

React Vite Supabase Status

A production-ready full-stack portfolio website designed to reflect real-world engineering, not just UI design.

This project is built with scalability, performance, and maintainability in mind.
It features secure authentication, role-based access, real-time content updates, cloud storage, email automation, and a fully functional admin-controlled CMS.


πŸ“Œ Table of Contents


🌐 Live Demo & Repository

🌐 Live Website: https://sharmag02.netlify.app
πŸ™ GitHub Repository: https://github.com/sharmag02/sharmag02


πŸ“Έ Screenshots

Homepage

Screenshot 2026-01-07 182519

Admin Dashboard

Screenshot 2026-01-07 182636

Blog System

Screenshot 2026-01-07 182743

Certifications Page

Screenshot 2026-01-07 182824

Login & Signup

Screenshot 2026-01-07 182917

Password Reset

Screenshot 2026-01-07 182934

πŸš€ Features

πŸ” Authentication & Authorization

  • Secure authentication using Supabase Auth
  • Role-based access control (Admin / User)
  • Protected routes to prevent unauthorized access
  • Password reset and recovery flow

πŸ—„οΈ Database & Content Management

  • Centralized PostgreSQL database for:
    • Blogs
    • Projects
    • Skills
    • Experience
    • Certifications
  • Fully functional Admin Panel for managing content
  • CRUD operations without redeploying the frontend
  • Rich text editing using CKEditor

☁️ Storage & Real-Time Updates

  • Cloud storage for images and certificates
  • Real-time updates across the website using Supabase
  • Instant reflection of admin changes on the public site

πŸ“ Blog Platform

  • SEO-friendly blog slugs
  • Like and comment system
  • Subscriber-based email notifications for new blog posts
  • Clean reading and authoring experience

🎨 User Experience

  • Fully responsive design across devices
  • Dark / Light theme support
  • Smooth UI interactions and animations
  • Performance-focused frontend architecture

🧠 Tech Stack

Frontend

  • React
  • Vite
  • TypeScript
  • Tailwind CSS
  • Framer Motion

Backend (BaaS)

  • Supabase
    • Authentication
    • PostgreSQL Database
    • Storage
    • Row Level Security (RLS)

Email & Automation

  • Serverless functions
  • Email service integration for notifications

Deployment

  • Cloud-hosted
  • Production-ready environment

πŸ“ Project Structure

src/
β”œβ”€β”€ TestEmail.tsx
β”‚
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ App.tsx                 # Root application component
β”‚   β”œβ”€β”€ main.tsx                # Application entry point
β”‚   └── ProtectedRoute.tsx      # Route-level access control
β”‚
β”œβ”€β”€ ckeditor/
β”‚   └── CustomEditor.ts         # CKEditor configuration & customization
β”‚
β”œβ”€β”€ features/
β”‚   β”œβ”€β”€ admin/
β”‚   β”‚   β”œβ”€β”€ AdminPanel.tsx      # Admin dashboard UI
β”‚   β”‚   └── AdminUtils.ts       # Admin utility functions
β”‚   β”‚
β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”œβ”€β”€ AuthTabs.tsx        # Login / Signup switch
β”‚   β”‚   β”œβ”€β”€ ForgotPassword.tsx
β”‚   β”‚   β”œβ”€β”€ Login.tsx
β”‚   β”‚   β”œβ”€β”€ ResetPassword.tsx
β”‚   β”‚   └── Signup.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ blog/
β”‚   β”‚   β”œβ”€β”€ BlogAdminHelpers.ts
β”‚   β”‚   β”œβ”€β”€ BlogDetail.tsx
β”‚   β”‚   β”œβ”€β”€ BlogList.tsx
β”‚   β”‚   β”œβ”€β”€ BlogSubscribe.tsx
β”‚   β”‚   └── editor/
β”‚   β”‚       └── BlogEditor.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ certifications/
β”‚   β”‚   β”œβ”€β”€ CertificationAdminHelpers.ts
β”‚   β”‚   β”œβ”€β”€ CertificationList.tsx
β”‚   β”‚   └── editor/
β”‚   β”‚       └── CertificationEditor.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ experience/
β”‚   β”‚   β”œβ”€β”€ ExperienceAdminHelpers.ts
β”‚   β”‚   β”œβ”€β”€ ExperienceList.tsx
β”‚   β”‚   β”œβ”€β”€ ExperienceTimeline.tsx
β”‚   β”‚   └── editor/
β”‚   β”‚       └── ExperienceEditor.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ projects/
β”‚   β”‚   β”œβ”€β”€ ProjectAdminHelpers.ts
β”‚   β”‚   β”œβ”€β”€ ProjectList.tsx
β”‚   β”‚   └── editor/
β”‚   β”‚       └── ProjectEditor.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ sections/
β”‚   β”‚   β”œβ”€β”€ About.tsx
β”‚   β”‚   β”œβ”€β”€ Blog.tsx
β”‚   β”‚   β”œβ”€β”€ Certifications.tsx
β”‚   β”‚   β”œβ”€β”€ Contact.tsx
β”‚   β”‚   β”œβ”€β”€ Experience.tsx
β”‚   β”‚   β”œβ”€β”€ Home.tsx
β”‚   β”‚   β”œβ”€β”€ Projects.tsx
β”‚   β”‚   └── Skills.tsx
β”‚   β”‚
β”‚   └── skills/
β”‚       β”œβ”€β”€ SkillAdminHelpers.ts
β”‚       β”œβ”€β”€ SkillList.tsx
β”‚       └── editor/
β”‚           └── SkillEditor.tsx
β”‚
β”œβ”€β”€ shared/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Header.tsx
β”‚   β”‚   β”œβ”€β”€ Loader.tsx
β”‚   β”‚   β”œβ”€β”€ MobileNav.tsx
β”‚   β”‚   β”œβ”€β”€ NextPageArrow.tsx
β”‚   β”‚   β”œβ”€β”€ Sidebar.tsx
β”‚   β”‚   β”œβ”€β”€ ThemePopup.tsx
β”‚   β”‚   └── ThemeToggle.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── routeFlow.ts        # Central route configuration
β”‚   β”‚
β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”œβ”€β”€ AuthContext.tsx
β”‚   β”‚   └── ThemeContext.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ supabase.ts         # Supabase client setup
β”‚   β”‚   └── SupabaseUploadAdapter.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ types/
β”‚   β”‚   └── database.ts         # Database type definitions
β”‚   β”‚
β”‚   └── utils/
β”‚       β”œβ”€β”€ extractImagePaths.ts
β”‚       └── slugify.ts
β”‚
└── styles/
    β”œβ”€β”€ editor.css
    └── index.css

πŸ—οΈ System Architecture

graph TD
  User -->|Browser| Frontend[React + Vite]
  Frontend -->|Auth| SupabaseAuth[Supabase Auth]
  Frontend -->|CRUD| SupabaseDB[PostgreSQL Database]
  Frontend -->|Uploads| SupabaseStorage[Cloud Storage]
  SupabaseDB -->|Triggers| EdgeFunctions[Serverless Functions]
  EdgeFunctions -->|Emails| EmailService[Email Provider]

Loading

βš™οΈ Installation & Setup (FIXED)

```bash
# Clone the repository
git clone https://github.com/sharmag02/sharmag02.git

# Install dependencies
npm install

# Start development server
npm run dev

πŸ”‘ Environment Variables (FIXED)

Create a `.env` file in the root directory:

```env
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key

πŸ” Security Highlights (FIXED)

- Row Level Security (RLS) enabled in Supabase
- Admin-only database operations
- Secure environment variable handling
- Serverless functions for sensitive logic

πŸ™ Build Your Own Portfolio

Want to create your own production-ready portfolio?

  1. Fork this repository
  2. ⭐ Star it if you find it useful
  3. Customize content via the admin panel
  4. Deploy and make it yours

For help or guidance, feel free to reach out via LinkedIn DM:
πŸ‘‰ https://linkedin.com/in/sharmag02

⭐ Support

If this project helped you:

  • Star the repository
  • Fork it
  • Share feedback or suggestions

Popular repositories Loading

  1. republicday republicday Public

    A webpage dedicated for highlighting some fact about republic day

    CSS

  2. womensday womensday Public

    Womens are important part of society. On the special occassion of womens day, a complete website dedicated for women which contains data regarding achivements of Indian women in different fields li…

    HTML

  3. sharmag02readme sharmag02readme Public

    Readme

  4. edugleofficial-02 edugleofficial-02 Public

    Edugle is a free e-learning platform dedicated to providing quality education for IIT JEE preparation. It aims to guide aspirants through the journey of excelling in JEE Mains & Advance, supporting…

    HTML

  5. theflipfllops theflipfllops Public

    HTML

  6. BER-vs-SNR-For-Wired-and-Wireless-Channel BER-vs-SNR-For-Wired-and-Wireless-Channel Public

    MATLAB