Skip to content

P3consultingtech/devdash

Repository files navigation

DevDash logo

DevDash

Dashboard self-hosted per freelancer e PMI
Gestisci clienti, fatture e finanze con la fiscalità italiana integrata.

Features · Screenshots · Quick Start · Tech Stack · Docs · License


Un progetto ideato da P3consulting.tech


Screenshots

Dashboard — KPI, grafici fatturato, stato fatture, top clienti, attività recente

Dashboard

Fatture — Lista con stato, dettaglio fattura, creazione nuova fattura

Fatture - Lista Fatture - Dettaglio Fatture - Nuova

Clienti — Anagrafica clienti con dati fiscali italiani

Clienti - Lista Clienti - Dettaglio Clienti - Nuovo

Impostazioni — Profilo, dati azienda, default fatture

Impostazioni - Profilo Impostazioni - Azienda Impostazioni - Default Fatture

Dark Mode — Tema scuro su tutte le pagine

Dark - Dashboard Dark - Fatture Dark - Clienti

Auth — Login e registrazione

Login Registrazione

Features

  • Gestione Clienti — CRUD completo con dati fiscali italiani (P.IVA, Codice Fiscale, Codice Destinatario SDI, PEC)
  • Gestione Fatture — Numerazione progressiva automatica (FT-1/2026), workflow di stato (Bozza → Inviata → Pagata / Scaduta → Annullata)
  • Motore Fiscale Italiano — Calcolo automatico di IVA, ritenuta d'acconto, cassa previdenziale, bollo virtuale. Importi in centesimi per evitare errori floating-point
  • Generazione PDF — Fatture professionali con logo aziendale, header azienda, dati cliente, tabella righe, riepilogo fiscale completo e IBAN
  • Logo Azienda — Upload del logo dall'area impostazioni, visualizzato automaticamente nel PDF delle fatture
  • Scadenza Automatica — Le fatture inviate vengono marcate come "Scaduta" automaticamente quando superano la data di scadenza
  • Export CSV — Esporta la lista clienti e fatture in formato CSV compatibile con Excel
  • Dashboard & Analytics — KPI, grafico fatturato mensile, fatture per stato, top clienti, attività recente (Recharts)
  • Multi-lingua — Italiano e Inglese dal giorno uno (i18n con 6 namespace)
  • Dark Mode — Tema chiaro, scuro e automatico di sistema
  • Self-hosted — Docker Compose per deploy in produzione con un solo comando

Tech Stack

Layer Tecnologie
Frontend React 19, Vite 6, TypeScript, Tailwind CSS 4, shadcn/ui, TanStack Query 5, Zustand 5, React Hook Form + Zod, react-i18next, Recharts
Backend Node.js, Express 5, Prisma 6, PostgreSQL 17, JWT auth (access + refresh), PDFKit, Zod validation
Shared packages/shared — Tipi TypeScript e schemi Zod condivisi tra frontend e backend
Infra Docker Compose, Nginx, GitHub Actions CI

Quick Start

Prerequisiti

  • Node.js >= 20
  • pnpm >= 9
  • Docker (per PostgreSQL)

Development

# Clona il repository
git clone https://github.com/P3consultingtech/devdash.git
cd devdash

# Installa le dipendenze
pnpm install

# Avvia PostgreSQL
docker compose -f docker/docker-compose.dev.yml up -d

# Copia le variabili d'ambiente
cp .env.example apps/api/.env

# Esegui le migration del database
pnpm db:migrate

# Popola con dati demo
pnpm db:seed

# Avvia i server di sviluppo
pnpm dev

L'app sarà disponibile su:

Servizio URL
Frontend http://localhost:5173
API http://localhost:3001
Demo login demo@devdash.dev / password123

Produzione (Docker)

cd docker
docker compose up -d

Consulta la Guida al Self-Hosting per la configurazione completa in produzione.

Project Structure

devdash/
├── apps/
│   ├── web/              # React frontend (Vite)
│   │   ├── public/locales/   # i18n (IT + EN, 6 namespace)
│   │   └── src/
│   │       ├── app/          # App, router, providers
│   │       ├── components/   # ui/ (shadcn), layouts/, shared/
│   │       ├── features/     # auth, dashboard, clients, invoices, settings
│   │       ├── stores/       # Zustand (auth, ui)
│   │       ├── hooks/        # useDebounce
│   │       └── lib/          # api-client, i18n, format, utils
│   └── api/              # Express backend
│       ├── prisma/           # Schema, migrations, seed
│       └── src/
│           ├── config/       # env, database, logger
│           ├── middleware/    # auth, validate, error-handler, cors, rate-limit
│           ├── modules/      # auth, clients, invoices, dashboard, settings, pdf
│           └── utils/        # password, jwt, pagination, italian-tax
├── packages/
│   └── shared/           # Tipi + Zod schemas condivisi FE/BE
├── docker/               # Docker Compose, Dockerfiles, Nginx
└── docs/                 # Documentazione

Motore Fiscale Italiano

Il calcolo della fattura segue la normativa italiana:

Imponibile          = Somma righe (qtà × prezzo unitario)
Cassa previdenziale = % dell'imponibile (es. INPS 4%)
Base imponibile     = Imponibile + Cassa
IVA                 = % della base imponibile (es. 22%)
Bollo virtuale      = €2,00 fissi (se esente IVA e totale > €77,47)
Totale lordo        = Base imponibile + IVA + Bollo
Ritenuta d'acconto  = % della base imponibile (es. 20%)
Netto a pagare      = Totale lordo − Ritenuta

Tutti gli importi sono memorizzati in centesimi (interi) per evitare errori di arrotondamento. 12350 = €123,50.

API Reference

Base URL: /api/v1

Modulo Endpoints
Auth POST register, login, refresh, logout · GET me
Clients GET list (paginato, filtri, search) · GET :id · POST · PUT :id · DELETE :id (soft) · GET export (CSV)
Invoices GET list · GET :id · POST · PUT :id (solo DRAFT) · DELETE :id (solo DRAFT) · PATCH :id/status · POST :id/duplicate · GET :id/pdf · GET next-number · GET export (CSV)
Dashboard GET summary, revenue, invoices-by-status, top-clients, recent-activity
Settings GET/PUT profile, business, preferences · POST logo · DELETE logo

Consulta la documentazione API completa per i dettagli.

Documentation

Contributing

I contributi sono benvenuti! Leggi le linee guida per contribuire prima di aprire una PR.

License

Rilasciato sotto licenza MIT.

DevDash è un progetto ideato e sviluppato da P3consulting.tech.

About

Self-hosted dashboard for freelancers and SMBs to manage clients, invoices and finances. Italian tax compliance built-in.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors