Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Modern portfolio website with GSAP animations, GitHub integration, AI terminal, and advanced customizations built with Next.js 15, TypeScript, and Tailwind CSS. Live at rudrasahoo.live

License

Notifications You must be signed in to change notification settings

rudra-sah00/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Modern Portfolio with Advanced Animations & GitHub Integration

A cutting-edge, responsive portfolio built with Next.js 15, TypeScript, GSAP animations, and Tailwind CSS that automatically showcases your GitHub repositories with stunning animations and interactive features.

🌐 Live Website: rudrasahoo.live

Portfolio Preview Next.js TypeScript GSAP Tailwind CSS Vercel CI/CD Pipeline codecov Test Coverage Tests

✨ Features

🎯 Core Features

  • GitHub Integration: Automatically fetches and displays your repositories with real-time data
  • Organization Support: Shows repositories from organizations you're part of with custom badges
  • Interactive Terminal: Built-in terminal with AI chat capabilities powered by Google Gemini
  • GSAP Animations: Professional-grade animations with scroll triggers and smooth transitions
  • Smooth Scrolling: Buttery smooth page transitions and element animations
  • Responsive Design: Mobile-first approach with pixel-perfect responsive layouts
  • Dark Theme: Modern dark theme with consistent color palette and accessibility features
  • Performance Optimized: Built with Next.js 15 App Router and optimized for speed

🎨 Animation Features

  • GSAP Timeline Animations: Complex animation sequences with precise timing
  • Scroll-Triggered Animations: Elements animate as they enter the viewport
  • Floating Dock: Smooth hover animations for social media links
  • Text Flip Animations: Eye-catching text reveal animations
  • Sparkle Effects: Interactive sparkle animations on hover
  • Container Parallax: Smooth parallax scrolling effects
  • Stagger Animations: Coordinated animations across multiple elements

πŸ“Š Repository Showcase

  • README Rendering: Full GitHub-flavored markdown with syntax highlighting
  • Mermaid Diagrams: Supports complex Mermaid diagrams in README files
  • Tech Stack Visualization: Interactive language breakdown with animated progress bars
  • Organization Badges: Clean visual indicators for organization repositories
  • Live Links: Direct links to GitHub repositories and live demos
  • Repository Filtering: Smart filtering and categorization of projects
  • Real-time Data: Fresh repository data fetched from GitHub API

πŸ€– AI Terminal Experience

  • Gemini Integration: Advanced AI-powered chat assistance with context awareness
  • Command System: Full Unix-like command interface with autocomplete
  • Contact Form: Integrated email functionality with form validation
  • Interactive Shell: Realistic terminal simulation with command history
  • Custom Commands: Extensible command system for portfolio navigation
  • Chat Mode: Seamless transition between command and chat modes

🎯 Advanced Customizations

  • Vercel Analytics: Real-time website analytics and performance monitoring
  • Speed Insights: Page performance tracking and optimization
  • Custom CSS Variables: Consistent theming system across all components
  • Modular Architecture: Clean, maintainable component structure
  • TypeScript: Full type safety and enhanced developer experience
  • SEO Optimized: Meta tags, Open Graph, and structured data

πŸ—οΈ Technical Architecture

Built with modern web technologies and best practices:

graph TB
    A[Next.js 15 App Router] --> B[Server Components]
    A --> C[Client Components]
    A --> D[GSAP Animations]

    B --> E[API Routes]
    E --> F[GitHub API]
    E --> G[Email Service]
    E --> H[Gemini AI]

    C --> I[Terminal Engine]
    C --> J[Scroll Animations]
    C --> K[Project Showcase]
    C --> L[Floating Dock UI]

    D --> M[Timeline Animations]
    D --> N[Scroll Triggers]
    D --> O[Interactive Effects]

    F --> P[Repository Data]
    F --> Q[README Content]
    F --> R[Language Stats]
    F --> S[Organization Info]

    G --> T[Contact Form]
    I --> U[AI Chat Mode]

    style A fill:#0070f3
    style F fill:#24292e
    style H fill:#4285f4
    style D fill:#88CE02
Loading

πŸ”„ CI/CD Workflow

Automated testing, building, and deployment pipeline powered by GitHub Actions:

graph TB
    Start([Push/PR Event]) --> Draft{Is PR Draft?}
    Draft -->|Yes| Skip[Skip Workflow ⏭️]
    Draft -->|No| Lint[Lint & Type Check πŸ”]

    Lint --> ESLint[ESLint Check]
    Lint --> Prettier[Prettier Check]
    Lint --> TypeCheck[TypeScript Check]

    ESLint --> LintPass{All Pass?}
    Prettier --> LintPass
    TypeCheck --> LintPass

    LintPass -->|No| LintFail[❌ Workflow Failed]
    LintPass -->|Yes| Test[Test & Coverage πŸ§ͺ]

    Test --> RunTests[npm run test:coverage]
    RunTests --> Coverage{Coverage Check}

    Coverage --> Codecov[Upload to Codecov πŸ“Š]
    Coverage --> Artifact1[Upload Coverage Reports]
    Coverage --> PRComment[Comment PR with Results πŸ’¬]

    Codecov --> CovThreshold{Meets Thresholds?}
    CovThreshold -->|Statements β‰₯ 80%| Build
    CovThreshold -->|Branches β‰₯ 70%| Build
    CovThreshold -->|Functions β‰₯ 68%| Build
    CovThreshold -->|Lines β‰₯ 80%| Build
    CovThreshold -->|No| Warning[⚠️ Coverage Warning]

    Warning --> Build[Build Application πŸ—οΈ]
    Build --> InstallDeps[npm ci]
    InstallDeps --> NextBuild[npm run build]
    NextBuild --> Artifact2[Upload Build Artifacts]

    Artifact2 --> BuildPass{Build Success?}
    BuildPass -->|No| BuildFail[❌ Build Failed]
    BuildPass -->|Yes| Security[Security Audit πŸ”’]

    Security --> NPMAudit[npm audit]
    Security --> Outdated[Check Outdated Packages]

    NPMAudit --> SecurityPass{Security OK?}
    Outdated --> SecurityPass

    SecurityPass -->|Yes| PRCheck{Is PR?}
    SecurityPass -->|No| SecurityWarn[⚠️ Security Issues Found]
    SecurityWarn --> PRCheck

    PRCheck -->|Yes| PRStatus[PR Status Check βœ…]
    PRCheck -->|No| Deploy

    PRStatus --> PRSuccess[All Checks Passed! πŸŽ‰]
    PRSuccess --> ReadyMerge[Ready to Merge]

    Deploy[Deploy to Production πŸš€] --> Vercel[Vercel Deployment]
    Vercel --> VercelBuild[Build on Vercel]
    VercelBuild --> VercelDeploy[Deploy to Edge Network]
    VercelDeploy --> Live[βœ… Live at rudrasahoo.live]

    Live --> Analytics[Vercel Analytics πŸ“ˆ]
    Live --> SpeedInsights[Speed Insights ⚑]

    style Start fill:#4CAF50
    style Skip fill:#9E9E9E
    style LintFail fill:#f44336
    style BuildFail fill:#f44336
    style Warning fill:#FF9800
    style SecurityWarn fill:#FF9800
    style Live fill:#4CAF50
    style Codecov fill:#F01F7A
    style Vercel fill:#000000
    style PRSuccess fill:#4CAF50
    style ReadyMerge fill:#2196F3
Loading

Workflow Details

πŸ” Lint & Type Check

  • ESLint: Code quality and style enforcement
  • Prettier: Code formatting validation
  • TypeScript: Type safety verification
  • Node Version: 20.x with npm cache

πŸ§ͺ Test & Coverage

  • Test Runner: Jest with React Testing Library
  • Coverage Thresholds:
    • Statements: β‰₯ 80%
    • Branches: β‰₯ 70%
    • Functions: β‰₯ 68%
    • Lines: β‰₯ 80%
  • Coverage Tools: Codecov integration with PR comments
  • Test Count: 278 comprehensive tests across 19 suites

πŸ—οΈ Build Process

  • Framework: Next.js 15 with App Router
  • Output: Optimized static and server bundles
  • Artifacts: Build output uploaded for deployment
  • Environment: Production-ready configuration

πŸ”’ Security Audit

  • npm audit: Vulnerability scanning
  • Dependency Check: Outdated package detection
  • Severity Level: Moderate and above
  • Auto-remediation: Continuous monitoring

πŸš€ Deployment

  • Platform: Vercel Edge Network
  • Trigger: Automatic on main branch push
  • Preview: PR preview deployments
  • Analytics: Real-time monitoring
  • Performance: Speed Insights tracking

πŸ“Š PR Validation

  • Status Checks: All jobs must pass
  • Coverage Reports: Automatic PR comments
  • Build Verification: Ensures production readiness
  • Merge Protection: Enforced via branch rules

πŸ› οΈ Tech Stack

  • Frontend: Next.js 15, React 18, TypeScript 5
  • Styling: Tailwind CSS, CSS Modules, Custom CSS Variables
  • Animations: GSAP 3, Framer Motion, CSS Transitions
  • APIs: GitHub REST API, Google Gemini AI, Resend Email
  • Deployment: Vercel with Edge Functions
  • Analytics: Vercel Analytics & Speed Insights
  • Performance: Image optimization, Code splitting, Edge caching

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm/yarn/pnpm

Installation

  1. Clone the repository

    git clone https://github.com/rudra-sah00/portfolio.git
    cd portfolio
  2. Install dependencies

    npm install
  3. Configure Environment Variables

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

    cp .env.local.example .env.local

    Then add your tokens:

    # Required: GitHub Personal Access Token
    # Get from: https://github.com/settings/tokens
    # Scopes: repo, read:org
    GITHUB_TOKEN=your_github_pat_here
    
    # Optional: Email configuration for contact form
    EMAIL_USER=[email protected]
    EMAIL_PASS=your-app-password
    EMAIL_TO=[email protected]
    
    # Optional: Gemini AI for terminal chat
    GEMINI_API_KEY=your_gemini_api_key
    
    # Site URL
    NEXT_PUBLIC_SITE_URL=https://rudrasahoo.live
  4. Configure GitHub Username Update the username in src/components/ProjectsSection.tsx:

    const username = "your-github-username";
  5. Start Development Server

    npm run dev
  6. Open in Browser Navigate to http://localhost:3000

πŸ“ Project Structure

portfolio/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”‚   β”‚   β”œβ”€β”€ contact/       # Email functionality
β”‚   β”‚   β”‚   └── repositories/  # GitHub API integration
β”‚   β”‚   β”œβ”€β”€ globals.css        # Global styles
β”‚   β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   β”‚   └── page.tsx          # Home page
β”‚   β”œβ”€β”€ components/            # React components
β”‚   β”‚   β”œβ”€β”€ projects/         # Project showcase components
β”‚   β”‚   β”‚   β”œβ”€β”€ ProjectInfo.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ReadmeViewer.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ TechStack.tsx
β”‚   β”‚   β”‚   └── *.module.css
β”‚   β”‚   β”œβ”€β”€ ui/               # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ Hero.tsx          # Hero section
β”‚   β”‚   β”œβ”€β”€ ProjectsSection.tsx
β”‚   β”‚   β”œβ”€β”€ TerminalPopup.tsx
β”‚   β”‚   └── Footer.tsx
β”‚   β”œβ”€β”€ lib/                  # Utilities and services
β”‚   β”‚   β”œβ”€β”€ api/             # API clients
β”‚   β”‚   β”œβ”€β”€ terminal/        # Terminal engine
β”‚   β”‚   └── utils.ts
β”‚   β”œβ”€β”€ types/               # TypeScript definitions
β”‚   └── hooks/               # Custom React hooks
β”œβ”€β”€ public/                  # Static assets
β”œβ”€β”€ .env.local              # Environment variables
└── package.json           # Dependencies

πŸ”§ Configuration

GitHub Token Setup

The portfolio comes with a pre-configured GitHub token for fetching repository data. If you need to use your own token, update it in:

  • src/app/api/repositories/route.ts (line 23)

AI Chat Integration

The Gemini AI chat feature is pre-configured and ready to use.

Email Service

Contact form emails are configured to work out of the box.

🎨 Customization

Styling

  • CSS Variables: Located in src/app/globals.css
  • Component Styles: Individual .module.css files
  • Responsive Design: Mobile-first approach with breakpoints

GitHub Integration

  • Username: Update in ProjectsSection.tsx
  • Repository Filtering: Modify API route logic
  • README Rendering: Customize in ReadmeViewer.tsx

Terminal Commands

  • Add Commands: Extend src/lib/terminal/commands/index.ts
  • AI Integration: Configure in src/lib/terminal/chat/

πŸ“Š Features in Detail

Repository Showcase

sequenceDiagram
    participant Client
    participant API
    participant GitHub

    Client->>API: Request repositories
    API->>GitHub: Fetch user repos
    API->>GitHub: Fetch org repos
    API->>GitHub: Fetch README content
    API->>GitHub: Fetch language stats
    API->>Client: Return processed data

    Note over Client: Render with animations
Loading

Tech Stack Visualization

  • Language percentage calculation
  • Color-coded progress bars
  • Responsive layout

Organization Support

  • Automatic detection of organization repositories
  • Visual badges with organization names
  • Separate filtering and display logic

πŸš€ Deployment

Vercel (Recommended)

  1. Connect Repository

    vercel --prod
  2. Deploy The application will deploy automatically without any environment variable configuration needed.

  3. Domain Setup Configure custom domain in Vercel settings

Other Platforms

Build the project:

npm run build

The output will be in the .next folder, ready for deployment.

πŸ§ͺ Testing

# Type checking
npm run type-check

# Linting
npm run lint

# Build verification
npm run build

πŸ”’ API Configuration

All API keys are pre-configured in the application:

Service Status Location
GitHub API βœ… Configured src/app/api/repositories/route.ts
Gemini AI βœ… Configured src/lib/terminal/chat/gemini.ts
Email Service βœ… Configured src/app/api/contact/route.ts

Note: API keys are hardcoded for easy deployment. For production use with sensitive data, consider using environment variables.

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Contact & Links


Made with ❀️ using Next.js 15, TypeScript, GSAP & Modern Web Technologies

πŸš€ Live at: rudrasahoo.live

About

Modern portfolio website with GSAP animations, GitHub integration, AI terminal, and advanced customizations built with Next.js 15, TypeScript, and Tailwind CSS. Live at rudrasahoo.live

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages