Skip to content

selvin-paul-raj/dev_portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Selvin PaulRaj - Full-Stack Developer Portfolio

Next.js TypeScript React Tailwind CSS Vercel

A modern, responsive, and feature-rich portfolio website showcasing full-stack development expertise with cutting-edge technologies and optimal performance.

🌟 Live Demo

Visit Portfolio β†’

πŸ“‹ Table of Contents

✨ Features

🎯 Core Functionality

  • Interactive Portfolio Sections: Intro, About, Projects, Skills, Experience, Contact
  • Dynamic Project Showcase: 3 featured projects with live demos and source code
  • Professional Experience Timeline: Detailed work history with animations
  • Skills Visualization: Comprehensive technical skills display
  • Contact Form: Integrated email functionality with React Email and Resend

🎨 User Experience

  • Dark/Light Theme Toggle: Persistent theme switching with smooth transitions
  • Smooth Animations: Framer Motion powered interactions and page transitions
  • Responsive Design: Mobile-first approach with optimal viewing on all devices
  • Interactive Elements: Hover effects, scroll animations, and dynamic content
  • Performance Optimized: Image optimization, lazy loading, and code splitting

πŸ”§ Technical Features

  • Server-Side Rendering: Next.js 14 with App Router for optimal SEO
  • TypeScript Integration: Type-safe development with comprehensive type definitions
  • Modern React Patterns: Custom hooks, context providers, and functional components
  • Code Quality: ESLint configuration with Next.js best practices
  • Analytics Integration: Vercel Analytics and Speed Insights
  • Accessibility: WCAG compliant with semantic HTML and ARIA labels

πŸ› οΈ Tech Stack

Frontend Core

- Next.js 14.0.4          // React framework with App Router
- React 18               // UI library with latest features
- TypeScript 5           // Type-safe JavaScript
- Tailwind CSS 3.3       // Utility-first CSS framework

Animation & Interaction

- Framer Motion 10.16.16 // Advanced animations and gestures
- React Intersection Observer // Scroll-based animations
- React Vertical Timeline // Experience timeline component

Communication & Forms

- React Email 0.0.12     // Email template components
- Resend 2.1.0          // Email delivery service
- React Hot Toast 2.4.1  // Toast notifications

Icons & Assets

- React Icons 4.12.0     // Comprehensive icon library
- Next.js Image          // Optimized image loading
- Custom SVG assets      // Performance-optimized graphics

Analytics & Monitoring

- Vercel Analytics 1.3.1   // User analytics and insights
- Vercel Speed Insights 1.0.14 // Performance monitoring
- Microsoft Clarity        // User behavior analytics

Development Tools

- ESLint 8              // Code linting and quality
- PostCSS 8             // CSS processing
- Autoprefixer 10       // CSS vendor prefixing

πŸ—οΈ Architecture

Component Architecture

β”œβ”€β”€ πŸ“± App Router (Next.js 14)
β”‚   β”œβ”€β”€ 🎨 Layout Components
β”‚   β”‚   β”œβ”€β”€ Header (Navigation)
β”‚   β”‚   β”œβ”€β”€ Footer (Links & Info)
β”‚   β”‚   └── ThemeSwitch (Dark/Light)
β”‚   β”œβ”€β”€ πŸ“„ Page Sections
β”‚   β”‚   β”œβ”€β”€ Intro (Hero Section)
β”‚   β”‚   β”œβ”€β”€ About (Personal Info)
β”‚   β”‚   β”œβ”€β”€ Projects (Portfolio)
β”‚   β”‚   β”œβ”€β”€ Skills (Technical Stack)
β”‚   β”‚   β”œβ”€β”€ Experience (Timeline)
β”‚   β”‚   └── Contact (Form & Links)
β”‚   └── πŸ”§ Utility Components
β”‚       β”œβ”€β”€ SectionHeading
β”‚       β”œβ”€β”€ SectionDivider
β”‚       └── SubmitBtn
β”œβ”€β”€ πŸ”„ Context Providers
β”‚   β”œβ”€β”€ ActiveSectionContext
β”‚   └── ThemeContext
β”œβ”€β”€ 🎯 Custom Hooks
β”‚   β”œβ”€β”€ useSectionInView
β”‚   └── useActiveSectionContext
└── πŸ“Š Data Layer
    β”œβ”€β”€ Static Content (lib/data.tsx)
    β”œβ”€β”€ Type Definitions (lib/types.ts)
    └── Utility Functions (lib/utils.ts)

State Management Pattern

  • Context API: Global state for theme and active section tracking
  • React Hooks: Local component state and side effects
  • Custom Hooks: Reusable stateful logic for section visibility
  • TypeScript: Compile-time type safety and IntelliSense

⚑ Performance

Optimization Strategies

  • Static Generation: Pre-rendered pages for instant loading
  • Image Optimization: Next.js Image component with lazy loading
  • Code Splitting: Dynamic imports for non-critical components
  • Bundle Analysis: Optimized bundle size (149kB total)
  • Caching: Aggressive caching strategies for static assets

Performance Metrics

# Build Output
Route (app)                              Size     First Load JS
β”Œ β—‹ /                                    18.6 kB         149 kB
β”” β—‹ /_not-found                          869 B          82.8 kB
+ First Load JS shared by all            82 kB

SEO & Meta Optimization

  • Structured Data: JSON-LD schema for rich snippets
  • Open Graph: Social media preview optimization
  • Twitter Cards: Enhanced Twitter sharing experience
  • Meta Tags: Comprehensive SEO meta information
  • Sitemap: Automatic sitemap generation

πŸš€ Getting Started

Prerequisites

Node.js 18+ and npm or yarn package manager

Installation

  1. Clone the repository
git clone https://github.com/selvin-paul-raj/dev_portfolio.git
cd dev_portfolio
  1. Install dependencies
npm install
# or
yarn install
  1. Set up environment variables
cp .env.example .env.local

Required environment variables:

# Email Service (Resend)
RESEND_API_KEY=your_resend_api_key

# Analytics (Optional)
NEXT_PUBLIC_VERCEL_ANALYTICS_ID=your_analytics_id
  1. Run the development server
npm run dev
# or
yarn dev
  1. Open in browser
http://localhost:3000

Quick Commands

npm run dev      # Start development server
npm run build    # Build for production
npm run start    # Start production server
npm run lint     # Run ESLint checks

πŸ“ Project Structure

dev_portfolio/
β”œβ”€β”€ πŸ“± app/                    # Next.js App Router
β”‚   β”œβ”€β”€ favicon.ico           # Site favicon
β”‚   β”œβ”€β”€ globals.css           # Global styles
β”‚   β”œβ”€β”€ layout.tsx            # Root layout component
β”‚   β”œβ”€β”€ page.tsx             # Home page component
β”‚   └── profile.jpg          # Profile image
β”œβ”€β”€ 🧩 components/            # React components
β”‚   β”œβ”€β”€ About.tsx            # About section
β”‚   β”œβ”€β”€ Contact.tsx          # Contact form
β”‚   β”œβ”€β”€ Experience.tsx       # Experience timeline
β”‚   β”œβ”€β”€ Footer.tsx           # Site footer
β”‚   β”œβ”€β”€ Header.tsx           # Navigation header
β”‚   β”œβ”€β”€ Intro.tsx            # Hero section
β”‚   β”œβ”€β”€ Project.tsx          # Individual project card
β”‚   β”œβ”€β”€ Projects.jsx         # Projects section
β”‚   β”œβ”€β”€ SectionDivider.tsx   # Visual dividers
β”‚   β”œβ”€β”€ SectionHeading.tsx   # Section titles
β”‚   β”œβ”€β”€ Skills.tsx           # Skills display
β”‚   β”œβ”€β”€ SocialLinks.tsx      # Social media links
β”‚   β”œβ”€β”€ SubmitBtn.tsx        # Form submit button
β”‚   └── ThemeSwitch.tsx      # Theme toggle
β”œβ”€β”€ 🎯 context/               # React Context providers
β”‚   β”œβ”€β”€ active-section-context.tsx  # Active section tracking
β”‚   └── theme-context.tsx           # Theme management
β”œβ”€β”€ πŸ“§ email/                 # Email templates
β”œβ”€β”€ πŸ“š lib/                   # Utility libraries
β”‚   β”œβ”€β”€ data.tsx             # Static content data
β”‚   β”œβ”€β”€ hooks.ts             # Custom React hooks
β”‚   β”œβ”€β”€ types.ts             # TypeScript definitions
β”‚   └── utils.ts             # Utility functions
β”œβ”€β”€ πŸ–ΌοΈ public/               # Static assets
β”‚   β”œβ”€β”€ aicalculator.png     # Project screenshot
β”‚   β”œβ”€β”€ speedtype.png        # Project screenshot
β”‚   β”œβ”€β”€ troothview.png       # Project screenshot
β”‚   β”œβ”€β”€ SPR_Resume.pdf       # Resume document
β”‚   └── selvinpaulrajK_profile.png  # Profile images
β”œβ”€β”€ 🎬 actions/              # Server actions
β”‚   └── sendEmails.ts        # Email sending logic
β”œβ”€β”€ πŸ› οΈ utils/                # Utility functions
β”‚   └── calculateDuration.js # Date calculations
β”œβ”€β”€ βš™οΈ Configuration Files
β”‚   β”œβ”€β”€ .eslintrc.json       # ESLint configuration
β”‚   β”œβ”€β”€ .gitignore          # Git ignore patterns
β”‚   β”œβ”€β”€ next.config.js      # Next.js configuration
β”‚   β”œβ”€β”€ package.json        # Dependencies and scripts
β”‚   β”œβ”€β”€ postcss.config.js   # PostCSS configuration
β”‚   β”œβ”€β”€ tailwind.config.ts  # Tailwind CSS configuration
β”‚   └── tsconfig.json       # TypeScript configuration

πŸ”§ Development

Code Quality Standards

  • TypeScript: Strict type checking enabled
  • ESLint: Next.js recommended configuration
  • Prettier: Code formatting (configured in VS Code settings)
  • Component Architecture: Functional components with hooks
  • Custom Hooks: Reusable stateful logic extraction

Development Workflow

1. Feature Development
   β”œβ”€β”€ Create feature branch
   β”œβ”€β”€ Implement component/feature
   β”œβ”€β”€ Add TypeScript types
   β”œβ”€β”€ Test functionality
   └── Run lint checks

2. Testing & Quality
   β”œβ”€β”€ npm run lint          # Code quality check
   β”œβ”€β”€ npm run build         # Production build test
   └── Manual testing        # UI/UX verification

3. Deployment
   β”œβ”€β”€ Merge to main branch
   β”œβ”€β”€ Automatic Vercel deployment
   └── Production verification

Adding New Sections

// 1. Create component in /components
export default function NewSection() {
  const { ref } = useSectionInView("NewSection", 0.5);
  return <section ref={ref} id="newsection">...</section>;
}

// 2. Add to navigation in /lib/data.tsx
export const links = [
  // ... existing links
  {
    name: "NewSection",
    hash: "#newsection",
    icon: <YourIcon />,
  },
];

// 3. Import and use in /app/page.tsx
import NewSection from "@/components/NewSection";

🌐 Deployment

Vercel Deployment (Recommended)

The project is optimized for Vercel deployment with automatic:

  • Build Pipeline: Automatic builds on git push
  • Environment Variables: Secure environment management
  • Analytics: Built-in performance monitoring
  • Domain Management: Custom domain support

Manual Deployment Steps

1. Build the application
   npm run build

2. Test production build locally
   npm run start

3. Deploy to Vercel
   npx vercel --prod

4. Configure environment variables
   - RESEND_API_KEY
   - Any additional API keys

Alternative Deployment Platforms

  • Netlify: Full static site support
  • AWS Amplify: Enterprise-grade hosting
  • GitHub Pages: Static deployment option
  • Railway: Full-stack deployment

πŸ“± Responsive Design

Breakpoint Strategy

/* Mobile First Approach */
sm: '640px'     // Tablets
md: '768px'     // Small laptops
lg: '1024px'    // Laptops
xl: '1280px'    // Desktops
2xl: '1536px'   // Large screens

Component Responsiveness

  • Navigation: Collapsible mobile menu
  • Project Cards: Responsive grid layout
  • Timeline: Adaptive vertical/horizontal layout
  • Images: Optimized for all screen sizes
  • Typography: Scalable text hierarchy

🎨 Theme & Styling

Design System

// Color Palette
Primary: #805c8b (Purple)
Secondary: #CDECFF (Light Blue)
Background Light: #FAFAF9
Background Dark: #000000
Text Light: #374151
Text Dark: #f3f4f6

Theme Implementation

  • CSS Variables: Dynamic theme switching
  • Tailwind Classes: Conditional dark mode classes
  • Local Storage: Theme preference persistence
  • System Preference: Automatic OS theme detection

Animation Library

// Framer Motion Configurations
Initial: { opacity: 0, y: 100 }
Animate: { opacity: 1, y: 0 }
Transition: { delay: 0.175 }

πŸ“§ Contact Integration

Email Service Setup

The contact form uses Resend for reliable email delivery:

// Required Environment Variables
RESEND_API_KEY=re_xxxxxxxxx

// Email Configuration
From: noreply@yourdomain.com
To: selvinpaulrajk@gmail.com
Template: React Email components

Form Features

  • Validation: Client-side form validation
  • Toast Notifications: Success/error feedback
  • Rate Limiting: Spam prevention
  • Accessibility: Screen reader compatible

πŸ” SEO & Analytics

SEO Optimization

// Metadata Configuration
Title: "Selvin PaulRaj | Full-Stack MERN Developer Portfolio"
Description: "Explore the portfolio of Selvin PaulRaj K..."
Keywords: ["Full-stack Developer", "MERN Stack", "React", "Next.js"]
OpenGraph: Social media optimization
StructuredData: JSON-LD schema markup

Analytics Integration

  • Vercel Analytics: User behavior tracking
  • Speed Insights: Performance monitoring
  • Microsoft Clarity: Heatmap and session recordings
  • Google Verification: Search Console integration

πŸ‘¨β€πŸ’» About the Developer

Selvin PaulRaj K - Full-Stack MERN Developer

πŸŽ“ Education

  • B.Tech Information Technology - DMI College of Engineering (CGPA: 8.4)

πŸ’Ό Professional Experience

  • Founder & CEO - GenXRverse (Mar 2024 - Present)
  • Python Development Intern - OCTANET SERVICES PVT LTD
  • Web Development Intern - VERITECH SOFTWARE IT SERVICES
  • Full Stack Intern - SERVIMOS TECHNOLOGIES PVT LTD

πŸš€ Featured Projects

  1. AI Calculator - Next.js 15 + TypeScript + Gemini AI
  2. TroothView - React + AI Image Verification + Chart.js
  3. Speed Typing - React + TypeScript + Framer Motion + Jest

πŸ› οΈ Technical Skills

Frontend: HTML5, CSS3, JavaScript, TypeScript, React, Next.js, Tailwind CSS Backend: Node.js, Express.js, Python, Flask Database: MongoDB, MySQL Tools: Git, VS Code, Postman, Vercel Other: Redux, Framer Motion, REST APIs, Responsive Design

πŸ“± Connect

πŸ“„ License

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

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

🌟 Show Your Support

Give a ⭐️ if this project helped you or if you found it interesting!


Built with ❀️ by Selvin PaulRaj

Showcasing modern web development with Next.js, TypeScript, and cutting-edge technologies

About

Selvin PaulRaj K's portfolio, built with Next.js 14, TypeScript, Tailwind CSS, and Framer Motion, offers a sleek, responsive design and dynamic animations. It includes features like styled email integration, Vercel Analytics, and optimized performance, creating a professional and engaging showcase of his skills and projects.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors