Skip to content

Latest commit

 

History

History
417 lines (336 loc) · 12.2 KB

File metadata and controls

417 lines (336 loc) · 12.2 KB

Product Requirements Document (PRD)

Modern Portfolio Dashboard

Version: 1.0 Last Updated: January 2026 Status: In Development


1. Executive Summary

1.1 Product Vision

A world-class, modern portfolio website that showcases professional work through an immersive, visually stunning experience. The platform combines cutting-edge web technologies with thoughtful UX design to create a memorable impression on visitors while providing robust content management capabilities.

1.2 Target Audience

  • Primary: Potential employers, recruiters, and hiring managers
  • Secondary: Fellow developers, collaborators, and open-source community
  • Tertiary: Clients seeking freelance/contract work

1.3 Key Value Propositions

  1. Immersive Experience: 3D elements, smooth animations, and particle effects create engagement
  2. Performance First: Optimized for Core Web Vitals and accessibility
  3. Easy Content Management: Admin dashboard for managing projects, blog posts, and skills
  4. Professional Presentation: Modern glass-morphism design with space theme

2. Product Goals & Success Metrics

2.1 Business Goals

Goal Metric Target
Increase engagement Average session duration > 2 minutes
Improve discoverability Lighthouse SEO score > 90
Demonstrate technical skills Performance score > 85
Generate leads Contact form submissions Track growth

2.2 User Goals

  • Quickly understand the developer's skills and experience
  • View portfolio projects with detailed information
  • Read technical blog posts and insights
  • Easily contact the developer
  • Experience a memorable, professional website

3. Features & Requirements

3.1 Public-Facing Pages

3.1.1 Home Page

Purpose: Create strong first impression and guide visitors to key content

Requirements:

  • Hero section with animated content and 3D elements
  • Particle background with performance optimization
  • Services/expertise showcase cards
  • Featured projects section with tilt cards
  • Call-to-action section
  • Reduced motion support for accessibility

Components:

  • ParticleBackground - Interactive particle system
  • HeroContent - Animated text and CTA buttons
  • Hero3D - 3D decorative element
  • ServiceCards - Skills and services display

3.1.2 About Page

Purpose: Provide detailed background and skills information

Requirements:

  • Professional introduction with personality
  • Interactive skills visualization
  • Career journey timeline
  • Statistics counter with animations
  • Personal interests/values section

Components:

  • SkillsVisualization - Animated skill categories
  • JourneyTimeline - Career milestones
  • StatsCounter - Animated statistics

3.1.3 Portfolio Page

Purpose: Showcase projects with filtering and details

Requirements:

  • Project grid with 3D tilt cards
  • Category/technology filtering
  • Project detail modal
  • Links to live demos and GitHub repos
  • Lazy loading for images

Components:

  • FilterBar - Technology/category filters
  • ProjectCard3D - Individual project cards
  • ProjectModal - Detailed project view

3.1.4 Blog Page

Purpose: Share knowledge and demonstrate expertise

Requirements:

  • Featured post highlight
  • Post grid with tilt cards
  • Tag-based organization
  • Reading time estimates
  • Search functionality (future)

Components:

  • FeaturedPost - Hero blog post display
  • ReadingProgress - Scroll progress indicator
  • ScrollToTopButton - Navigation helper

3.1.5 Blog Post Page

Purpose: Display individual articles with engagement features

Requirements:

  • Rich text content rendering
  • Reading progress bar
  • Share functionality
  • Comments section
  • Related posts (future)

3.1.6 Contact Page

Purpose: Enable visitor communication

Requirements:

  • Floating label form inputs
  • Form validation with Zod
  • Success animation overlay
  • Contact information display
  • Social media links
  • Response time indicator

Components:

  • FloatingInput / FloatingTextarea - Animated form fields
  • SuccessAnimation - Confirmation with confetti

3.2 Admin Dashboard

3.2.1 Authentication

  • Secure login with bcrypt password hashing
  • Session-based authentication
  • Protected routes
  • Password reset (future)

3.2.2 Dashboard Overview

  • Analytics summary
  • Recent activity
  • Quick actions

3.2.3 Project Management

  • CRUD operations for projects
  • Technology tagging
  • Image upload/URL support
  • AI-powered thumbnail generation (Gemini)
  • Batch image regeneration
  • Drag-and-drop ordering (future)

3.2.4 Blog Management

  • Rich text editor (TipTap)
  • Draft/publish workflow
  • Tag management
  • SEO metadata (future)

3.2.5 Skills Management

  • Add/edit/delete skills
  • Category organization
  • Proficiency levels

3.2.6 AI Image Generation

Purpose: Automatically generate unique, project-specific thumbnails

Requirements:

  • Google Gemini integration (Nano Banana model)
  • Description-based visual concept extraction
  • Unique color palette per project
  • Single project regeneration
  • Batch regeneration for all projects
  • Fallback chain (Gemini → GitHub → Placeholder)

Technical Implementation:

  • Model: gemini-2.5-flash-image (Nano Banana)
  • Storage: Base64 data URLs in database
  • Prompt: Dynamic based on project description analysis

3.3 Design System

3.3.1 Theme

  • Mode: Dark only (space theme)
  • Primary: Electric purple (#8b5cf6)
  • Secondary: Cosmic teal
  • Accent: Nebula pink
  • Background: Deep space gradient

3.3.2 Components

  • GlassCard - Glass-morphism containers
  • TiltCard - 3D hover effect cards
  • AnimatedPage - Page transition wrapper
  • AnimatedSection - Scroll-triggered animations
  • StaggerContainer/StaggerItem - Sequential animations

3.3.3 Animation System

  • Library: Framer Motion + GSAP
  • Scroll: Lenis smooth scrolling
  • Particles: TSParticles
  • 3D: Spline integration ready
  • Accessibility: useReducedMotion hook

4. Technical Architecture

4.1 Technology Stack

Layer Technology Purpose
Frontend React 18 + TypeScript UI framework
Styling Tailwind CSS + shadcn/ui Design system
Animations Framer Motion + GSAP Motion design
Routing Wouter Lightweight router
State TanStack Query + Zustand Data & UI state
Backend Express.js API server
Database PostgreSQL + Drizzle ORM Data persistence
Auth Passport.js + bcrypt Authentication
AI Images Google Gemini (Nano Banana) Thumbnail generation
Build Vite Development & bundling

4.2 Project Structure

portfolio-template/
├── client/
│   └── src/
│       ├── components/
│       │   ├── 3d/           # 3D effects (TiltCard, Spline)
│       │   ├── about/        # About page components
│       │   ├── blog/         # Blog components
│       │   ├── contact/      # Contact components
│       │   ├── home/         # Home page components
│       │   ├── layout/       # Layout components (GlassCard)
│       │   ├── portfolio/    # Portfolio components
│       │   └── ui/           # shadcn/ui components
│       ├── hooks/            # Custom React hooks
│       ├── lib/              # Utilities and helpers
│       └── pages/            # Page components
├── server/
│   ├── routes.ts             # API endpoints
│   └── lib/                  # Server utilities
├── db/
│   └── schema.ts             # Database schema
└── docs/                     # Documentation

4.3 Database Schema

projects       - Portfolio projects
posts          - Blog articles
skills         - Technical skills
messages       - Contact form submissions
comments       - Blog comments
analytics      - Page view tracking
admin_users    - Admin authentication

4.4 API Endpoints

Method Endpoint Description
GET /api/projects List all projects
POST /api/projects Create project (admin)
PUT /api/projects/:id Update project (admin)
DELETE /api/projects/:id Delete project (admin)
GET /api/posts List all posts
GET /api/posts/:slug Get post by slug
POST /api/posts Create post (admin)
PUT /api/posts/:id Update post (admin)
DELETE /api/posts/:id Delete post (admin)
GET /api/skills List all skills
POST /api/messages Submit contact form
POST /api/auth/login Admin login
POST /api/auth/logout Admin logout
GET /api/image-generation/status Check Gemini status
POST /api/projects/:id/regenerate-image Regenerate thumbnail
POST /api/projects/regenerate-images-batch Batch regenerate

5. Non-Functional Requirements

5.1 Performance

  • Lighthouse Performance Score: > 85
  • First Contentful Paint: < 1.5s
  • Largest Contentful Paint: < 2.5s
  • Cumulative Layout Shift: < 0.1
  • Code splitting for route-based chunks

5.2 Accessibility

  • WCAG 2.1 AA compliance
  • Keyboard navigation support
  • Screen reader compatibility
  • Reduced motion preferences respected
  • Color contrast ratios met

5.3 Security

  • Input sanitization
  • CSRF protection
  • Secure session management
  • Environment variable secrets
  • SQL injection prevention (ORM)

5.4 SEO

  • Semantic HTML structure
  • Meta tags and Open Graph
  • Sitemap generation
  • robots.txt configuration
  • Structured data (future)

6. Development Phases

Phase 1: Foundation ✅

  • Dependencies and tooling
  • Base theme configuration
  • Database schema

Phase 2: Navigation & Layout ✅

  • Glass-morphism navigation
  • Page transitions
  • Mobile responsiveness

Phase 3: Home Page ✅

  • Hero with 3D elements
  • Particle background
  • Service cards

Phase 4: Portfolio Page ✅

  • 3D project cards
  • Filtering system
  • Project modals

Phase 5: About Page ✅

  • Skills visualization
  • Timeline component
  • Stats counter

Phase 6: Blog & Contact ✅

  • Featured posts
  • Reading progress
  • Floating input forms
  • Success animations

Phase 7: Polish ✅

  • Code splitting
  • Performance optimization
  • Accessibility audit
  • Error boundaries
  • AI image generation (Gemini integration)

Phase 8: Deployment (Current)

  • Vercel configuration
  • Environment setup
  • Domain configuration
  • Analytics integration

7. Future Enhancements

7.1 Near-term

  • Blog search functionality
  • Related posts algorithm
  • Project image gallery
  • Dark/light theme toggle
  • i18n support

7.2 Long-term

  • AI-powered chatbot
  • Resume/CV download
  • Newsletter subscription
  • Case study pages
  • Client testimonials
  • Real-time analytics dashboard
  • Custom image prompts per project
  • Image style presets (realistic, cartoon, etc.)

8. Dependencies & Risks

8.1 Technical Dependencies

  • Node.js >= 18.0.0
  • PostgreSQL database
  • Vercel (or similar) hosting

8.2 Risks & Mitigations

Risk Impact Mitigation
Animation performance on low-end devices Medium Reduced motion support, lazy loading
Database costs scaling Low Efficient queries, caching
Third-party library updates Low Lock versions, regular updates

Appendix

A. Design References

  • Glass-morphism: Apple Vision Pro, Linear
  • Space theme: Stripe, Vercel
  • Animations: Framer, Lottie

B. Related Documents