[
  {
    "name": "Poueni",
    "url": "https://poueni.dloizides.com",
    "image": "poueni.svg",
    "thumb": "poueni.svg",
    "description": "Πού 'εν; — privacy-first device location from WiFi + cellular signals. No Google API fees, GDPR built in. Hosted .NET 10 + PostGIS API, Android collector (v0.4.0 — live OSM map + on-device inference overlay), and a dashboard with a Leaflet map. Sign up, install the APK, walk an environment, and the kNN model learns where each signal pattern occurs.",
    "category": "app",
    "extraLinks": [
      {
        "label": "Visit",
        "url": "https://poueni.dloizides.com"
      },
      {
        "label": "Sign up",
        "url": "https://poueni.dloizides.com/signup"
      },
      {
        "label": "Download Android APK",
        "url": "https://poueni.dloizides.com/download/poueni-latest.apk"
      },
      {
        "label": "Dashboard",
        "url": "https://app.poueni.dloizides.com"
      },
      {
        "label": "GitHub",
        "url": "https://github.com/openmindednewby/poueni"
      }
    ]
  },
  {
    "name": "Aurora",
    "url": "https://aurora.dloizides.com",
    "image": "aurora-chamber.png",
    "thumb": "aurora-chamber.png",
    "description": "A pilgrim wakes the light. Wordless dungeon-puzzle across 8 chambers — push, pull, pressure plates, ice slides, colour-matching, teleporters. Phaser 3 + TypeScript, watercolour painterly aesthetic.",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://aurora.dloizides.com"
      }
    ]
  },
  {
    "name": "Kizomba Union CY — V2 (Kefi)",
    "url": "https://v2.kizombaunioncy.dloizides.com/t/kizomba-union-cy",
    "image": "kizomba-union-cy.png",
    "thumb": "kizomba-union-cy-thumb.png",
    "description": "The Kizomba Union CY event rebuilt on Kefi — a multi-tenant event-management platform with real accounts, role-scoped dashboards, HMAC-secured tickets and server-computed P&L. Runs side-by-side with the original site.",
    "category": "event",
    "extraLinks": [
      {
        "label": "Event page",
        "url": "https://v2.kizombaunioncy.dloizides.com/t/kizomba-union-cy"
      },
      {
        "label": "Register",
        "url": "https://v2.kizombaunioncy.dloizides.com/t/kizomba-union-cy/#book"
      },
      {
        "label": "Organizer login",
        "url": "https://v2.kizombaunioncy.dloizides.com/organizer"
      },
      {
        "label": "Super-admin login",
        "url": "https://v2.kizombaunioncy.dloizides.com/platform"
      },
      {
        "label": "Door login",
        "url": "https://v2.kizombaunioncy.dloizides.com/door"
      },
      {
        "label": "DJ login",
        "url": "https://v2.kizombaunioncy.dloizides.com/dj"
      },
      {
        "label": "Media login",
        "url": "https://v2.kizombaunioncy.dloizides.com/media"
      },
      {
        "label": "Ambassador login",
        "url": "https://v2.kizombaunioncy.dloizides.com/ambassador"
      }
    ]
  },
  {
    "name": "United by Salsa",
    "url": "https://unitedbysalsa.dloizides.com",
    "image": "united-by-salsa.png",
    "thumb": "united-by-salsa.png",
    "description": "1st edition salsa social uniting Cyprus dancers — salsa, bachata & kizomba across three rooms. 20 June 2026 at Bailemos Dance School, Nicosia. 11 teachers, 10 workshops · DJ lineup TBA.",
    "category": "event",
    "extraLinks": [
      {
        "label": "Visit",
        "url": "https://unitedbysalsa.dloizides.com"
      },
      {
        "label": "Register",
        "url": "https://unitedbysalsa.dloizides.com/#register"
      }
    ]
  },
  {
    "name": "Solid State",
    "url": "https://solid-state.dloizides.com",
    "image": "solid-state-portal.png",
    "thumb": "solid-state-portal.png",
    "description": "Tactical AI simulation puzzle. Place your geometric units, press Play, watch the simulation resolve. Talos-Principle DNA, Hitman-GO minimalism. Godot 4, cross-platform. Coming soon.",
    "category": "game",
    "extraLinks": [
      {
        "label": "Coming Soon",
        "url": "https://solid-state.dloizides.com"
      }
    ]
  },
  {
    "name": "Kizomba Union CY",
    "url": "https://kizombaunioncy.dloizides.com",
    "image": "kizomba-union-cy.png",
    "thumb": "kizomba-union-cy-thumb.png",
    "description": "1st edition dance festival uniting local kizomba artists across Cyprus — Urban Kiz, Kizomba & Tarraxo. 16 May 2026 at Bailemos Dance School, Nicosia. 6 teachers, 2 rooms, 2 DJs.",
    "category": "event",
    "extraLinks": [
      {
        "label": "Visit",
        "url": "https://kizombaunioncy.dloizides.com"
      },
      {
        "label": "Instagram",
        "url": "https://www.instagram.com/jimmy_walkerll/"
      },
      {
        "label": "Facebook",
        "url": "https://www.facebook.com/jimmys.loizides/"
      }
    ]
  },
  {
    "name": "Erevna",
    "url": "https://erevna.dloizides.com",
    "image": "erevna-portal.png",
    "thumb": "erevna-portal.png",
    "description": "Έρευνα — surveys, forms, and quizzes for teams. Multi-language, custom branding per tenant, custom typography on paid plans. From wondering to knowing.",
    "category": "app",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://erevna.dloizides.com"
      },
      {
        "label": "Pricing",
        "url": "https://erevna.dloizides.com/pricing"
      }
    ]
  },
  {
    "name": "Katalogos",
    "url": "https://katalogos.dloizides.com",
    "image": "katalogos-portal.png",
    "thumb": "katalogos-portal.png",
    "description": "Κατάλογος — digital menus for restaurants. QR-code per table, real-time price updates, multi-language, match your printed menu's typography. Your menu, online — in minutes.",
    "category": "app",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://katalogos.dloizides.com"
      },
      {
        "label": "Pricing",
        "url": "https://katalogos.dloizides.com/pricing"
      }
    ]
  },
  {
    "name": "EisaiPollis Games",
    "url": "https://eisaipollis.com",
    "image": "eisaipollis-logo.png",
    "thumb": "eisaipollis-logo.png",
    "description": "Creative tech studio — Keyboard Piano, Deep House Vibes, Hacker Screen, and more",
    "category": "brand",
    "extraLinks": [
      {
        "label": "Visit",
        "url": "https://eisaipollis.com"
      }
    ]
  },
  {
    "name": "Keyboard Piano",
    "url": "https://keyboardpiano.dloizides.com",
    "image": "keyboardpiano.gif",
    "thumb": "keyboardpiano.gif",
    "description": "Musical keyboard for kids — 53 songs, 5 instruments",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://keyboardpiano.dloizides.com"
      }
    ]
  },
  {
    "name": "Umami Analytics",
    "url": "https://analytics.dloizides.com",
    "image": "umami-portal.png",
    "thumb": "umami-portal.png",
    "description": "Self-hosted, cookieless web analytics powering every site in this portfolio — one Umami instance across ~20 sites. GDPR-friendly by design: no third-party trackers, no consent banner.",
    "category": "infra",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://analytics.dloizides.com"
      }
    ]
  },
  {
    "name": "AI Confluence Pipeline",
    "url": "https://github.com/openmindednewby/ai-confluence-pipeline",
    "image": "ai-confluence-pipeline.png",
    "thumb": "ai-confluence-pipeline.png",
    "description": "Open-source n8n automation — feature description → AI analysis (Claude/OpenAI) → Confluence page → Jira tasks. Built for tech leads. CLI or full Docker + n8n pipeline.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "GitHub",
        "url": "https://github.com/openmindednewby/ai-confluence-pipeline"
      }
    ]
  },
  {
    "name": "Music Studio",
    "url": "https://musicstudio.dloizides.com",
    "image": "music-studio-portal.png",
    "thumb": "music-studio-portal.png",
    "description": "Procedural music sequencer in the browser. 16-step grid, Web Audio synth, zero samples. Tracks export as tiny .eptrack.json files that any EisaiPollis game plays back identically. From idea to soundtrack in minutes.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://musicstudio.dloizides.com"
      }
    ]
  },
  {
    "name": "Morphe",
    "url": "https://morphe.dloizides.com",
    "image": "morphe.png",
    "thumb": "morphe.png",
    "description": "Morphe — solo-Pokémon RPG across 5 ancient civilizations. v1: Legend of Hydros (Sumer + Egypt arcs). 14 languages, mobile-touch ready.",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://morphe.dloizides.com"
      }
    ]
  },
  {
    "name": "AI Agents: Human vs Machine",
    "url": "https://ai-agents.dloizides.com",
    "image": "unityAIBots.gif",
    "thumb": "unityAIBots.gif",
    "description": "Top-down arena combat — you vs a pack of AI bots. Unity 6 + URP, WebGL. Built on the Unity AI Toolbox; bots scale up across a 10-level campaign.",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://ai-agents.dloizides.com"
      }
    ]
  },
  {
    "name": "Syncfusion Theme Studio",
    "url": "https://syncfusion-theme-studio.dloizides.com/",
    "image": "syncfusion-theme-studio-login.png",
    "thumb": "syncfusion-theme-studio-login.png",
    "description": "React admin portal template with visual theme editor. 98/100 Lighthouse, Syncfusion components, 12+ theme presets. Demo login: demo@example.com / demo123. Backed by a public .NET 9 mock API.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Swagger",
        "url": "https://syncfusion-theme-studio-mock-api.dloizides.com/swagger/index.html"
      },
      {
        "label": "Demo",
        "url": "https://syncfusion-theme-studio.dloizides.com/"
      }
    ]
  },
  {
    "name": "Webmail",
    "url": "https://mail.dloizides.com",
    "image": "snappyMail.png",
    "thumb": "snappyMail.png",
    "description": "Self-hosted email server — secure, private, no third parties. Admin panel: mail.dloizides.com/?admin",
    "category": "infra",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://mail.dloizides.com"
      }
    ]
  },
  {
    "name": "Interview Prep Hub",
    "url": "https://interview-prep-hub.dloizides.com",
    "image": "interviewPrep.png",
    "thumb": "interviewPrep.png",
    "description": "Senior interview prep across Frontend, Backend (.NET/C#), DevOps, and Agile/Scrum. 38 modules, 5,800+ flash cards, 1,100+ exercises, exam simulator, knowledge-gap dashboard, learning paths, streaks/XP. PWA, offline-ready.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://interview-prep-hub.dloizides.com"
      }
    ]
  },
  {
    "name": "Batch NuGet Publish",
    "url": "https://github.com/openmindednewby/BatchNugetPublish",
    "image": "batch-nuget-publish.gif",
    "thumb": "batch-nuget-publish.gif",
    "description": "PowerShell scripts that automate NuGet publishing for multiple packages.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "GitHub",
        "url": "https://github.com/openmindednewby/BatchNugetPublish"
      }
    ]
  },
  {
    "name": "Deep House Vibes",
    "url": "https://deep-house-vibes.dloizides.com/",
    "image": "deep-house-vibes.gif",
    "thumb": "deep-house-vibes.gif",
    "description": "Simple deep house vibes 3D runner game. A combination of deep house tracks and relaxing visuals made with babylonjs.",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://deep-house-vibes.dloizides.com/"
      }
    ]
  },
  {
    "name": "Quiz Manager (Expo, .NET 9)",
    "url": "https://tagheuer.dloizides.com/login",
    "image": "quiz-manager-demo.gif",
    "thumb": "quiz-manager-demo.gif",
    "description": "Full stack quiz manager application (Expo, .NET 9). Answer quizzes, create quizzes, export answers.",
    "category": "app",
    "extraLinks": [
      {
        "label": "Swagger",
        "url": "https://dynalux-api.dloizides.com/swagger/index.html"
      },
      {
        "label": "Open",
        "url": "https://tagheuer.dloizides.com/login"
      }
    ]
  },
  {
    "name": "Quotes",
    "url": "https://quotes.dloizides.com/",
    "image": "quotes-thumnail-900.png",
    "thumb": "quotes-thumnail-900.png",
    "description": "Wisdom Sanctum web app. Did you read your daily quote?",
    "category": "app",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://quotes.dloizides.com/"
      }
    ]
  },
  {
    "name": "Expo React Native Questioner",
    "url": "https://cross-platform-questioner.dloizides.com/DynamicForm/",
    "image": "cross-platform-questioner.gif",
    "thumb": "cross-platform-questioner.gif",
    "description": "Simple cross platform questioner using expo and react native",
    "category": "app",
    "extraLinks": [
      {
        "label": "Swagger",
        "url": "https://cross-platform-questioner.dloizides.com/swagger/index.html"
      },
      {
        "label": "Open",
        "url": "https://cross-platform-questioner.dloizides.com/DynamicForm/"
      }
    ]
  },
  {
    "name": "Keycloak Identity Provider",
    "url": "https://identity.dloizides.com",
    "image": "keycloak.png",
    "thumb": "keycloak.png",
    "description": "Instance of open source of keycloak identity provider",
    "category": "infra",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://identity.dloizides.com"
      }
    ]
  },
  {
    "name": "AML Screening Service",
    "url": "https://aml-screening.dloizides.com/swagger/index.html",
    "image": "aml-screening.gif",
    "thumb": "aml-screening.gif",
    "description": ".NET 8 AML Screening Service connected to OpenSanctions, OFAC and EU Sanctions",
    "category": "api",
    "extraLinks": [
      {
        "label": "Swagger",
        "url": "https://aml-screening.dloizides.com/swagger/index.html"
      }
    ]
  },
  {
    "name": "Binding of Isaac Mod (Only50)",
    "url": "https://steamcommunity.com/sharedfiles/filedetails/?id=3572502779",
    "image": "isaac-mod.gif",
    "thumb": "isaac-mod.gif",
    "description": "Fan made Binding of Isaac mode Only50",
    "category": "game",
    "extraLinks": [
      {
        "label": "Steam",
        "url": "https://steamcommunity.com/sharedfiles/filedetails/?id=3572502779"
      }
    ]
  },
  {
    "name": "Company Landing Page",
    "url": "https://ihelectrical.co.uk/",
    "image": "i-halil-website.gif",
    "thumb": "i-halil-website.gif",
    "description": "Company landing page of electrical engineering client",
    "category": "client",
    "extraLinks": [
      {
        "label": "Visit",
        "url": "https://ihelectrical.co.uk/"
      }
    ]
  },
  {
    "name": "Extract text vscode extension",
    "url": "https://marketplace.visualstudio.com/items?itemName=DemetriosLoizides.markdown-image-to-text&ssr=false#overview",
    "image": "extract-text-from-single-image.gif",
    "thumb": "extract-text-from-single-image.gif",
    "description": "Simple vs code extension that extracts the text from an image in a markdown file",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Marketplace",
        "url": "https://marketplace.visualstudio.com/items?itemName=DemetriosLoizides.markdown-image-to-text&ssr=false#overview"
      }
    ]
  },
  {
    "name": "Simple Local RAG Guide",
    "url": "https://github.com/openmindednewby/LocalRAG.git",
    "image": "localRAG-with-anythingLLM-thumnail-360.png",
    "thumb": "localRAG-with-anythingLLM-thumnail-360.png",
    "description": "Simple Local RAG Guide using AnythingLLM and LMStudio",
    "category": "tool",
    "extraLinks": [
      {
        "label": "GitHub",
        "url": "https://github.com/openmindednewby/LocalRAG.git"
      }
    ]
  },
  {
    "name": "Hacker Screen",
    "url": "https://hacker-screen.dloizides.com",
    "image": "hacker-screen-thumnail-360.jpg",
    "thumb": "hacker-screen-thumnail-360.jpg",
    "description": "Simple hacker screen saver made with HTML and CSS",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://hacker-screen.dloizides.com"
      }
    ]
  },
  {
    "name": "QR Code Generator",
    "url": "https://qr-code-generator.dloizides.com",
    "image": "qr-code-generator-thumnail-360.PNG",
    "thumb": "qr-code-generator-thumnail-360.PNG",
    "description": "Open source QR Code Generator web app using QRCode.js",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://qr-code-generator.dloizides.com"
      }
    ]
  },
  {
    "name": "OCR Scanner",
    "url": "https://ocr-scanner.dloizides.com",
    "image": "ocr-scanner-thumnail-360.jpg",
    "thumb": "ocr-scanner-thumnail-360.jpg",
    "description": "Open source OCR scanner web app using Tesseract.js for text extraction",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://ocr-scanner.dloizides.com"
      }
    ]
  },
  {
    "name": "Ghosty Game App",
    "url": "https://ghosty.dloizides.com",
    "image": "ghosty-game-thumnail-360.PNG",
    "thumb": "ghosty-game-thumnail-360.PNG",
    "description": "Survival game developed in Unity",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://ghosty.dloizides.com"
      }
    ]
  },
  {
    "name": "Ionic Example App",
    "url": "https://ionic-example-app.dloizides.com",
    "image": "ionic-example-app-thumnail-360.PNG",
    "thumb": "ionic-example-app-thumnail-360.PNG",
    "description": "Ionic Angular app with NGRX and IndexedDB for state management",
    "category": "app",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://ionic-example-app.dloizides.com"
      }
    ]
  },
  {
    "name": "Poker Scrum",
    "url": "https://poker-scrum.dloizides.com",
    "image": "poker-scrum-thumnail-360.PNG",
    "thumb": "poker-scrum-thumnail-360.PNG",
    "description": "MVP Poker Scrum app for team task estimation",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://poker-scrum.dloizides.com"
      }
    ]
  },
  {
    "name": "Family Gallery",
    "url": "https://family-gallery.dloizides.com",
    "image": "family-gallery-thumnail-360.PNG",
    "thumb": "family-gallery-thumnail-360.PNG",
    "description": "MVP Family Gallery app to create a live-updating gallery from your PC",
    "category": "app",
    "extraLinks": [
      {
        "label": "Open",
        "url": "https://family-gallery.dloizides.com"
      }
    ]
  },
  {
    "name": "Astro Kiz Tower Defence Game",
    "url": "https://astro-kiz-tower-defence.dloizides.com/",
    "image": "astro-kiz-tower-defence-thumnail-360.PNG",
    "thumb": "astro-kiz-tower-defence-thumnail-360.PNG",
    "description": "MVP Tower Defence game built with Unity",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://astro-kiz-tower-defence.dloizides.com/"
      }
    ]
  },
  {
    "name": "Tea Time Maze Game",
    "url": "https://tea-time-game.dloizides.com/",
    "image": "tea-time-thumnail-360.PNG",
    "thumb": "tea-time-thumnail-360.PNG",
    "description": "3D puzzle game created during a Global Game Jam",
    "category": "game",
    "extraLinks": [
      {
        "label": "Play",
        "url": "https://tea-time-game.dloizides.com/"
      }
    ]
  },
  {
    "name": "Portfolio",
    "url": "https://portfolio.dloizides.com/",
    "image": "personal-portfolio-thumnail-360.PNG",
    "thumb": "personal-portfolio-thumnail-360.PNG",
    "description": "Personal portfolio showcasing my CV and projects",
    "category": "app",
    "extraLinks": [
      {
        "label": "Visit",
        "url": "https://portfolio.dloizides.com/"
      }
    ]
  },
  {
    "name": "Extract Content from YouTube",
    "url": "https://github.com/openmindednewby/Extract-YouTube-content-with-python",
    "image": "YouTube-Logo.png",
    "thumb": "YouTube-Logo.png",
    "description": "Earlier work (2020) — simple Python program to extract content from YouTube videos. Open-source on GitHub.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "GitHub",
        "url": "https://github.com/openmindednewby/Extract-YouTube-content-with-python"
      }
    ]
  },
  {
    "name": "Lip-Reading Dataset Generator",
    "url": "https://github.com/openmindednewby/Tool-for-creating-lip-recognition-datasets",
    "image": "facial_landmarks_68markup-768x619.jpg",
    "thumb": "facial_landmarks_68markup-768x619.jpg",
    "description": "Earlier work (2020) — Python pipeline producing datasets suitable for training deep neural networks for lip recognition. Final-year project at the University of Sheffield.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "GitHub",
        "url": "https://github.com/openmindednewby/Tool-for-creating-lip-recognition-datasets"
      }
    ]
  },
  {
    "name": "Automated DIC Calibration",
    "url": "https://www.sheffield.ac.uk/mecheng/staff/rtomlinson1",
    "image": "university_of_sheffield_logo.png",
    "thumb": "university_of_sheffield_logo.png",
    "description": "Earlier work (2019) — open-source electromechanical device that automates the calibration procedure of digital image correlation software. Built during Sheffield's SURE scheme under Dr Rachel Tomlinson.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Supervisor",
        "url": "https://www.sheffield.ac.uk/mecheng/staff/rtomlinson1"
      }
    ]
  },
  {
    "name": "UAS Challenge — Project HEX",
    "url": "https://www.imeche.org/events/challenges/uas-challenge",
    "image": "hex-drone2.png",
    "thumb": "hex-drone2.png",
    "description": "Earlier work (2018) — member of Project HEX, a Sheffield student team that competed in the IMechE unmanned aircraft systems challenge with a hexacopter.",
    "category": "tool",
    "extraLinks": [
      {
        "label": "Challenge",
        "url": "https://www.imeche.org/events/challenges/uas-challenge"
      }
    ]
  },
  {
    "name": "Beatles Meet VR",
    "url": "http://communities.techstars.com/uk/sheffield/startup-weekend/8811",
    "image": "start-up-weekend-beetles-demo.png",
    "thumb": "start-up-weekend-beetles-demo.png",
    "description": "Earlier work (2016) — virtual reality demo of a Beatles concert built with Unity during the Sheffield Startup Weekend.",
    "category": "game",
    "extraLinks": [
      {
        "label": "Event",
        "url": "http://communities.techstars.com/uk/sheffield/startup-weekend/8811"
      }
    ]
  }
]
