Per far si che il programma funzioni è necessario avviare il server dell'API in locale, senza questo passaggio il calcolatore online del codice fiscale non funzionerà correttamente e darà un errore riguardo il database per qualisasi comune/stato inserito.
1. Per avviare correttamente il programma occorre aprire il cmd digitando la direcotry della cartella contentente il codice, proprio in questo modo:
cd C:\Users\notmatte\Desktop\Compito CODICE FISCALE
2. Una volta assere entrati nella directory vi basterà digitare un comando specificato nel package.json
che eseguirà un comando ben preciso che andrà ad avviare il server dell'API, una volta avviato dovrebbe uscire nel terminale questo messaggio {^_^}/ hi!
.
npm start
Clicca nel seguente link di reindirizzamento a google drive per ottenere la cartella intera del progetto
dato che, scaricando tutti i file presenti nella repository non funzionerebbe per la mancanza della cartella
con tutti i moduli di node.js denominata node_modules
Clicca per scaricare tutto il progetto »
Per realizzare questo progetto mi sono fornito di HTML
, CSS
e JS
Ho usato anche vari framework come Node.js per il lato back-end e sweetalert per gli alert custom.
La cosa che più di tutte però mi ha aiutato a rendere possibile il calcolo completo del codice fiscale è la libreria json-server
di node.js che mi ha permesso di creare una vera e propria API integrata al codice, che hostata in locale mi permetteva di accedere al JSON contentente tutti i comuni italiani presenti nel territorio e sporattutto dotati di codice di catasto.
Riguardo al JSON contentente tutti i comuni dell'italia ho creato anche una repository apposita e vi consiglio di darci un'occhiata se siete interessati.
Per la realizzazzione del codice ho deciso di creare più funzioni tante quane la parti del codice fiscale, ogni funzione prende in input una stringa e la modifica in base alla richiesta della main funzione Calcola()
, ogni funzione ha quindi un compito ben preciso.
Il tutto dipende dalla divisione in parti del codice fiscale, facendo un esempio prendiamo in considerazione RSSMRC67C27F205X (Rossi Marco nato il 27/03/1967 a milano.)
- RSS Sono le prime 3 consonanti del nome
- MRC Sono le prime 3 consonanti del cognome
- 67 Sono le ultime cifre dall'anno di nasciata (1967)
- C Riguarda il mese ed ha un algoritmo ben preciso »
- 27 E' il giorno di nascita
- F205 E' il codide di catasto del comune di nascita (Milano)
- X E' un carattere di controllo e ha un algoritmo specifico »
Riguardo questa divisione ho creato una funzione per ognuna parte del codice, ad eccezzione per le prime due parti che hanno una funzione per entrambi essendo che effettuano lo stesso compito.
Vi sono però anche alcuni casi particolari da tenere in considerazione, ad esempio se nell'inserimento del giorno di nascita il soggetto è donna bisogna aggiungere 40 al valore (Es. 13 -> 53).
Anche per quanto riguarda il nome vi sono casi particolari come per esempio il doppio nome (Es. Gian Carlo), in questo caso basta controllare il numero di consonanti, nel caso fossero uguali o maggiorni di 4 viene presa rispettivamente la 1°, la 3° e la 4° consontate.
Un ulteriore controllo sta proprio nel nome o cognome e bisogna guardare se le consonanti non sono presenti per usare soltanto le vocali o per quanto riguarda restituzioni di parole minori alle 3 lettere, come nel caso di "CA" che diventerebbe "CAX", infatti questo controllo aggiunge una X qual'ora non fosse rispettato il limite di 3 caratteri minimi.
La cosa che più di tutte però mi ha aiutato a rendere possibile il calcolo completo del codice fiscale è la libreria json-server
di node.js che mi ha permesso di creare una vera e propria API integrata al codice, che hostata in locale mi permetteva di accedere al JSON contentente tutti i comuni italiani presenti nel territorio e sporattutto dotati di codice di catasto.
Riguardo al JSON contentente tutti i comuni dell'italia ho creato anche una repository apposita e vi consiglio di darci un'occhiata se siete interessati.
Il principale motivo del malfunzionamento potrebbe essere dvuto alla porta dove viene hostata l'API, di default è impostata a 3000
ma se è occupata può essere cambiata in 2 semplici passaggil:
- Aprire il file
package.json
e recarsi alla riga 7 sostituendla con:
"start": "json-server --watch ./script/data/data.json --port <porta>"
//<porta> è un valore che sceglierai tu e che deve essere lungo 4 cifre
- Salvare il package.json e recarsi nel file
script/script.js
alla riga 7 dove viene effettuata la chiamata all'API, per sostutuirla con:
fetch("http://localhost:<porta>/comuni")
//<porta> è il valore scelto precedentemente
- Esegui lo stesso passaggio anche per la riga 12:
fetch("http://localhost:<porta>/paesi")