Skip to content

MishraShardendu22/MishraShardendu22-Frontend-PersonalWebsite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Shardendu Mishra - Personal Website

A modern, full-stack portfolio website built with Next.js 15, featuring a blog system, admin panel, and dual backend architecture with load balancing.

Portfolio Preview React TypeScript Tailwind CSS PostgreSQL

🌟 Features

Portfolio Sections

  • Hero Section - Animated introduction with modern design
  • Education - Academic background and achievements
  • Skills - Interactive skill showcase with pagination
  • Projects - Portfolio projects with detailed descriptions
  • Experience - Professional work history
  • Certifications - Professional certifications and achievements
  • Contact - Contact information and social links

Blog System

  • Rich Text Editor - TipTap-based markdown editor
  • Categories & Tags - Organized content management
  • Comments System - User interaction and engagement
  • Like & Bookmark - Social features for content
  • View Tracking - Analytics and engagement metrics
  • Search & Filtering - Advanced content discovery
  • Revision History - Content version control
  • Reporting System - Content moderation tools

Admin Panel

  • Authentication - Secure admin login system
  • Dashboard - Overview of site statistics
  • Content Management - CRUD operations for all content
  • User Management - User profiles and permissions
  • Analytics - Detailed performance metrics
  • Moderation - Report handling and content review

Technical Features

  • Dual Backend Architecture - Next.js API + Go backend with load balancing
  • Real-time Updates - Live content synchronization
  • Responsive Design - Mobile-first approach
  • Dark/Light Theme - Theme switching with system preference
  • SEO Optimized - Meta tags, structured data, and performance
  • Performance Optimized - Image optimization, lazy loading, caching

πŸ—οΈ Architecture

Frontend (Next.js 15)

src/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ admin/             # Admin panel routes
β”‚   β”œβ”€β”€ api/               # Next.js API routes
β”‚   β”œβ”€β”€ blog/              # Blog system routes
β”‚   β”œβ”€β”€ projects/          # Project pages
β”‚   β”œβ”€β”€ experiences/       # Experience pages
β”‚   └── certifications/    # Certification pages
β”œβ”€β”€ components/            # Reusable UI components
β”‚   β”œβ”€β”€ ui/               # Base UI components (shadcn/ui)
β”‚   β”œβ”€β”€ admin/            # Admin-specific components
β”‚   β”œβ”€β”€ blog/             # Blog-specific components
β”‚   └── main/             # Portfolio section components
β”œβ”€β”€ db/                   # Database schemas
β”œβ”€β”€ hooks/                # Custom React hooks
β”œβ”€β”€ lib/                  # Utility libraries
β”œβ”€β”€ services/             # API service layer
└── util/                 # Utility functions

Backend Architecture

  • Next.js API Routes - Blog system, user management, authentication
  • Go Backend - Portfolio data (projects, experiences, skills, certifications)
  • Load Balancer - Round-robin distribution between backends
  • PostgreSQL - Primary database with Drizzle ORM

Database Schema

-- Core Tables
users, sessions, accounts, verifications
blog, comments, likes, bookmarks, views
categories, blog_categories
followers, notifications, reports
user_profiles, blog_revisions

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL 13+
  • Go 1.21+ (for backend)
  • pnpm (recommended) or npm

Environment Variables

Create a .env.local file:

# Database
DATABASE_URL="postgresql://user:password@localhost:5432/portfolio"

# Backend URLs (Load Balancer)
BACKEND_1="http://localhost:8080"
BACKEND_2="http://localhost:8081"
BACKEND_3="http://localhost:8082"

# Next.js
NEXT_PUBLIC_BASE_URL="http://localhost:3000"

# Authentication
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"

# Optional: Analytics
NEXT_PUBLIC_GA_ID="your-ga-id"

Installation

  1. Clone the repository
git clone https://github.com/ShardenduMishra22/portfolio-frontend.git
cd portfolio-frontend
  1. Install dependencies
pnpm install
  1. Set up the database
# Run database migrations
pnpm drizzle-kit push

# Generate types (optional)
pnpm drizzle-kit generate
  1. Start the development server
pnpm dev
  1. Access the application

Backend Setup

The Go backend is available at: https://github.com/ShardenduMishra22/portfolio-backend

Follow the setup instructions in the backend repository to complete the full-stack setup.

πŸ› οΈ Development

Available Scripts

pnpm dev          # Start development server
pnpm build        # Build for production
pnpm start        # Start production server
pnpm lint         # Run ESLint
pnpm format       # Format code with Prettier
pnpm type-check   # Run TypeScript type checking

Code Structure

API Routes

  • /api/blogs/* - Blog system endpoints
  • /api/users/* - User management
  • /api/proxy/* - Load balancer proxy to Go backend
  • /api/auth/* - Authentication endpoints

Components

  • UI Components - Reusable shadcn/ui components
  • Admin Components - Admin panel specific components
  • Blog Components - Blog system components
  • Main Components - Portfolio section components

Services

  • API Services - Centralized API calls
  • Auth Services - Authentication and authorization
  • Backend Services - Go backend integration

Database Management

# Generate migration
pnpm drizzle-kit generate

# Push schema changes
pnpm drizzle-kit push

# Studio (database GUI)
pnpm drizzle-kit studio

🎨 Styling

Design System

  • Tailwind CSS 4 - Utility-first CSS framework
  • Custom CSS Variables - Theme-aware design tokens
  • shadcn/ui - High-quality React components
  • Custom Animations - Smooth transitions and micro-interactions

Theme Support

  • Light Theme - Clean, professional appearance
  • Dark Theme - Modern, eye-friendly design
  • System Preference - Automatic theme switching
  • Custom Colors - Brand-specific color palette

πŸ“Š Performance

Optimization Features

  • Next.js 15 - Latest performance improvements
  • Turbopack - Fast development builds
  • Image Optimization - Automatic image compression
  • Code Splitting - Lazy loading of components
  • Caching - Strategic caching strategies
  • CDN Ready - Optimized for content delivery

Analytics

  • Vercel Analytics - Performance monitoring
  • Speed Insights - Core Web Vitals tracking
  • Custom Metrics - Blog engagement analytics

πŸ”’ Security

Authentication

  • Better Auth - Modern authentication library
  • JWT Tokens - Secure token-based authentication
  • Session Management - Secure session handling
  • Role-based Access - Admin and user permissions

Data Protection

  • Input Validation - Zod schema validation
  • SQL Injection Prevention - Parameterized queries
  • XSS Protection - Content sanitization
  • CSRF Protection - Cross-site request forgery prevention

πŸš€ Deployment

Vercel (Recommended)

# Install Vercel CLI
npm i -g vercel

# Deploy
vercel --prod

Environment Setup

  1. Set up PostgreSQL database
  2. Configure environment variables
  3. Deploy Go backend
  4. Configure load balancer
  5. Deploy Next.js frontend

Production Checklist

  • Environment variables configured
  • Database migrations applied
  • SSL certificates installed
  • CDN configured
  • Monitoring set up
  • Backup strategy implemented

🀝 Contributing

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

Development Guidelines

  • Follow TypeScript best practices
  • Use conventional commits
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation

πŸ“ License

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

πŸ‘¨β€πŸ’» Author

Shardendu Mishra

πŸ™ Acknowledgments

πŸ“ž Support

If you have any questions or need help:


⭐ Star this repository if you found it helpful!

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages