Skip to content

gignus79/Bandi-AI-Assistant

Repository files navigation

Bandi AI Assistant

Next.js React TypeScript Tailwind CSS Clerk PostgreSQL Drizzle Stripe Vercel License

Applicazione Next.js per professionisti e organizzazioni che devono leggere bandi complessi: carica documenti o URL, ottieni analisi strutturate (requisiti, scadenze, criteri) e chat contestuale con output leggibile. Include autenticazione, piani di utilizzo e abbonamenti.

MediaMatter · Giorgio Lovecchio


Funzionalità principali

Area Contenuto
Ingestione PDF, DOCX, fogli di calcolo, testo, immagini
Analisi Sintesi, requisiti, scadenze, suggerimenti tramite modelli OpenAI / Anthropic
Chat Assistente sul singolo bando, rendering Markdown con formattazione curata
Export Markdown, PDF, calendario (.ics)
Business Clerk (auth), Stripe (checkout abbonamenti), limiti d’uso e piani

Stack tecnico

Layer Tecnologie
App Next.js 15 (App Router), React 19, TypeScript, Tailwind CSS
Auth Clerk (sessioni, OAuth, middleware)
Dati PostgreSQL, Drizzle ORM
Pagamenti Stripe Billing (Checkout, webhook)
AI OpenAI API, Anthropic API (analisi e chat)
Test Vitest (unit), ESLint

Requisiti

  • Node.js 18+
  • Account Clerk, database PostgreSQL (es. Neon, Vercel Postgres)
  • Chiavi LLM e opzionalmente Stripe per uso completo in locale/produzione

Avvio in locale

  1. Clona il repository e installa le dipendenze:

    git clone <url-del-repository>
    cd bandi-ai-assistant
    npm install
  2. Variabili d’ambiente: copia .env.example in .env.local e imposta i valori reali (solo in .env.local, mai in Git).

  3. Schema database:

    npm run db:push

    Alternativa con migrazioni SQL versionate: npm run db:generate e npm run db:migrate.

  4. Sviluppo:

    npm run dev

    http://localhost:3000

npm run build richiede le variabili obbligatorie in fase di build (chiavi Clerk pubbliche, NEXT_PUBLIC_APP_URL dove applicabile).


Script npm

Comando Uso
npm run dev Server di sviluppo
npm run build / npm run start Build e avvio produzione
npm run lint ESLint
npm run test Vitest (unit)
npm run db:push Sincronizza schema Drizzle → DB
npm run db:generate / db:migrate Migrazioni SQL (Drizzle)

Sicurezza e segreti

  • Non versionare .env, .env.local né chiavi API. Template: .env.example.
  • Clerk: chiavi pk_test_ / sk_test_ in sviluppo; pk_live_ / sk_live_ in produzione. Allineare NEXT_PUBLIC_APP_URL e domini nella dashboard Clerk.
  • Stripe: STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET solo server-side; il webhook verifica la firma delle richieste.
  • Clerk webhooks: endpoint POST /api/webhooks/clerk, variabile CLERK_WEBHOOK_SIGNING_SECRET (signing secret della dashboard). L’URL in Clerk deve coincidere con il dominio pubblico dell’app.
  • LLM: OPENAI_API_KEY, ANTHROPIC_API_KEY solo su variabili server.
  • Database: connessione TLS (sslmode=require dove richiesto), accesso ristretto per ambiente.
  • Multi-app: NEXT_PUBLIC_APP_SLUG per attribuzione deploy (metadata Clerk/Stripe/DB).

Deploy

Vercel: collegare il repository, impostare le variabili per Production (e Preview se serve). Webhook Stripe: https://<dominio>/api/webhooks/stripe. Webhook Clerk: https://<dominio>/api/webhooks/clerk con lo stesso signing secret di CLERK_WEBHOOK_SIGNING_SECRET. Ridistribuire dopo modifiche alle variabili.

Verifica locale

npm run test
npm run lint
npm run build

I test unitari coprono helper (URL, Markdown, identità app). E2E e integrazione con API esterne sono fuori scope.


Documentazione aggiuntiva

  • docs/ — note interne (conformità, sicurezza).
  • Privacy e Cookie policy nell’app.

Licenza

Codice proprietario. Vedi LICENSE. Uso del servizio hosted e abbonamenti: termini in-app e Stripe Checkout.

About

Bandi AI Assistant è una webapp che analizza bandi di finanziamento da documenti, URL o testo usando modelli LLM. Estrae requisiti, scadenze e criteri di valutazione e genera analisi strutturate con chat contestuale, export Markdown/PDF e integrazione calendario (.ics). Costruita con Cursor, Next.js, TypeScript, PostgreSQL e OpenAI/Anthropic.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages