import React, { useState, useEffect, useRef } from 'react'; import { Github, Linkedin, Mail, ExternalLink, Code2, User, Briefcase, Cpu, ChevronDown, Menu, X, Globe, Terminal, Database, Layout, Gift, ShoppingCart, Music, ClipboardCopy, Download // New icon for download } from 'lucide-react'; const EMAIL_ADDRESS = "harikrishnamanoj2@gmail.com"; const PHONE_NUMBER = "+919539440572"; // Custom hook for scroll reveal animation const RevealOnScroll = ({ children, className = "" }) => { const [isVisible, setIsVisible] = useState(false); const ref = useRef(null); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setIsVisible(true); observer.unobserve(entry.target); } }, { threshold: 0.1, rootMargin: "0px 0px -50px 0px" } ); if (ref.current) { observer.observe(ref.current); } return () => { if (ref.current && observer) { observer.unobserve(ref.current); } observer.disconnect(); }; }, []); return (
{children}
); }; const Portfolio = () => { const [isMenuOpen, setIsMenuOpen] = useState(false); const [activeSection, setActiveSection] = useState('home'); const [scrolled, setScrolled] = useState(false); const [copyMessage, setCopyMessage] = useState(null); // Unified function to handle copying content (email or phone) const copyToClipboard = (content, type) => { const textarea = document.createElement('textarea'); textarea.value = content; textarea.style.position = 'fixed'; textarea.style.opacity = '0'; document.body.appendChild(textarea); textarea.focus(); textarea.select(); let success = false; try { success = document.execCommand('copy'); setCopyMessage({ text: `${type} copied!`, type: 'success' }); } catch (err) { console.error('Copy failed:', err); setCopyMessage({ text: `Failed to copy ${type}.`, type: 'error' }); } document.body.removeChild(textarea); setTimeout(() => { setCopyMessage(null); }, 2000); }; // Handler for Email button const copyEmailHandler = (e) => { e.preventDefault(); copyToClipboard(EMAIL_ADDRESS, 'Email'); }; // Handler for Phone button const copyPhoneHandler = (e) => { e.preventDefault(); copyToClipboard(PHONE_NUMBER, 'Phone number'); }; // Handle scroll effects and active section useEffect(() => { const handleScroll = () => { setScrolled(window.scrollY > 20); const sections = ['home', 'about', 'experience', 'projects', 'skills', 'contact']; let currentActive = 'home'; for (let i = sections.length - 1; i >= 0; i--) { const sectionId = sections[i]; const element = document.getElementById(sectionId); if (element) { const rect = element.getBoundingClientRect(); if (rect.top <= 200) { currentActive = sectionId; break; } } } setActiveSection(currentActive); }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); const navLinks = [ { name: 'Home', href: '#home', id: 'home' }, { name: 'About', href: '#about', id: 'about' }, { name: 'Experience', href: '#experience', id: 'experience' }, { name: 'Projects', href: '#projects', id: 'projects' }, { name: 'Skills', href: '#skills', id: 'skills' }, ]; const experiences = [ { company: "Maninfini Automation Pvt Ltd, Bangalore", role: "Flutter Developer", period: "Jun 2024 - Nov 2024", description: "Developed and maintained cross-platform mobile applications for the innovative 'Game of Giving' initiative, focusing on resource redistribution and social impact.", tech: ["Flutter", "Dart", "Firebase", "REST APIs"] }, { company: "Brototype, Ernakulam", role: "Flutter Developer Intern", period: "Nov 2023 - Feb 2024", description: "Gained hands-on experience in mobile application development, implementing key features and utilizing state management patterns like Bloc to enhance app scalability.", tech: ["Flutter", "Dart", "Bloc", "Hive"] }, { company: "Govt Polytechnic college, Kalamassery", role: "Diploma In Electronics And Communication Engineering", period: "2018 - 2021 (CGPA: 8.04)", description: "Completed academic coursework focused on core electronics and communication principles, providing a strong analytical foundation for software development.", tech: ["Electronics", "Communication", "C Programming"] } ]; const projects = [ { title: "Game of Giving Apps", description: "A community-focused initiative involving multiple cross-platform apps (Giver, Needy, Mentor) for redistributing surplus resources, promoting sustainability and social impact.", tags: ["Flutter", "Dart", "Play Store", "App Store"], link: "https://play.google.com/store/apps/developer?id=644869124", github: null, color: "bg-green-600", icon: }, { title: "HRX Store - E-Commerce App", description: "A feature-rich e-commerce application with secure payment (Razorpay), Firebase Authentication, product categories, and cart management. Built with an accompanying Admin app.", tags: ["Flutter", "Dart", "Firebase Firestore/Storage", "Bloc", "Razorpay"], link: "https://play.google.com/store/apps/details?id=com.ecom.hrx_store&pcampaignid=web_share", github: "https://github.com/Harikrishna-Manoj/HRX_Store_e_commerce", color: "bg-indigo-600", icon: }, { title: "Rhythm Music Player", description: "A conceptualized and developed offline music player with a sleek UI. Features include volume control, a dedicated play screen, mini player, and organization using Hive Database.", tags: ["Flutter", "Dart", "Hive Database", "Bloc"], link: "https://play.google.com/store/apps/details?id=in.freelance.rhythm_music_player&pcampaignid=web_share", github: "https://github.com/Harikrishna-Manoj/Rhythm_music_player", color: "bg-red-600", icon: } ]; const skills = [ { category: "Languages & Frameworks", icon: , items: ["Dart", "Flutter", "SQL", "OOPS", "REST APIs", "GraphQL"] }, { category: "State Management & Architecture", icon: , items: ["Bloc", "Provider", "GetX", "Clean Architecture", "MVC", "SOLID Principle"] }, { category: "Backend & Database", icon: , items: ["Firebase", "Hive", "PostgreSQL", "Data Structure", "Payment Gateway"] }, { category: "Tools & DevOps", icon: , items: ["Git/GitHub", "VS Code", "Android Studio", "Figma", "Codemagic", "ChatGPT", "Davinci Resolve", "Photoshop"] } ]; return (
{/* Toast Notification for Copy */} {copyMessage && (

{copyMessage.text}

)} {/* Navigation */} {/* Hero Section */}
{/* Background blobs */}
Flutter Developer

Crafting Exceptional
Mobile Experiences with Flutter.

I'm Harikrishna Manoj, a dedicated Flutter Developer specializing in building robust, cross-platform mobile applications that prioritize functionality and aesthetics.

View Mobile Projects {/* Changed mailto to copy function for the primary button */}
{/* Changed mailto to copy function for the icon */}
{/* Profile Image */}
Harikrishna Manoj Profile Picture { e.target.onerror = null; e.target.style.display = 'none'; const parent = e.target.parentNode; const fallbackDiv = document.createElement('div'); fallbackDiv.className = 'text-slate-700 text-6xl font-bold'; fallbackDiv.textContent = 'HM'; parent.appendChild(fallbackDiv); }} />
{/* About Section */}

About Me

Building top-tier, user-centric mobile software

Specializing in Flutter development, my expertise lies in crafting cross-platform mobile applications that prioritize exceptional user experiences. My dedication to staying current with industry trends drives my focus on producing top-tier software that seamlessly merges functionality with aesthetics, ensuring high-quality solutions for the dynamic mobile landscape.

{[ { icon: , title: "User-Centric Design", desc: "Prioritizing exceptional user experiences by merging seamless functionality with modern aesthetics." }, { icon: , title: "Cross-Platform Expertise", desc: "Crafting robust mobile applications for both Android and iOS using the Flutter framework." }, { icon: , title: "Architecture Focus", desc: "Implementing Bloc, Clean Architecture, and SOLID principles for scalable and maintainable codebases." } ].map((item, index) => (
{item.icon}

{item.title}

{item.desc}

))}
{/* Experience Section */}

Career Path

My Professional Journey

My experience focuses on hands-on Flutter development, from core concepts to implementing complex state management and database solutions.

Download Resume
{experiences.map((exp, index) => (

{exp.role}

{exp.period}
{exp.company}

{exp.description}

{exp.tech.map((tag, i) => ( {tag} ))}
))}
{/* Projects Section */}

Portfolio

Mobile Applications

{projects.map((project, index) => (
{/* ENHANCED Mock phone frame using project-specific color and icon */}
{/* Project Icon and Title as the "Screenshot" */}
{project.icon}

{project.title.split(' - ')[0]}

{project.title}

{project.description}

{project.tags.map((tag, i) => ( {tag} ))}
{/* Only render if github link exists */} {project.github && ( Code )} {/* Only render if store link exists */} {project.link && ( Store Link )}
))}
{/* Skills Section */}

My Stack

Expertise in Mobile Development

My proficiency centers around the Flutter ecosystem, backed by a strong understanding of architecture patterns and scalable data solutions, using tools like Bloc for state management and Hive/Firebase for persistence.

Flutter

Primary Framework

Bloc/Provider

State Management

{skills.map((skill, index) => (
{skill.icon}

{skill.category}

{skill.items.map((item, i) => ( {item} ))}
))}
{/* Contact Section */}

Let's connect and build!

I'm currently seeking new Flutter development opportunities. Reach out via email or connect with me on LinkedIn.

{/* EMAIL: Click to Copy */} {/* PHONE: Click to Copy - CHANGED FROM TO
{/* Footer */}
); }; export default Portfolio;