{
  "projects": [
    {
      "slug": "guidance",
      "title": "Applicazione per un centro di orientamento",
      "label": "centro di orientamento",
      "kind": "client",
      "tagline": "Sito, CMS e CRM di Polo Fabricamente in un’unica app Next.js con Payload.",
      "summary": "Sito, CMS e CRM di Polo Fabricamente in un’unica app Next.js con Payload, con una cache che si aggiorna a ogni salvataggio invece che a tempo.",
      "stack": [
        "Next.js",
        "Payload CMS",
        "PostgreSQL"
      ],
      "status": "in-production",
      "lead": "Il sito, il CMS e il CRM di Polo Fabricamente, un centro di orientamento per le lauree online. L’ho progettato e sviluppato da solo.",
      "facts": [
        {
          "name": "cliente",
          "value": "Polo Fabricamente",
          "href": null
        },
        {
          "name": "sito",
          "value": "orientamentostudenti.it",
          "href": "https://www.orientamentostudenti.it"
        },
        {
          "name": "stack",
          "value": "Next.js 16, Payload CMS 3, PostgreSQL su Neon, Vercel",
          "href": null
        }
      ],
      "_links": {
        "self": {
          "href": "/it/projects/guidance"
        }
      }
    },
    {
      "slug": "driving-school",
      "title": "Gestionale per autoscuole",
      "label": "gestionale per autoscuole",
      "kind": "personal",
      "tagline": "Monolite modulare con Spring Modulith per più autoscuole sulla stessa installazione.",
      "summary": "Monolite modulare con Spring Modulith per più autoscuole sulla stessa installazione, con i confini fra i moduli verificati dai test.",
      "stack": [
        "Java 21",
        "Spring Boot 3.5",
        "Spring Modulith",
        "PostgreSQL"
      ],
      "status": "stopped",
      "lead": "Un gestionale per autoscuole italiane: allievi, istruttori, guide, esami e pagamenti, per più scuole sulla stessa installazione.",
      "facts": [
        {
          "name": "ruoli",
          "value": "amministrazione, segreteria, istruttore, allievo",
          "href": null
        },
        {
          "name": "codice",
          "value": "repository privato",
          "href": null
        }
      ],
      "_links": {
        "self": {
          "href": "/it/projects/driving-school"
        }
      }
    },
    {
      "slug": "travel-agency",
      "title": "Gestionale per agenzia viaggi",
      "label": "agenzia viaggi",
      "kind": "personal",
      "tagline": "Un’applicazione Spring Boot su MariaDB, nata come console e poi web.",
      "summary": "Un’applicazione Spring Boot su MariaDB, nata come console e poi web, con login a sessione e BCrypt, pagamenti PayPal e biglietti PDF con QR code.",
      "stack": [
        "Java 25",
        "Spring Boot 3.5",
        "Spring Security",
        "Spring Data JPA",
        "MariaDB"
      ],
      "status": "completed",
      "lead": "Cercare un viaggio, prenotarlo per più persone, pagarlo con PayPal e scaricare il biglietto: il gestionale di una piccola agenzia, in Spring Boot.",
      "facts": [
        {
          "name": "pagamenti",
          "value": "PayPal, provato fino in fondo nella sandbox",
          "href": null
        },
        {
          "name": "codice",
          "value": "repository privato",
          "href": null
        }
      ],
      "_links": {
        "self": {
          "href": "/it/projects/travel-agency"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/it/projects"
    },
    "alternate": {
      "href": "/en/projects",
      "hreflang": "en"
    },
    "up": {
      "href": "/it"
    }
  }
}
