// ============================================================================
// PROJECTS
// ============================================================================

export interface OpenSourceProject {
	name: string;
	description: string;
	tech: string[];
	github?: string;
	live?: string;
	image?: string;
}


export const openSourceProjects: OpenSourceProject[] = [
	{
		name: 'TypstDrive',
		description: 'TypstDrive is a self-hosted collaborative web editor for Typst.',
		tech: ['Typst', 'Self-Hosted', 'Collaborative'],
		github: 'https://github.com/SirBlobby/TypstDrive',
		image: '/projects/typstdrive.png',
	},
	{
		name: 'Typst Desktop',
		description: 'Typst Desktop is a native desktop app for writing and compiling Typst documents offline.',
		tech: ['Typst', 'Desktop', 'Offline'],
		github: 'https://github.com/SirBlobby/typst-desktop',
		image: '/projects/typstdesktop.png',
	},
	{
		name: 'Pkit',
		description: 'CLI toolkit and utilities (Rust project) — small developer-focused CLI.',
		tech: ['Rust', 'CLI'],
		live: 'https://pkit.sirblob.co/',	
		github: 'https://github.com/dead-projects-inc/pkit-cli',
		image: 'https://icons.veryicon.com/png/o/business/vscode-program-item-icon/rust-1.png',
	},
	{
		name: 'OBookLLM',
		description: "OBookLLM is a powerful, self-hosted, offline-capable alternative to NotebookLLM.",
		tech: ['Python', 'LLM', 'AI', 'NotebookLLM'],
		github: 'https://github.com/SirBlobby/OBookLLM',
		image: 'https://upload.wikimedia.org/wikipedia/commons/c/c3/Python-logo-notext.svg',
	}
];

// ============================================================================
// PACKAGES
// ============================================================================


export interface PackageProject {
	name: string;
	description: string;
	tech: string[];
	github?: string;
	live?: string;
	image?: string;
	featured?: boolean;
}

export const packageProjects: PackageProject[] = [
	{
		name: 'PokemonTCGAPI',
		description: 'UnOfficial NPM package wrapper for the PokemonTCG API.',
		tech: ['TypeScript', 'Node.js'],
		live: 'https://www.npmjs.com/package/@bosstop/pokemontcgapi',
		image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Npm-logo.svg/1200px-Npm-logo.svg.png',
		featured: false
	},
	{
		name: 'MCSS TS API',
		description: 'TypeScript API for MC Server Soft services, published to NPM.',
		tech: ['TypeScript', 'Node.js'],
		live: 'https://www.npmjs.com/package/@mcserversoft/mcss-api',
		image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Npm-logo.svg/1200px-Npm-logo.svg.png',
		featured: false
	},
	{
		name: 'MCP Selenium',
		description: 'Selenium automation utilities for MCP workflows, packaged for reuse.',
		tech: ['TypeScript', 'Selenium'],
		live: 'https://www.npmjs.com/package/@sirblob/mcp-selenium',
		image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Npm-logo.svg/1200px-Npm-logo.svg.png',
		featured: true
	}
];

// ============================================================================
// 3D MODELS
// ============================================================================

export interface Model3D {
	name: string;
	description: string;
	thumbnail: string;
	modelUrl?: string; // URL to .glb/.gltf file for preview
	downloadUrl?: string;
	software: string[];
	polyCount?: string;
	featured?: boolean;
}

export const models: Model3D[] = [
	{
		name: 'Bake Potato',
		description: 'A fun baked-potato 3D model for demos and testing.',
		thumbnail: '/models/BakePotato-thumb.png',
		modelUrl: '/models/BakePotato.glb',
		software: ['Blender'],
		polyCount: '1k tris',
		featured: true
	},
	{
		name: 'Soda Can',
		description: 'A realistic soda can GLB used for materials/tests.',
		thumbnail: '/models/Soda-thumb.png',
		modelUrl: '/models/Soda.glb',
		software: ['Blender'],
		polyCount: '800 tris',
		featured: false
	}
];

// ============================================================================
// EXPERIENCE
// ============================================================================

export interface Experience {
	role: string;
	organization: string;
	employmentType?: string;
	location?: string;
	period: string;
	description?: string;
	tech?: string[];
	awards?: string[];
}


export const experience: Experience[] = [
	{
		role: 'Research Assistant',
		organization: 'College of Engineering and Computing',
		employmentType: 'Part-time',
		period: 'May 2026 – Present · 3 mos'
	},
	{
		role: 'Software Engineering Lead',
		organization: 'Raytheon Autonomous Vehicle Competition',
		period: 'Dec 2025 – May 2026 · 6 mos',
		description:
			'Developing a collaborative autonomous system utilizing Python and ROS2 to coordinate communication and control as a UAV scouts and lands on a moving UGV. Engineering Gazebo simulation environments to validate computer vision algorithms for ArUco marker target identification and obstacle avoidance.',
		tech: ['Python', 'ROS2'],
		awards: ['1st Place Overall Winner']
	},
	{
		role: 'QA Automation Intern',
		organization: 'Deltek',
		employmentType: 'Internship',
		location: 'Hybrid',
		period: 'Jun 2025 – Aug 2025 · 3 mos',
		description:
			'Designed and implemented a workflow integrating AI into the QA automation pipeline, enhancing test efficiency for the GovWin IQ team. Researched Model Context Protocol (MCP) servers to improve automation, developed and published a public Selenium MCP package to NPM, enabling browser automation interactions with Agentic AI.',
		tech: ['Artificial Intelligence (AI)', 'TypeScript', 'Selenium']
	}
];

// ============================================================================
// RESEARCH
// ============================================================================

export interface ResearchItem {
	title: string;
	organization?: string;
	period?: string;
	description?: string;
	tech?: string[];
	link?: string;
}

export const researchItems: ResearchItem[] = [
	{
		title: 'Research Assistant',
		organization: 'College of Engineering and Computing',
		period: 'May 2026 – Present · 3 mos'
	}
];

// ============================================================================
// HACKATHONS
// ============================================================================

export type Card = {
	title: string;
	description: string;
	image?: string | null;
	link?: string;
	repo?: string;
	devpost?: string;
	hackathonName?: string;
	university?: string;
	location?: string;
	year?: string;
	tags?: string[];
	featured?: boolean;
	awards?: { track: string; place: string }[];
	liveWarning?: boolean;
};

export const cards: Card[] = [
	{
		image: "/hacks/hushmap.png",
		title: "HushMap",
		description:
			"Architected a real-time campus noise and occupancy monitoring system utilizing SvelteKit, FastAPI, and MongoDB to help students locate quiet study spaces.",
		link: "https://hushmap.study/",
		devpost: "https://devpost.com/software/hushmap-193nia",
		hackathonName: "Bitcamp 2026",
		university: "University of Maryland",
		location: "College Park, MD",
		year: "2026",
		tags: ["Svelte", "YOLOv8", "FastAPI", "MongoDB"],
		featured: true,
		awards: [
			{ track: "Best UI/UX Hack", place: "Winner" }
		]
	},
	{
		image: "/hacks/learningbuddy.png",
		title: "LearningBuddy",
		description:
			"Engineered an ESP32-S3 IoT study companion in C++ with secure Wi-Fi provisioning, utilizing WebSockets and Socket.IO to stream low-latency raw audio for live lecture capture.",
		devpost: "https://devpost.com/software/studybuddy-bc0i3j",
		hackathonName: "HaxFax x PatriotHacks 2026",
		university: "George Mason University",
		location: "Fairfax, VA",
		year: "2026",
		tags: ["C++", "WebSocket", "ESP32-S3", "Socket.IO"],
		featured: true,
		awards: [
			{ track: "Best use of MongoDB", place: "Winner" }
		]
	},
	{
		image: "/hacks/fooddecisive.png",
		title: "Food Decisive",
		description:
			"Ever felt the indecisiveness of choosing what to eat? Don't fret! Decide your next bite with Food Decisive",
		link: "https://fooddecisive.sirblob.co/",
		repo: "https://github.com/SirBlobby/VTHacks-12",
		devpost: "https://devpost.com/software/food-decisive",
		hackathonName: "VTHacks 12",
		university: "Virginia Tech",
		location: "Blacksburg, VA",
		year: "2024",
		tags: ["AI", "Llama3.1", "Svelte", "Node.js"],
		featured: false,
		liveWarning: true
	},
	{
		image: "/hacks/carbin.png",
		title: "Carbin",
		description:
			"Encourage student participation in responsible waste management with smart bins that guide proper disposal.",
		repo: "https://github.com/SirBlobby/patriotHacks2024",
		devpost: "https://devpost.com/software/carboniferous-akc4mj",
		hackathonName: "PatriotHacks 2024",
		university: "George Mason University",
		location: "Fairfax, VA",
		year: "2024",
		tags: ["AI", "Azure", "CloudConvert", "Python", "React", "TypeScript", "API"],
		featured: true,
		awards: [
			{ track: "Save the World", place: "2nd Place" },
			{ track: "Microsoft X Cloudforce", place: "2nd Place" }
		]
	},
	{
		image: "/hacks/patsafe.png",
		title: "PatSafe",
		description:
			"Bridging the gap between doctors and patients for seamless post-discharge care",
		link: "https://hoya-hax2025.vercel.app/",
		repo: "https://github.com/SirBlobby/HoyaHax2025",
		devpost: "https://devpost.com/software/patsafe",
		hackathonName: "HoyaHax 2025",
		university: "Georgetown University",
		location: "Washington, D.C.",
		year: "2025",
		tags: ["Javascript", "Next.js", "React", "TypeScript", "LangChain", "OpenAI"],
	},
	{
		image: "https://placehold.co/800x400/334155/94a3b8?text=Fauxcall",
		title: "Fauxcall",
		description:
			"This product is perfect for situations where you are walking at night and you feel unsafe from someone. Fauxcall lets users create a convincing fake phone call to deter potential attackers and provide a quick escape mechanism.",
		link: "",
		repo: "https://github.com/SirBlobby/HooHacks-12",
		devpost: "https://devpost.com/software/fauxcall",
		hackathonName: "HooHacks 2025",
		university: "University of Virginia",
		location: "Charlottesville, VA",
		year: "2025",
		tags: ["mongodb", "next.js", "python", "react", "sesame.com", "skeleton", "twilio"],
		featured: false
	},
	{
		image: "/hacks/drinkhappy.png",
		title: "Drink Happy",
		description:
			"drinkhappy.tech is a gamified hydration wellness app that helps users track drinks, earn points for healthy choices, and compete with friends. It's powered by Gemini AI for smart drink recognition.",
		link: "https://drinkhappy.tech",
		repo: "https://github.com/SirBlobby/Bitcamp-2025",
		devpost: "https://devpost.com/software/drink-happy",
		hackathonName: "Bitcamp",
		university: "University of Maryland",
		location: "College Park, MD",
		year: "2025",
		tags: ["api", "auth0", "gemini", "github", "javascript", "mongodb", "nextjs", "react", "tailwind", "vercel"],
		featured: false
	},
	{
		image: "/hacks/roadcast.png",
		title: "Roadcast",
		description:
			"Roadcast provides drivers with crash data and weather insights to choose safer routes home. The project combines historical crash data, weather feeds, and spatial analysis to surface hazardous areas and route-level safety recommendations.",
		link: "https://roadcast.sirblob.co/",
		repo: "https://github.com/SirBlobby/roadcast",
		devpost: "https://devpost.com/software/roadcast",
		hackathonName: "VTHacks 13",
		university: "Virginia Tech",
		location: "Blacksburg, VA",
		year: "2025",
		tags: ["react", "node.js", "python", "mongodb", "geospatial", "mapbox"],
		featured: false,
		liveWarning: true
	},
	{
		image: "/img/hoya26.png", 
		title: "Ethix",
		description: "A sustainability platform that helps users detect and report greenwashing - misleading environmental claims made by companies and products.",
		repo: "https://github.com/SirBlobby/Hoya26",
		devpost: "https://devpost.com/software/ethix",
		link: "https://ethix.sirblob.co/",
		hackathonName: "HoyaHax 2026",
		university: "Georgetown University",
		location: "Washington, D.C.",
		year: "2026",
		tags: ["Svelte", "TypeScript", "Python", "Flask", "Tailwind", "Sustainability"],
		featured: true
	}
];

// Sort cards to show featured first
export const sortedCards = [...cards].sort((a, b) => {
	if (a.featured && !b.featured) return -1;
	if (!a.featured && b.featured) return 1;
	return 0;
});
