Vai al contenuto principale

Configurazione Locale dell'API

Questa guida ti accompagna nella configurazione dell'API di ChurchApps per lo sviluppo locale. Clonerai il repository, configurerai le connessioni al database, inizializzerai lo schema e avvierai il server di sviluppo con hot reload.

Prima di Iniziare

  • Installa Node.js 22+, Git e MySQL 8.0+ -- vedi Prerequisiti
  • Crea un utente MySQL con privilegi di creazione database
  • Consulta il riferimento delle Variabili d'Ambiente per la configurazione dell'API

Configurazione Passo per Passo

1. Clona il repository

git clone https://github.com/ChurchApps/Api.git

2. Installa le dipendenze

Il progetto utilizza Yarn (una protezione blocca npm install):

cd Api
yarn install

3. Configura le variabili d'ambiente

cp .env.sample .env

Apri .env e configura le stringhe di connessione MySQL. Ogni modulo necessita della propria connessione al database nel seguente formato:

mysql://root:password@localhost:3306/dbname

Avrai bisogno di stringhe di connessione per tutti e sei i database dei moduli (membership, attendance, content, giving, messaging, doing).

4. Inizializza i database

npm run initdb

Questo crea automaticamente tutti e sei i database e le rispettive tabelle.

Suggerimento

Puoi inizializzare il database di un singolo modulo con npm run initdb -- --module=membership (oppure attendance, content, giving, messaging, doing).

5. Avvia il server di sviluppo

npm run dev

L'API si avvia con hot reload su http://localhost:8084.

Comandi Principali

ComandoDescrizione
npm run devAvvia il server di sviluppo con hot reload (tsx watch)
npm run buildPulisce, compila TypeScript e copia gli asset
npm run testEsegue i test con Jest (include la coverage)
npm run test:watchEsegue i test in modalità watch
npm run lintEsegue ESLint con auto-fix (ESLint è l'unico formattatore)

Deployment su Staging

Per distribuire nell'ambiente di staging:

npm run deploy-staging

Questo esegue una build di produzione e poi distribuisce tramite Serverless Framework.

Avviso

Assicurati che le tue credenziali AWS siano configurate prima di eseguire il comando di deploy.

Sviluppo Locale delle Librerie

Se devi sviluppare una libreria condivisa (@churchapps/helpers o @churchapps/apihelper) insieme all'API, compilala nel workspace Packages e aggiungi un portale Yarn temporaneo nell'API:

# In the Packages workspace
yarn build

# In the API directory
yarn link ../Packages/helpers
# ... test ...
yarn unlink ../Packages/helpers && yarn install

Questo ti permette di testare le modifiche alla libreria contro l'API senza pubblicarle su npm. Vedi Librerie Condivise per i dettagli -- e non fare mai il commit della risoluzione del portale che il link scrive in package.json.

Articoli Correlati