/theword-api

Application Programming Interface to churches management.

Primary LanguageTypeScript

The Word API

Features

  • Business Management - Gestão Administrativa
  • Events - Agendamentos, calendários e eventos
  • Members - Membros
  • Groups and Segments- Grupos e segmentos
  • Timeline and notifications (events, news) - Linha do tempo e notificações com eventos e noticias
  • Bible - Biblia online
  • Messages and words(text, video and sound) - Mensagens e palavras(texto, video e sons)
  • Notepad - Bloco de anotações
  • Pray requests - Pedidos de oração
  • Offers - Ofertas e doações

Entities

  • Church
  • Address
  • Event
  • Group
  • Notification
  • Content -> Bible, Message, Word
  • Notepad
  • Request -> Pray
  • Offer

Setup

Open project folder and install dependencies

npm install

yarn install

To run app

npm run dev

yarn dev

To run tests

npm run test

yarn test

To run typeorm generate

npx typeorm migration:create ./src/infra/database/typeorm/migrations/{MigrationName}

To run typeorm migrations

npm run migrate

To revert typeorm migrations

npm run revert




Structure

domain

Regras e entidades de negócio.

Entidades de dominio.

Erros de dominio.

Protocolos e definições de negócio.

data

Regras do sistema.

Operações de mais alto nível e features do sistema.

Casos de Uso.

Erros direcionados ao tratamento dos casos de uso.

main

Camada onde configurações, adapters e dependencias são injetadas.

Camada que conhece as demais e as solidifica.

Documentação (docs), injeção de dependencias (factories), configuração servidor (http)

presentation

Camada de adaptadores de intreface, como as controllers.

Chama casos de uso e tecnologias especificas.

infra

Camada onde a infraestrutura é concentrada.

Disponibiliza adaptadores de bibliotecas externas e banco de dados.


clean architecture layers - folder by Otávio Lemos



Detalhes do Projeto

  • Clean Architecture
  • Git - Conventional Commits
  • Husky Hook + Lint Staged
  • NodeJS
  • Typescript
  • Eslint + Prettier
  • Integration Tests with jest
  • Unit Tests with jest
  • Swagger Documentation
  • CORS Configuration
  • dotenv + cross-env
  • Path Mapping
  • Postgres Database
  • TypeORM
  • Express