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.
- Live Demo & Repository
- Screenshots
- Features
- Tech Stack
- Project Structure
- System Architecture
- Installation & Setup
- Environment Variables
- Security Highlights
- Build Your Own Portfolio
- Support
π Live Website: https://sharmag02.netlify.app
π GitHub Repository: https://github.com/sharmag02/sharmag02
- Secure authentication using Supabase Auth
- Role-based access control (Admin / User)
- Protected routes to prevent unauthorized access
- Password reset and recovery flow
- 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
- Cloud storage for images and certificates
- Real-time updates across the website using Supabase
- Instant reflection of admin changes on the public site
- SEO-friendly blog slugs
- Like and comment system
- Subscriber-based email notifications for new blog posts
- Clean reading and authoring experience
- Fully responsive design across devices
- Dark / Light theme support
- Smooth UI interactions and animations
- Performance-focused frontend architecture
- React
- Vite
- TypeScript
- Tailwind CSS
- Framer Motion
- Supabase
- Authentication
- PostgreSQL Database
- Storage
- Row Level Security (RLS)
- Serverless functions
- Email service integration for notifications
- Cloud-hosted
- Production-ready environment
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.cssgraph 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]
```bash
# Clone the repository
git clone https://github.com/sharmag02/sharmag02.git
# Install dependencies
npm install
# Start development server
npm run dev
Create a `.env` file in the root directory:
```env
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
- Row Level Security (RLS) enabled in Supabase
- Admin-only database operations
- Secure environment variable handling
- Serverless functions for sensitive logicWant to create your own production-ready portfolio?
- Fork this repository
- β Star it if you find it useful
- Customize content via the admin panel
- Deploy and make it yours
For help or guidance, feel free to reach out via LinkedIn DM:
π https://linkedin.com/in/sharmag02
If this project helped you:
- Star the repository
- Fork it
- Share feedback or suggestions