Skip to content

Terminal-style interactive portfolio built with Next.js, showcasing my skills, experience, and projects through command-based navigation.

License

Notifications You must be signed in to change notification settings

M0rs-Ruki/terminal

Repository files navigation

πŸ–₯️ Terminal Portfolio

A modern, interactive terminal-themed portfolio website built with Next.js 16, React 19, TypeScript, and Tailwind CSS. Features a unique terminal interface with matrix-style animations and AI-powered chat functionality.

Live Demo Next.js React TypeScript Tailwind CSS

🌟 Features

  • Terminal Interface: Unique command-line style navigation system
  • Matrix Animations: Cyberpunk-inspired visual effects with falling code
  • AI Chat Integration: Powered by Google Gemini AI for interactive conversations
  • Responsive Design: Fully optimized for mobile, tablet, and desktop devices
  • SEO Optimized: Enhanced with custom sitemap.xml and robots.txt for better search engine visibility
  • Type-Safe: Built with TypeScript for robust code quality
  • Modern Stack: Leveraging the latest Next.js 16 App Router and React 19
  • Dark Theme: Eye-friendly terminal-inspired dark mode
  • Smooth Animations: Typewriter effects, hover animations, and transitions

πŸš€ Live Demo

Visit the live site: Your Vercel URL

πŸ“Έ Screenshots

πŸ› οΈ Tech Stack

Frontend

Backend & AI

Development Tools

  • Linting: ESLint with Next.js config
  • PostCSS: Modern CSS processing with Tailwind

πŸ“ Project Structure

terminal/
β”œβ”€β”€ app/                          # Next.js App Router directory
β”‚   β”œβ”€β”€ about/                    # About page
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ api/                      # API routes
β”‚   β”‚   └── chat/                 # AI chat endpoint
β”‚   β”‚       └── route.ts
β”‚   β”œβ”€β”€ contact/                  # Contact page
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ projects/                 # Projects showcase page
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ skills/                   # Skills page
β”‚   β”‚   └── page.tsx
β”‚   β”œβ”€β”€ globals.css               # Global styles
β”‚   β”œβ”€β”€ layout.tsx                # Root layout component
β”‚   β”œβ”€β”€ page.tsx                  # Home page
β”‚   β”œβ”€β”€ robots.ts                 # SEO: robots.txt configuration
β”‚   └── sitemap.ts                # SEO: sitemap.xml generation
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ IdentityComp.tsx          # Identity/profile component
β”‚   β”œβ”€β”€ TerminalComp.tsx          # Main terminal component
β”‚   └── TerminalComp/             # Terminal sub-components
β”‚       β”œβ”€β”€ About.tsx             # About section component
β”‚       β”œβ”€β”€ Contact.tsx           # Contact section component
β”‚       β”œβ”€β”€ Projects.tsx          # Projects section component
β”‚       └── Skills.tsx            # Skills section component
β”œβ”€β”€ public/                       # Static assets
β”‚   β”œβ”€β”€ css/                      # Additional CSS files
β”‚   β”‚   β”œβ”€β”€ IdentityComp.css
β”‚   β”‚   └── TerminalComp.css
β”‚   β”œβ”€β”€ images/                   # Image assets
β”‚   └── manifest.json             # PWA manifest
β”œβ”€β”€ eslint.config.mjs             # ESLint configuration
β”œβ”€β”€ next.config.ts                # Next.js configuration
β”œβ”€β”€ next-env.d.ts                 # Next.js TypeScript declarations
β”œβ”€β”€ package.json                  # Project dependencies
β”œβ”€β”€ postcss.config.mjs            # PostCSS configuration
β”œβ”€β”€ tsconfig.json                 # TypeScript configuration
└── README.md                     # Project documentation

πŸ”§ Installation & Setup

Prerequisites

  • Node.js 18+ installed
  • npm or yarn package manager
  • Google Gemini API key (for AI chat feature)

Steps

  1. Clone the repository
git clone https://github.com/M0rs-Ruki/terminal.git
cd terminal
  1. Install dependencies
npm install
# or
yarn install
  1. Set up environment variables

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

GEMINI_API_KEY=your_google_gemini_api_key_here
  1. Run the development server
npm run dev
# or
yarn dev
  1. Open your browser

Navigate to http://localhost:3000

πŸ“œ Available Scripts

# Start development server
npm run dev

# Build for production
npm run build

# Start production server
npm run start

# Run ESLint
npm run lint

🎨 Key Components

Terminal Interface

The main terminal component provides an interactive command-line experience with features like:

  • Command history navigation
  • Tab completion
  • Custom command handlers
  • Matrix rain background effect

AI Chat Integration

Powered by Google Gemini AI, the chat feature allows visitors to:

  • Ask questions about my work and experience
  • Get instant responses
  • Have natural conversations

SEO Optimization

Enhanced search engine visibility through:

  • sitemap.ts: Dynamically generates sitemap.xml with all pages
  • robots.ts: Configures web crawler access and sitemap location
  • Metadata optimization in layout.tsx
  • Semantic HTML structure

🌐 SEO Features

This portfolio includes dedicated SEO optimization files:

app/sitemap.ts

  • Automatically generates sitemap.xml
  • Lists all pages with their URLs and metadata
  • Helps search engines discover and index content
  • Updates dynamically based on routes

app/robots.ts

  • Configures which pages search engines can crawl
  • Points to the sitemap.xml location
  • Optimizes crawling efficiency
  • Follows SEO best practices

Additional SEO Enhancements

  • Meta tags for description, keywords, and Open Graph
  • Structured data for better search results
  • Optimized page titles and descriptions
  • Semantic HTML5 elements

🚒 Deployment

This project is deployed on Vercel for optimal performance and seamless CI/CD.

Deploy Your Own

Deploy with Vercel

Manual Deployment

  1. Install Vercel CLI (if not already installed)
npm install -g vercel
  1. Deploy
vercel
  1. Set environment variables in Vercel dashboard:
    • Go to Project Settings β†’ Environment Variables
    • Add GEMINI_API_KEY

🎯 Features Breakdown

Responsive Design

  • Mobile-first approach
  • Breakpoints for mobile, tablet, and desktop
  • Touch-friendly interface
  • Optimized typography scaling

Animations

  • Typewriter text effects
  • Matrix-style falling code
  • Smooth page transitions
  • Hover effects and micro-interactions

Performance

  • Next.js 16 App Router for optimal loading
  • React 19 with enhanced rendering
  • Code splitting and lazy loading
  • Optimized images and assets

πŸ“± Pages Overview

  • Home (/): Terminal interface with navigation commands
  • About (/about): Personal background, education, and current focus
  • Skills (/skills): Technical skills organized by category
  • Projects (/projects): Portfolio of completed projects
  • Contact (/contact): Contact information and social links

🀝 Connect With Me

πŸ“ License

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

πŸ™ Acknowledgments

  • Inspired by classic terminal interfaces and cyberpunk aesthetics
  • Built with modern web technologies
  • AI chat powered by Google Gemini
  • Deployed on Vercel's edge network

πŸ’‘ Future Enhancements

  • Add blog section with MDX support
  • Implement dark/light theme toggle
  • Add more terminal commands
  • Integrate analytics dashboard
  • Add project filtering and search
  • Implement PWA features for offline access
  • Add more AI chat personalities

πŸ› Bug Reports

Found a bug? Please open an issue on GitHub Issues.

⭐ Show Your Support

If you like this project, please consider giving it a ⭐ on GitHub!


Built with πŸ’š by Anup Pradhan

Last Updated: November 2025

About

Terminal-style interactive portfolio built with Next.js, showcasing my skills, experience, and projects through command-based navigation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages