All checks were successful
Build and Deploy / build (push) Successful in 2m41s
Calcolatore Prezzi Software
Sistema professionale per la creazione di preventivi software con due modalità operative:
- Menu Principale (
index.html): Pagina di selezione della modalità con interfaccia intuitiva - Modalità Progetto (
project-mode.html): Calcolo basato su ore, persone, milestone e regime fiscale italiano - Modalità Negozio (
shop-mode.html): Calcolo basato su articoli, quantità e listino prezzi (come un e-commerce)
Caratteristiche
Modalità Standard
- ✅ Gestione team con tariffe personalizzate per membro
- ✅ Calcolo milestone con assegnazione task a membri specifici
- ✅ Supporto per diversi regimi fiscali italiani (Forfettario, Ordinario, SRL, SRLS, ecc.)
- ✅ Calcolo automatico di IRPEF, IRES, IRAP, INPS
- ✅ Generazione PDF per cliente e documento interno
- ✅ Salvataggio e caricamento preventivi
- ✅ Interfaccia responsive con Alpine.js e Tailwind CSS
Modalità Negozio
- ✅ Gestione catalogo articoli con codici SKU
- ✅ Calcolo prezzi unitari e quantità
- ✅ Sconti per articolo
- ✅ Gestione spese di spedizione
- ✅ Calcolo IVA configurabile
- ✅ Generazione PDF preventivo
- ✅ Interfaccia intuitiva per vendita prodotti/servizi
Struttura del Progetto
.
├── index.html # Menu principale per selezione modalità
├── project-mode.html # Modalità progetto (ore/persone/milestone)
├── shop-mode.html # Modalità negozio (articoli/quantità)
├── Dockerfile # Build immagine Docker
├── deploy.sh # Script deploy automatico
├── .dockerignore # Ignore file per Docker
└── helm-chart/ # Helm chart per Kubernetes
├── Chart.yaml # Definizione chart
├── values.yaml # Valori di configurazione
├── README.md # Documentazione Helm
├── .helmignore # Ignore file per Helm
└── templates/ # Template Kubernetes
├── _helpers.tpl # Helper functions
├── configmap.yaml # ConfigMap per HTML
└── NOTES.txt # Note post-install
Quick Start
Utilizzo Locale
-
Apri direttamente nel browser:
# Modalità standard firefox index.html # Modalità negozio firefox shop-mode.html -
Oppure con un server web locale:
# Python 3 python3 -m http.server 8000 # PHP php -S localhost:8000 # Node.js (con http-server) npx http-server -p 8000Poi visita:
http://localhost:8000
Deploy con Docker
-
Build dell'immagine:
docker build -t calcolatore-prezzi:latest . -
Run del container:
docker run -d -p 8080:80 --name calcolatore calcolatore-prezzi:latest -
Accesso:
http://localhost:8080/ # Menu principale http://localhost:8080/project-mode.html # Modalità progetto http://localhost:8080/shop-mode.html # Modalità negozio
Deploy su Kubernetes con Helm
Prerequisiti
- Kubernetes cluster (1.19+)
- Helm 3.0+
- kubectl configurato
Deploy Rapido
-
Aggiorna le dipendenze Helm:
cd helm-chart helm dependency update cd .. -
Deploy con lo script automatico:
# Deploy base ./deploy.sh # Deploy in namespace specifico ./deploy.sh -n production # Deploy con valori personalizzati ./deploy.sh -f values-prod.yaml -n production -t v1.0.0 # Upgrade deployment esistente ./deploy.sh -u -n production -t v1.0.1 -
Deploy manuale con Helm:
helm install calcolatore-prezzi ./helm-chart \ --namespace production \ --create-namespace \ --set-file configMaps.html-content.data.index\.html=./index.html \ --set-file configMaps.html-content.data.project-mode\.html=./project-mode.html \ --set-file configMaps.html-content.data.shop-mode\.html=./shop-mode.html
Configurazione Ingress
Modifica helm-chart/values.yaml:
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
hosts:
- host: calcolatore.tuodominio.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: calcolatore-tls
hosts:
- calcolatore.tuodominio.com
Verifica Deploy
# Stato dei pod
kubectl get pods -n production
# Logs
kubectl logs -n production -l app.kubernetes.io/name=calcolatore-prezzi -f
# Port-forward per test locale
kubectl port-forward -n production svc/calcolatore-prezzi 8080:80
Helm Chart
Il chart utilizza base-helm come dipendenza comune per standardizzare le risorse Kubernetes.
Parametri Principali
| Parametro | Descrizione | Default |
|---|---|---|
replicaCount |
Numero di repliche | 2 |
image.repository |
Repository immagine | nginx |
image.tag |
Tag immagine | alpine |
service.type |
Tipo service | ClusterIP |
service.port |
Porta service | 80 |
ingress.enabled |
Abilita ingress | true |
resources.limits.cpu |
Limite CPU | 200m |
resources.limits.memory |
Limite memoria | 256Mi |
autoscaling.enabled |
Abilita HPA | false |
Vedi helm-chart/README.md per la documentazione completa.
CI/CD Examples
GitHub Actions
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build Docker image
run: docker build -t registry.example.com/calcolatore:${{ github.sha }} .
- name: Push image
run: docker push registry.example.com/calcolatore:${{ github.sha }}
- name: Deploy to Kubernetes
run: |
helm dependency update ./helm-chart
./deploy.sh -u -n production -t ${{ github.sha }}
GitLab CI
stages:
- build
- deploy
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
deploy:
stage: deploy
script:
- helm dependency update ./helm-chart
- ./deploy.sh -u -n production -t $CI_COMMIT_SHA
only:
- main
Tecnologie Utilizzate
- Frontend: HTML5, CSS3, JavaScript (Vanilla + Alpine.js)
- Styling: Tailwind CSS (via CDN)
- PDF Generation: jsPDF
- Icons: Font Awesome
- Containerization: Docker
- Orchestration: Kubernetes + Helm 3
- Web Server: Nginx Alpine
Funzionalità Aggiuntive
Modalità Standard
- Calcolo dettagliato per regime fiscale italiano
- Supporto INPS, rivalsa, ritenuta d'acconto
- Gestione team con tariffe differenziate
- Milestone con task assegnabili a membri specifici
- Due PDF separati: cliente (pubblico) e interno (riservato)
Modalità Negozio
- Gestione inventario articoli
- Codici SKU personalizzabili
- Sconti per singolo articolo
- Calcolo spese di spedizione
- IVA configurabile (0%, 4%, 10%, 22%)
Browser Supportati
- Chrome/Chromium 90+
- Firefox 88+
- Safari 14+
- Edge 90+
Licenza
[Inserisci qui la tua licenza]
Autore
[Il tuo nome]
Supporto
Per problemi o domande, apri una issue nel repository.
Contributing
Le pull request sono benvenute. Per modifiche importanti, apri prima una issue per discutere cosa vorresti cambiare.
Note:
- Questo progetto è pensato per il mercato italiano e include calcoli fiscali specifici
- I calcoli fiscali sono indicativi e dovresti sempre consultare un commercialista
- Il chart Helm usa base-helm come standard per deployment Kubernetes
Description
Languages
HTML
97.2%
Shell
2%
Smarty
0.6%
Dockerfile
0.2%