An interactive, high-performance portfolio website engineered with React 18, TypeScript, Three.js, Framer Motion, and Tailwind CSS. Features a built-in Admin Panel with real-time Supabase cloud sync, enabling seamless cross-device content management.
๐ Explore Live Portfolio โ https://pkportfolioapp.netlify.app
I am a Full Stack Developer and Computer Science & Engineering undergraduate at SRM Institute of Science and Technology, Chennai. I specialize in building secure backend microservices, responsive web user interfaces, REST APIs, and AI-powered solutions.
- ๐ Education: B.Tech CSE at SRM IST, Ramapuram (CGPA: 8.56/10)
- ๐ป Core Stack: Python (FastAPI, Flask), React, TypeScript, PostgreSQL, Docker, Tailwind CSS
- ๐ Focus Areas: System Security (JWT, RBAC, AES-256), Cloud Computing & Interactive Web Engineering
- Password-Protected Admin Dashboard: Secure login with environment-variable-based credentials or custom database credentials.
- Supabase Real-Time Sync: All edits (CRUD + reordering) are instantly saved to Supabase PostgreSQL and reflected across all devices (mobile, laptop, other browsers) without redeployment.
- Full CRUD + Reordering: Create, update, delete, and drag-to-reorder across all sections โ Personal Info, Resumes, Experiences, Projects, Education, Services, Skills, Certifications, and Stats.
- Tab Persistence: Preserves active admin sections across refreshes via
sessionStorageand URL hash fragments while defaulting toPersonal & Bioon login.
- Intelligent Title Casing: Automatically formats text across all Admin input fields, CRUD context methods, CSV parsing, and portfolio rendering.
- Tech Stack Dictionary: Preserves custom casing for technology terms and acronyms (
HTML,CSS,JavaScript,TypeScript,TailwindCSS,React,FastAPI,Flask,PostgreSQL,Docker,SQL,API,UI/UX,SIH,SRM, etc).
- Responsive 3-Column Grid: Styled with interactive 3D
TiltCardcomponents matching section layout aesthetics. - Clickable Experience Cards: Card clicks launch a responsive lightbox modal (via React
createPortal) presenting full role duties, dates, location, and technology tags. - Expandable Toggle: Includes a "View All Experiences" button for smooth list expansion.
- Live Demo Integration: Added
liveUrlsupport to render a prominentLive Demo โbutton on both project cards and detail modals alongside GitHub repository links. - Category Badges & Tech Stack Tags: Standardized progress indicators and tech stack tags.
- Real-time Cursor Tracking: Cards dynamically rotate along spatial X and Y axes (
rotateX,rotateY) based on cursor offsets relative to element centers. - Z-Axis Elevation: Lifts cards into 3D space (
translateZ(10px) scale(1.015)) on hover. - Smooth Viewport Entries: High-precision 3D entry transitions (
transformPerspective: 1000, customcubic-beziereasing) trigger smoothly on scroll.
- Inline Certificate Previews: Uses Mozilla's
pdfjs-distto fetch and render PDF certificates client-side directly on HTML5<canvas>elements. - Physical Resume File Renaming: Renames physical PDF files on disk (
/public/resume/&/dist/resume/) via local server API while updating CSV metadata. - Streamlined Edit UI: Clean toggle UI in Admin with inline inputs,
Checksave buttons, and singleXcancel controls.
- React Portals: Modal overlays (Projects detail lightbox, Experience detail modal, Certifications PDF viewer) are rendered directly to
document.bodyviacreatePortal, avoiding CSS stacking context clipping.
- Morphing Profile Shape: Blob-shaped portrait frame featuring continuous fluid
@keyframes morphanimations and flowing neon gradient borders. - WebGL Particle Canvas: Background powered by Three.js rendering thousands of animated dynamic nodes.
| Category | Technology | Description |
|---|---|---|
| Core Framework | React 18.3.1 | Component-driven UI architecture |
| Language | TypeScript 5.8.3 | End-to-end static typing & interface contracts |
| Build System | Vite 5.4.21 | High-speed HMR development server & bundling |
| Package Manager | pnpm | Fast, disk-efficient package management |
| Styling | Tailwind CSS 3.4 | Utility-first custom glassmorphism & responsive layouts |
| Animations | Framer Motion & Three.js | Spatial motion transitions & WebGL background scene |
| Cloud Database | Supabase (PostgreSQL) | Real-time cross-device portfolio data sync |
| Deployment | Netlify | CI/CD auto-deploy on git push |
| PDF Processing | PDF.js (pdfjs-dist) |
Client-side vector canvas PDF rendering |
| Icons & UI | Lucide React & Radix UI | Accessible primitives & SVG icon suite |
- Description: Cloud storage platform using FastAPI integrating AES encryption, SHA-256 hashing, Ethereum blockchain, JWT authentication, Redis, PostgreSQL, MinIO, Docker, and ML-based anomaly detection.
- Stack: Python, FastAPI, Docker, Redis, Ethereum, PostgreSQL, MinIO, JWT
- GitHub: Premkumark20
- Description: AI-powered agricultural platform integrating Google Gemini API for crop disease detection, multilingual recommendations, weather forecasting, and intelligent farming insights.
- Stack: React, Python, Gemini API, JWT, MySQL
- Description: Full-stack application for managing group trip expenses, budget limits, and real-time split calculations.
- Stack: Python (Flask), REST API, HTML/CSS, Render
- GitHub: Trip_Budget_System
- Live Demo: https://trip-budget-system.onrender.com/
- Description: Enterprise payroll system featuring Role-Based Access Control (RBAC), automated salary generation, and attendance management.
- Stack: Python (Flask), SQLite, Role Security, PythonAnywhere
- GitHub: payroll-dbms
- Live Demo: https://premkumark20.github.io/payroll-dbms
-
Clone the repository
git clone https://github.com/Premkumark20/Portfolio.git cd Portfolio -
Install dependencies (uses pnpm)
pnpm install
-
Configure environment variables โ create a
.envfile:VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your_anon_key_here VITE_ADMIN_USERNAME=yourusername VITE_ADMIN_PASSWORD=yourpassword
-
Launch dev server
pnpm dev
Open
http://localhost:5173in your browser. -
Production build
pnpm build
-
Build for GitHub Pages
pnpm build:gh-pages
Run this SQL once in your Supabase SQL Editor:
create table if not exists portfolio_data (
id text primary key default 'main',
content text not null,
updated_at timestamp default now()
);
alter table portfolio_data enable row level security;
drop policy if exists "Allow public read" on portfolio_data;
create policy "Allow public read" on portfolio_data for select using (true);
drop policy if exists "Allow admin write" on portfolio_data;
create policy "Allow admin write" on portfolio_data for all using (true);Then add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY to your deployment environment variables.
Access the full admin dashboard at /admin (opens in a new tab from the footer, or navigate directly).
- Salted SHA-256 Cryptographic Hashes: Passwords and temporary credentials use salted hashing (
salt:hash), protecting against rainbow table and dictionary lookup attacks. - Default Administrator:
yourusername/yourpassword(Salt:default_auth). - Master Recovery Fail-safe:
youradmin/youradminpassword(Salt:master_recovery) โ recovery access if custom credentials are forgotten. - Custom Admin Credentials: Change credentials at any time in the Security tab; synced to Supabase with dynamically generated cryptographic salts.
- Temporary Sharing Passes: Generate time-bounded passes (1 hour to 30 days) with configurable permissions (Read-Only or Can Edit). Automatically revoked upon expiration.
- Deletion Safeguards: Confirmation modals prevent accidental deletions across all sections.
| Section | Operations |
|---|---|
| Personal & Bio | Edit name, title, links, hero tags, bio summary (Auto Title Case) |
| Resumes | Upload PDF/DOC files, set primary resume, rename files on physical disk |
| Projects | Add, edit, delete, drag-to-reorder, add Live Demo URLs |
| Education | Add, edit, delete, drag-to-reorder, set category badges |
| Work Experience | Add, edit, delete, drag-to-reorder, clickable detail lightbox |
| Services | Add, edit, delete, drag-to-reorder, tech stack tags |
| Skills | Add categories & skills, drag-to-reorder |
| Certifications | Add, upload PDF/image, drag-to-reorder, inline canvas preview |
| Stats | Edit label, value, subtext, drag-to-reorder |
| Security | Change admin credentials, generate/manage temporary passes, cloud backup |
All changes are instantly synced to Supabase and reflected on all devices.
Portfolio/
โโโ public/
โ โโโ data/
โ โ โโโ portfolio.csv # Static fallback CSV data
โ โโโ resume/ # Uploaded resume PDF files
โโโ src/
โ โโโ components/
โ โ โโโ admin/
โ โ โ โโโ AdminAuthModal.tsx # Login modal for inline admin
โ โ โ โโโ AdminDashboardModal.tsx # Inline admin panel
โ โ โโโ ui/
โ โ โ โโโ TiltCard.tsx # Reusable 3D mouse tilt component
โ โ โโโ About.tsx # About Me & statistics section
โ โ โโโ Certifications.tsx # PDF.js inline viewer & cert lightbox
โ โ โโโ Contact.tsx # Contact form & social channels
โ โ โโโ Education.tsx # 3D timeline qualifications
โ โ โโโ Experience.tsx # Clickable 3D cards & detail lightbox
โ โ โโโ Footer.tsx # Footer with centered copyright
โ โ โโโ Hero.tsx # Morphing profile & quick actions
โ โ โโโ Projects.tsx # Project detail modals & Live Demo links
โ โ โโโ Services.tsx # Engineering domain capabilities
โ โ โโโ Skills.tsx # Technical competencies grid
โ โ โโโ ThreeBackground.tsx # WebGL particle background
โ โโโ context/
โ โ โโโ PortfolioContext.tsx # Global state, CRUD, Supabase sync
โ โโโ lib/
โ โ โโโ csvData.ts # CSV parse, generate, Supabase fetch/save
โ โ โโโ utils.ts # capitalizeWords & getAssetUrl helpers
โ โ โโโ supabaseClient.ts # Supabase client initialization
โ โโโ pages/
โ โ โโโ AdminPage.tsx # Full admin dashboard page (/admin)
โ โ โโโ Index.tsx # Main portfolio page
โ โโโ App.tsx # React router & global context
โ โโโ index.css # Custom keyframes & styling rules
โ โโโ main.tsx # DOM root entry
โโโ .env # Environment variables (not committed)
โโโ index.html # Favicon & SEO metadata
โโโ tailwind.config.ts
โโโ vite.config.ts # Dev server + /api/portfolio/save endpoint
โโโ README.md
- Email: premkumark182005@gmail.com
- LinkedIn: Prem Kumar K
- GitHub: Premkumark20
- Location: Poonamallee, Chennai, Tamil Nadu, India
Built with โค๏ธ by Prem Kumar K