Un sistema semplificato per la gestione della prima nota contabile personale/aziendale, progettato per essere SEMPLICE e PRATICO.
- Gestione Conti Correnti - Crea e gestisci multipli conti bancari
- Anagrafica Clienti/Fornitori - CRUD completo con categorizzazione
- Movimenti Semplificati - Registrazione veloce entrate/uscite (NO partita doppia)
- Dashboard Intuitiva - Panoramica saldi, movimenti recenti, statistiche
- Reports Avanzati - Estratti conto, analisi per periodo, export CSV/Excel/PDF
- Sistema Utenti - Autenticazione JWT sicura
"3 click per registrare un movimento"
- Login → Dashboard con panoramica
- "Nuovo Movimento" → Selezioni cliente, inserisci importo → Fatto
- Report → Filtri semplici → Export diretto
- Docker e Docker Compose
- Node.js 18+ (per sviluppo locale)
- PostgreSQL 16 (incluso nel setup Docker)
prima-nota/
├── frontend/ # React.js App
├── backend/ # Node.js + Express API
├── database/ # PostgreSQL Schema & Data
├── docker-compose.yml # Orchestrazione servizi
└── README.md # Questa documentazione
- Frontend: React.js 18, Tailwind CSS, React Query, Framer Motion
- Backend: Node.js, Express.js, PostgreSQL, JWT Auth
- Database: PostgreSQL 15 con funzioni custom
- DevOps: Docker, Docker Compose, Nginx
git clone <repository-url>
cd prima-nota# Avvia tutti i servizi
docker-compose up -d
# Verifica che tutto sia running
docker-compose ps- Frontend: http://localhost:3000
- Backend API: http://localhost:3001/api
- Database Admin: http://localhost:8080 (Adminer)
Username: demo
Password: password
cd backend
cp .env.example .env
npm install
npm run devcd frontend
npm install
npm start# Crea database PostgreSQL locale
createdb prima_nota
psql prima_nota < database/init.sql- utenti - Gestione account utente
- conti_correnti - Conti bancari dell'utente
- anagrafiche - Clienti e fornitori
- movimenti - Entrate e uscite semplificate
calcola_saldo_conto(id)- Calcola saldo corrente dinamicamenteupdate_updated_at_column()- Trigger per timestamp automatici
POST /api/auth/login- Login utentePOST /api/auth/register- RegistrazioneGET /api/auth/verify- Verifica token
GET /api/conti-bancari- Lista contiPOST /api/conti-bancari- Crea nuovo contoPUT /api/conti-bancari/:id- Aggiorna contoDELETE /api/conti-bancari/:id- Elimina conto
GET /api/anagrafiche- Lista clienti/fornitoriGET /api/anagrafiche/categorie- Lista categoriePOST /api/anagrafiche- Crea anagraficaPUT /api/anagrafiche/:id- Aggiorna anagrafica
GET /api/movimenti- Lista movimenti (con filtri)POST /api/movimenti- Crea movimentoPOST /api/movimenti/bulk- Creazione multiplaPUT /api/movimenti/:id- Aggiorna movimento
GET /api/dashboard- Dashboard completaGET /api/dashboard/kpi- KPI principaliGET /api/reports/estratto-conto- Estratto contoGET /api/reports/entrate-vs-uscite- Report comparativo
- Template CSV - Download template per import movimenti
- Export CSV - Esportazione dati in formato CSV
- Export Excel - Esportazione avanzata in XLSX
- Export PDF - Report formattati per stampa
- Saldi in tempo reale - Calcolo dinamico saldi conti
- Grafici interattivi - Andamento mensile entrate/uscite
- Top clienti/fornitori - Classifiche per volume movimenti
- Alerts intelligenti - Notifiche per saldi negativi, conti inattivi
- Design mobile-first - Interfaccia ottimizzata per smartphone
- Touch-friendly - Controlli ottimizzati per touch
- Offline-ready - Cache intelligente per dati critici
- JWT Authentication - Token sicuri con scadenza
- Rate Limiting - Protezione contro spam/bruteforce
- Input Validation - Validazione Joi per tutti i dati
- SQL Injection Protection - Query parametrizzate
- CORS Configuration - Accesso controllato alle API
- XSS Protection - Sanitizzazione input utente
- CSRF Protection - Token anti-forgery
- Secure Headers - Headers di sicurezza HTTP
- Environment Variables - Configurazione sicura
# Build e avvio
docker-compose -f docker-compose.prod.yml up -d
# Scaling
docker-compose scale backend=3
# Logs
docker-compose logs -f backend# Backup automatico
docker-compose exec db pg_dump -U postgres prima_nota > backup.sql
# Restore
docker-compose exec -T db psql -U postgres prima_nota < backup.sqlcd backend
npm test
npm run test:coveragecd frontend
npm test
npm run test:coverageQuesto progetto è rilasciato sotto licenza MIT. Vedi il file LICENSE per i dettagli.
- Fork del progetto
- Crea feature branch (
git checkout -b feature/AmazingFeature) - Commit delle modifiche (
git commit -m 'Add some AmazingFeature') - Push del branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
Per supporto e domande:
- 📧 Email: support@prima-nota.com
- 📖 Wiki: Documentazione completa
- 🐛 Issues: GitHub Issues
- ✅ Release iniziale
- ✅ Sistema completo di gestione movimenti
- ✅ Dashboard con analytics
- ✅ Export/Import CSV/Excel/PDF
- ✅ Responsive design
- ✅ Docker deployment ready
Made with ❤️ per semplificare la contabilità di piccole imprese e professionisti