// Completely Reformed Experimentation Toolkit const techStackData = { languages: { name: "Programming Languages", color: "#ff6b6b", icon: "icon-code", techs: [ { name: "Python", proficiency: "Hobby Projects", experience: "Building small scripts and automation tools", level: 3, }, { name: "JavaScript", proficiency: "Learning", experience: "Frontend experiments and this portfolio", level: 2, }, { name: "Bash", proficiency: "Daily Use", experience: "System automation and server management", level: 4, }, { name: "HTML/CSS", proficiency: "Experimenting", experience: "Web design and portfolio building", level: 3, }, ], }, systems: { name: "Operating Systems & Tools", color: "#4ecdc4", icon: "icon-system", techs: [ { name: "Linux", proficiency: "Home Lab", experience: "Ubuntu/Debian servers, command line daily", level: 4, }, { name: "Windows", proficiency: "Daily Driver", experience: "Main desktop OS, PowerShell scripting", level: 4, }, { name: "Android", proficiency: "ROM Tinkering", experience: "Custom ROMs, kernel modifications", level: 3, }, { name: "Docker", proficiency: "Container Fun", experience: "Self-hosted services containerization", level: 2, }, ], }, webtech: { name: "Web Technologies", color: "#45b7d1", icon: "icon-web", techs: [ { name: "Apache", proficiency: "Home Server", experience: "Local web server for projects", level: 3, }, { name: "Nginx", proficiency: "Reverse Proxy", experience: "Load balancing for self-hosted apps", level: 2, }, { name: "Git", proficiency: "Version Control", experience: "GitHub for project management", level: 3, }, { name: "Vercel", proficiency: "Deployment", experience: "Static site hosting experiments", level: 2, }, ], }, databases: { name: "Data & Databases", color: "#96ceb4", icon: "icon-database", techs: [ { name: "SQLite", proficiency: "Simple Projects", experience: "Lightweight apps and data storage", level: 3, }, { name: "MariaDB", proficiency: "Home Lab", experience: "Database for self-hosted applications", level: 2, }, { name: "JSON", proficiency: "Data Format", experience: "API work and configuration files", level: 4, }, { name: "CSV", proficiency: "Data Analysis", experience: "Spreadsheet automation and imports", level: 3, }, ], }, cloud: { name: "Cloud & Hosting", color: "#feca57", icon: "icon-cloud", techs: [ { name: "AWS EC2", proficiency: "Experimenting", experience: "Free tier server experiments", level: 1, }, { name: "OVH VPS", proficiency: "Hosting", experience: "Affordable cloud server testing", level: 2, }, { name: "GitHub Pages", proficiency: "Static Hosting", experience: "Portfolio and project demos", level: 3, }, { name: "Cloudflare", proficiency: "DNS/CDN", experience: "Domain management and caching", level: 2, }, ], }, selfhosted: { name: "Self-Hosted Services", color: "#ff9ff3", icon: "icon-server", techs: [ { name: "Plex", proficiency: "Media Server", experience: "Personal streaming setup at home", level: 4, }, { name: "Jellyfin", proficiency: "Open Source", experience: "Alternative media server testing", level: 3, }, { name: "Pi-hole", proficiency: "Network Filter", experience: "Network-wide ad blocking", level: 3, }, { name: "Nextcloud", proficiency: "File Sync", experience: "Personal cloud storage solution", level: 2, }, ], }, hardware: { name: "Hardware & Electronics", color: "#54a0ff", icon: "icon-hardware", techs: [ { name: "Arduino", proficiency: "Weekend Projects", experience: "Basic sensors and LED experiments", level: 2, }, { name: "Raspberry Pi", proficiency: "Home Automation", experience: "Self-hosting and IoT projects", level: 3, }, { name: "PC Building", proficiency: "Enthusiast", experience: "Custom builds for gaming and servers", level: 4, }, { name: "Network Setup", proficiency: "Home Lab", experience: "Router configuration and VLANs", level: 3, }, ], }, tools: { name: "Development Tools", color: "#5f27cd", icon: "icon-devtools", techs: [ { name: "VS Code", proficiency: "Daily Editor", experience: "Primary code editor with extensions", level: 4, }, { name: "Terminal", proficiency: "Command Line", experience: "Daily workflow, multiple shell environments", level: 4, }, { name: "GitHub", proficiency: "Version Control", experience: "Repository management and collaboration", level: 3, }, { name: "Postman", proficiency: "API Testing", experience: "REST API development and testing", level: 2, }, ], }, }; class ExperimentationToolkit { constructor() { this.currentFilter = "all"; this.searchTerm = ""; this.selectedTech = null; this.init(); } init() { this.renderTechGrid(); this.setupEventListeners(); this.createTechModal(); } renderTechGrid() { const grid = document.getElementById("tech-grid"); if (!grid) return; grid.innerHTML = ""; Object.entries(techStackData).forEach(([category, data]) => { if (this.currentFilter !== "all" && this.currentFilter !== category) return; data.techs.forEach((tech) => { if ( this.searchTerm && !tech.name.toLowerCase().includes(this.searchTerm.toLowerCase()) ) return; const techCard = this.createEnhancedTechCard(tech, category, data); grid.appendChild(techCard); }); }); } createEnhancedTechCard(tech, category, categoryData) { const card = document.createElement("div"); card.className = "tech-card enhanced"; card.setAttribute("data-category", category); card.setAttribute("data-tech", tech.name); // Proficiency level bars const proficiencyBars = this.createProficiencyBars(tech.level); card.innerHTML = `