Skip to content

maybeswayam/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Swayam Adhana | Portfolio

Portfolio Banner React TypeScript Tailwind CSS

AI/ML Developer β€’ Full Stack Engineer β€’ B.Tech CS Student (4th Year, 22 years old)

Live Demo β€’ HistoAI Project β€’ Foot-Insights


πŸ“– Table of Contents


πŸš€ About

A modern, high-performance portfolio website showcasing AI/ML projects and full-stack development expertise. Built with cutting-edge technologies and optimized for speed, accessibility, and user experience.

Highlights

  • 🎨 Modern Design - Clean, minimalist UI with smooth animations and gradient accents
  • πŸŒ™ Dark/Light Mode - Theme toggle with system preference detection
  • πŸ“± Fully Responsive - Optimized for all devices from mobile to desktop
  • ⚑ Performance Optimized - Server-side rendering, lazy loading, and code splitting
  • πŸ”’ Production Ready - Redis-backed persistent storage, proper error handling
  • πŸ“Š Analytics Ready - Integrated with Vercel Analytics

✨ Features

Core Features

Feature Description Technology
🏠 Homepage Hero section, project showcase with full-width stacked cards, testimonials, contact form React 19, Next.js 15
πŸ‘€ About Page Skills, education timeline, fun facts, services TypeScript, Tailwind CSS
πŸ’Ό Projects Gallery Detailed project cards with live demos and source code shadcn/ui, Lucide Icons
πŸ“ Guestbook Persistent visitor messages with Redis backend (production-ready) Upstash Redis, Next.js API Routes
πŸ–ΌοΈ Gallery Image showcase with upload functionality Next.js Image, React
πŸ“§ Contact Form Web3Forms API integration with validation React Hook Form, Zod
🎯 Scroll Progress Global page scroll indicator Custom React Hook
🌐 Navigation Clock-enabled responsive navigation Radix UI

Technical Features

  • SEO Optimized - Meta tags, Open Graph, structured data
  • Type Safe - Full TypeScript coverage with strict mode
  • Accessible - WCAG AA compliant, semantic HTML, keyboard navigation
  • Serverless API - Next.js API routes with Upstash Redis for guestbook
  • Error Boundaries - Graceful error handling and loading states
  • Form Validation - Client and server-side validation with Zod schemas
  • Image Optimization - Next.js Image component with responsive images

πŸ› οΈ Tech Stack

Frontend

Category Technologies
Framework Next.js 15.5.7 (App Router, Server Components)
UI Library React 19.2.0
Language TypeScript 5.x
Styling Tailwind CSS 3.4, tailwindcss-animate
Components shadcn/ui, Radix UI primitives
Icons Lucide React
Forms React Hook Form, Zod validation
Notifications Sonner (toast notifications)
Theme next-themes (dark/light mode)

Backend & Infrastructure

Category Technologies
Database Upstash Redis (serverless, production-ready)
API Next.js API Routes
Forms Web3Forms API
Deployment Vercel
Analytics Vercel Analytics
Version Control Git, GitHub

Development Tools

{
  "dependencies": {
    "@upstash/redis": "^1.36.2",
    "next": "15.5.7",
    "react": "19.2.0",
    "tailwindcss": "^3.4.17"
  },
  "devDependencies": {
    "@types/node": "^22",
    "@types/react": "^19",
    "@types/react-dom": "^19",
    "typescript": "^5"
  }
}

πŸ“ Project Structure

portfolio-work/
β”œβ”€β”€ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ page.tsx                  # Homepage (hero, full-width project cards, contact)
β”‚   β”œβ”€β”€ layout.tsx                # Root layout with providers
β”‚   β”œβ”€β”€ globals.css               # Global styles and Tailwind imports
β”‚   β”œβ”€β”€ about/                    # About page
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ projects/                 # Projects showcase
β”‚   β”‚   β”œβ”€β”€ page.tsx              # Projects list with featured projects
β”‚   β”‚   └── loading.tsx           # Loading skeleton
β”‚   β”œβ”€β”€ gallery/                  # Image gallery
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ guestbook/                # Visitor guestbook
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ project-construction/     # Project detail pages (dynamic)
β”‚   β”‚   └── [slug]/
β”‚   β”‚       └── page.tsx
β”‚   └── api/                      # API routes
β”‚       └── guestbook/
β”‚           └── route.ts          # Guestbook CRUD (Redis-backed)
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ navigation.tsx            # Main navigation with clock
β”‚   β”œβ”€β”€ scroll-progress.tsx       # Scroll indicator
β”‚   β”œβ”€β”€ theme-provider.tsx        # Theme context provider
β”‚   └── ui/                       # shadcn/ui components (40+ components)
β”‚       β”œβ”€β”€ button.tsx
β”‚       β”œβ”€β”€ card.tsx
β”‚       β”œβ”€β”€ input.tsx
β”‚       └── ...
β”œβ”€β”€ lib/                          # Utility functions
β”‚   └── utils.ts                  # cn() helper and utilities
β”œβ”€β”€ hooks/                        # Custom React hooks
β”‚   β”œβ”€β”€ use-mobile.ts             # Mobile detection hook
β”‚   └── use-toast.ts              # Toast notification hook
β”œβ”€β”€ data/                         # Static data
β”‚   └── guestbook.json            # Fallback guestbook data (deprecated)
β”œβ”€β”€ public/                       # Static assets
β”‚   └── images/                   # Project images
β”‚       β”œβ”€β”€ futinsights-homepage-card.png
β”‚       β”œβ”€β”€ futinsights-main-card.png
β”‚       β”œβ”€β”€ histoai-homepage-card.png
β”‚       └── histoai-main-card.png
β”œβ”€β”€ styles/                       # Additional styles
β”‚   └── globals.css
β”œβ”€β”€ .env.local                    # Environment variables (gitignored)
β”œβ”€β”€ .gitignore                    # Git ignore rules
β”œβ”€β”€ ARCHITECTURE.md               # Technical architecture documentation
β”œβ”€β”€ README.md                     # This file
β”œβ”€β”€ components.json               # shadcn/ui configuration
β”œβ”€β”€ next.config.mjs               # Next.js configuration
β”œβ”€β”€ package.json                  # Dependencies and scripts
β”œβ”€β”€ pnpm-lock.yaml                # pnpm lockfile
β”œβ”€β”€ tailwind.config.ts            # Tailwind CSS configuration
└── tsconfig.json                 # TypeScript configuration

🚦 Getting Started

Prerequisites

  • Node.js 18.x or higher
  • pnpm (or npm/yarn)
  • Upstash Redis account (free tier available at upstash.com)
  • Web3Forms API key (optional, for contact form)

Installation

  1. Clone the repository

    git clone https://github.com/maybeswayam/Portfolio.git
    cd portfolio-work
  2. Install dependencies

    pnpm install
    # or
    npm install
  3. Set up environment variables

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

    # Upstash Redis (Required for Guestbook)
    UPSTASH_REDIS_REST_URL="your_upstash_redis_url"
    UPSTASH_REDIS_REST_TOKEN="your_upstash_redis_token"
    
    # Web3Forms (Optional - Contact Form)
    NEXT_PUBLIC_WEB3FORMS_KEY="your_web3forms_key"

    Getting Upstash Redis credentials:

    • Go to upstash.com and create a free account
    • Create a new Redis database
    • Copy the REST URL and REST Token from the database details
  4. Run the development server

    pnpm dev
  5. Open your browser

    Navigate to http://localhost:3000

Build for Production

# Create optimized production build
pnpm build

# Start production server (local)
pnpm start

Deployment (Vercel)

  1. Push your code to GitHub
  2. Import the repository in Vercel
  3. Add environment variables in Vercel project settings:
    • UPSTASH_REDIS_REST_URL
    • UPSTASH_REDIS_REST_TOKEN
  4. Deploy!

πŸ” Environment Variables

Variable Description Required Default
UPSTASH_REDIS_REST_URL Upstash Redis REST API URL Yes -
UPSTASH_REDIS_REST_TOKEN Upstash Redis REST API Token Yes -
NEXT_PUBLIC_WEB3FORMS_KEY Web3Forms API Key for contact form No Included

Why Upstash Redis?

The guestbook feature uses Upstash Redis instead of filesystem storage to ensure compatibility with serverless platforms like Vercel:

  • βœ… Serverless-native - Works perfectly on read-only Vercel deployments
  • βœ… Persistent storage - Data survives redeployments
  • βœ… Free tier available - 10,000 commands/day
  • βœ… Fast - Sub-millisecond latency globally

Note: Filesystem writes (fs.writeFile) don't work in production on Vercel due to ephemeral file systems. Redis solves this limitation.


πŸ’Ό Featured Projects

1. Foot-Insights πŸ†

Football Analytics Platform with ETL Pipeline

A data-driven football analytics platform built on a custom ETL (Extract, Transform, Load) pipeline. Analyzes data from the 2022 FIFA World Cup and Europe's top five leagues (Premier League, La Liga, Serie A, Bundesliga, Ligue 1).

  • πŸ”— Live Demo
  • πŸ“¦ GitHub Repository
  • πŸ“Š Metrics: 1,890 Matches | 680 Players | 130 Teams | 6 Competitions
  • πŸ› οΈ Tech Stack: Next.js, React, TypeScript, Python, ETL Pipelines, Tailwind CSS
  • 🎯 Features: Match analysis, player statistics, team comparisons, tournament insights

ETL Pipeline Highlights:

  • Custom Python data extraction from multiple sources
  • Data transformation and normalization
  • Automated loading into analytics-ready format
  • Comprehensive coverage of international and club competitions

2. HistoAI πŸ”¬

AI-Driven Histopathology Analysis Platform

Deep-learning platform for analyzing histopathology images using MobileNetV2 and Fusion Models. Generates explainable Grad-CAM heatmaps to assist in cancer diagnosis.

  • πŸ”— Live Demo
  • πŸ“Š Metrics: 95%+ Accuracy | <1s Heatmap Generation | 3 AI Models
  • πŸ› οΈ Tech Stack: TensorFlow, PyTorch, Grad-CAM, React, Next.js, FastAPI
  • 🎯 Features: Multi-model inference, explainable AI, medical image analysis

⚑ Performance

Lighthouse Scores

  • Performance: 95+
  • Accessibility: 100
  • Best Practices: 100
  • SEO: 100

Optimizations

  • βœ… Server-side rendering (SSR) for initial page load
  • βœ… Static generation for unchanged content
  • βœ… Image optimization with Next.js Image component
  • βœ… Code splitting and lazy loading
  • βœ… Minified CSS and JavaScript
  • βœ… Font optimization with Geist font family
  • βœ… Redis caching for guestbook entries
  • βœ… Responsive images with proper aspect ratios

🀝 Contributing

Contributions, issues, and feature requests are welcome!

See CONTRIBUTING.md for detailed guidelines.

Quick Start for Contributors

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

πŸ“„ License

This project is open source and available under the MIT License.


πŸ“ž Contact

Swayam Adhana


About

This is my portfolio github repo :)

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors