{
  "$comment": "Project manifest for agents. The Markdown files beside this one carry the full case studies; this is the index the MCP server, the A2A agent and the skills read.",
  "site": "https://charisnikolaidis.com",
  "author": "Charis Nikolaidis",
  "lastUpdated": "2026-08-19",
  "count": 9,
  "projects": [
    {
      "slug": "maritime-supply-platform",
      "title": "Maritime supply chain platform",
      "year": "2025 to now",
      "type": "Enterprise system",
      "tech": ["FastAPI", "PostgreSQL", "Redis", "Celery", "React", "Azure", "Bicep"],
      "summary": "A maritime CRM and ERP for a ship-supply operation, built from an empty repo and owned end to end, with a Celery pipeline over AIS positions from 20,000+ vessels.",
      "url": "/projects/maritime-supply-platform/",
      "hasPage": true,
      "depth": "deep-dive",
      "links": []
    },
    {
      "slug": "marine-catering-system",
      "title": "Marine catering system rescue",
      "year": "2025 to now",
      "type": "Enterprise system",
      "tech": ["C#", "ASP.NET Core", "EF Core", "SQL Server", "Angular 19", "Azure"],
      "summary": "A shipping company's entire catering department as software, from the catering contract on a vessel to the invoice, with its own purchasing, invoicing and accounting modules. Taken over mid-build and stalled, sequenced, and shipped to production in about three months.",
      "url": "/projects/marine-catering-system/",
      "hasPage": true,
      "depth": "deep-dive",
      "links": []
    },
    {
      "slug": "gpot",
      "title": "Get Paid On Time",
      "year": "2026 to now",
      "type": "SaaS, live",
      "tech": ["FastAPI", "React", "PostgreSQL", "Celery", "Stripe", "myDATA", ".NET connector"],
      "summary": "Credit control for Greek businesses, live at gpot.gr. Reconciles myDATA, the customer's ERP and manual entry, and flags conflicts instead of overwriting them.",
      "url": "/projects/gpot/",
      "hasPage": true,
      "depth": "deep-dive",
      "links": [{ "title": "gpot.gr", "url": "https://gpot.gr" }]
    },
    {
      "slug": "greek-web-scraper",
      "title": "Greek web scraper",
      "year": "2024",
      "type": "Published package",
      "tech": ["Python", "Scrapy", "spaCy", "JSONL"],
      "summary": "A Scrapy crawler for Greek-language web content with NLP filtering and clean JSONL output, packaged and published to PyPI.",
      "url": "/projects/#greek-web-scraper",
      "hasPage": false,
      "depth": "summary",
      "links": [
        { "title": "GitHub", "url": "https://github.com/Charisn/Greek-web-scraper" },
        { "title": "PyPI", "url": "https://pypi.org/project/greek-web-crawler/" }
      ]
    },
    {
      "slug": "sarcastic-ai-agent",
      "title": "sarcastic_ai_agent",
      "year": "2025",
      "type": "Weekend experiment",
      "tech": ["PyTorch", "Transformers", "QLoRA", "Gemma 3 1B"],
      "summary": "A QLoRA fine-tune of Gemma 3 1B on a synthetic sarcastic chat dataset, meant for this site's chat. It never shipped and is kept as a pet.",
      "url": "/projects/#sarcastic-ai-agent",
      "hasPage": false,
      "depth": "summary",
      "links": []
    },
    {
      "slug": "image-recognition",
      "title": "Image recognition",
      "year": "2024",
      "type": "Learning project",
      "tech": ["Python", "Flask", "OpenCV"],
      "summary": "A small Flask app classifying objects in uploaded images with a pretrained model, built to learn the shape of a vision pipeline rather than to chase a benchmark.",
      "url": "/projects/#image-recognition",
      "hasPage": false,
      "depth": "summary",
      "links": [{ "title": "GitHub", "url": "https://github.com/Charisn/Image_recognition" }]
    },
    {
      "slug": "fuelstation-erp",
      "title": "FuelStation ERP",
      "year": "2022",
      "type": "Where it started",
      "tech": ["C#", ".NET", "Blazor", "WinForms", "SQL Server"],
      "summary": "The first real system: an ERP for running a fuel station, with a Blazor and WinForms front end. Kept public as the baseline everything since is measured against.",
      "url": "/projects/#fuelstation-erp",
      "hasPage": false,
      "depth": "summary",
      "links": [{ "title": "GitHub", "url": "https://github.com/Charisn/FuelStation-ERP" }]
    },
    {
      "slug": "msc-security-capstone",
      "title": "MSc security capstone",
      "year": "2024",
      "type": "Academic",
      "tech": ["PHP", "MySQL", "OWASP"],
      "summary": "The dissertation build for an MSc in Computing (Internet Technology & Security) at the University of Northampton, where the security work was the subject rather than a layer.",
      "url": "/projects/#msc-security-capstone",
      "hasPage": false,
      "depth": "summary",
      "links": [{ "title": "GitHub", "url": "https://github.com/Charisn/Msc-Internet-Security" }]
    },
    {
      "slug": "homelab-network-segmentation",
      "title": "Homelab network segmentation",
      "year": "2025",
      "type": "Homelab",
      "tech": ["VLANs", "Firewall policy", "IDS/IPS", "VPN"],
      "summary": "A lab network segmented far more carefully than a home network needs to be, and the origin of the private-endpoints-not-public-databases instinct in the cloud work.",
      "url": "/projects/#homelab-network-segmentation",
      "hasPage": false,
      "depth": "summary",
      "links": []
    }
  ]
}
