Lumipat sa pangunahing nilalaman

Local API Setup

Ang gabay na ito ay gagabay sa iyo sa pag-setup ng ChurchApps API para sa local development. Kopyahin mo ang repository, i-configure ang iyong database connections, i-initialize ang schema, at simulan ang dev server na may hot reload.

Bago Ka Magsimula

  • I-install ang Node.js 22+, Git, at MySQL 8.0+ -- tingnan ang Prerequisites
  • Lumikha ng MySQL user na may database creation privileges
  • Suriin ang Environment Variables reference para sa API configuration

Step-by-Step Setup

1. I-clone ang repository

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

2. I-install ang dependencies

Ang project ay gumagamit ng Yarn (isang guard ay humihigil sa npm install):

cd Api
yarn install

3. I-configure ang environment variables

cp .env.sample .env

Buksan ang .env at i-configure ang iyong MySQL connection strings. Bawat module ay kailangan ng sarili nitong database connection sa sumusunod na format:

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

Kailangan mo ng connection strings para sa lahat ng anim na module databases (membership, attendance, content, giving, messaging, doing).

4. I-initialize ang databases

npm run initdb

Ito ay lumilikha ng lahat ng anim na databases at ang kanilang tables nang awtomatiko.

Tip

Maaari mong i-initialize ang isang module's database lamang gamit ang npm run initdb -- --module=membership (o attendance, content, giving, messaging, doing).

5. Simulan ang dev server

npm run dev

Ang API ay nagsisimula na may hot reload sa http://localhost:8084.

Key Commands

CommandDescription
npm run devSimulan ang dev server na may hot reload (tsx watch)
npm run buildI-clean, i-compile ang TypeScript, at kopyahin ang assets
npm run testPatakbuhin ang tests gamit ang Jest (kasama ang coverage)
npm run test:watchPatakbuhin ang tests sa watch mode
npm run lintPatakbuhin ang ESLint na may auto-fix (ESLint ang sole formatter)

Staging Deployment

Para i-deploy sa staging environment:

npm run deploy-staging

Ito ay nagsasagawa ng production build at pagkatapos ay nag-deploy via Serverless Framework.

Babala

Siguraduhin na ang iyong AWS credentials ay configured bago patakbuhin ang deploy command.

Local Library Development

Kung kailangan mong mag-develop ng shared library (@churchapps/helpers o @churchapps/apihelper) kasama ang API, i-build ito sa Packages workspace at magdagdag ng temporary Yarn portal sa API:

# Sa Packages workspace
yarn build

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

Ito ay nagpapahintulot sa iyo na subukan ang library changes laban sa API nang hindi nag-publish sa npm. Tingnan ang Shared Libraries para sa detalye -- at hindi kailanman i-commit ang portal resolution na isusulat ng link sa package.json.

  • Database -- Pag-unawa sa database-per-module architecture
  • Module Structure -- Paano ino-organize ang controllers, repositories, at models
  • Shared Libraries -- Pagtrabaho sa @churchapps/helpers at @churchapps/apihelper