A API Bíblia NVI é um projeto desenvolvido para fornecer acesso programático às passagens da Bíblia Sagrada na versão Nova Versão Internacional (NVI). Este projeto foi criado com o objetivo de estudar e aplicar conceitos modernos de desenvolvimento de APIs utilizando tecnologias como Node.js, Fastify, Prisma e TypeScript.
A API é ideal para aplicações frontend que exibem passagens bíblicas, como sistemas para igrejas. Além disso, ela oferece endpoints organizados para facilitar a consulta de livros, capítulos e versículos, além de endpoints para navegação entre os versículos.
Tip
O frontend deste projeto bible-vue foi desenvolvido com VueJs.
GET/books Obtém a lista de livros disponíveis.GET/books/{:bookId}/chapters Obtém a lista de capítulos disponíveis de um livro.GET/books/{:bookId}/chapters/{:chapterId}/verses Obtém a lista de versículos de um livro e capítulo.GET/verses/:id Obtém uma passagem pelo ID.GET/verses/:id/next Obtém a próxima passagem pelo ID.GET/verses/:id/previous Obtém a passagem anterior pelo ID.
- Faça o clone do repositório e no terminal navegue até a pasta;
git clone git@github.com:rribeiro1/bible-edge.git- Instale as dependências do projeto;
npm i- Faça uma cópia do .env.example com o nome .env e adicione as informações de conexão com o banco de dados Postgres.
cp .env.example .env- Suba o banco de dados com docker compose.
docker compose up- Migre o schema do banco de dados
npm run database:migrate- Import o script de inserção dos dados da Bíblia
Tip
Na pasta seed se encontra o arquivo: data.sql. Utilize-os para inserção de dados
npm run database:seedNote
O comando pode ser um pouco diferente em outros sistemas como Windows.
- Rode o servidor de desenvolvimento
npm run dev- Rode os testes
Utilize um dos métodos abaixo para rodar os tests unitários
npm run test
npm run test:ui
npm run test:coverage- O servidor com os endpoints do serviço estará disponível em http://localhost:3000
Utilize o Postman para testar suas chamadas. https://www.getpostman.com/.
- Postgres: Banco de dados relacional utilizado para armazenar os dados da Bíblia.
- Node.js: Plataforma para desenvolvimento de aplicações em JavaScript no lado do servidor.
- Fastify: Miro-framework web para construção de APIs.
- Prisma: ORM (Object-Relational Mapping) moderno para interagir com o banco de dados de forma simples e tipada.
- TypeScript: Superset do JavaScript que adiciona tipagem estática, aumentando a segurança e a produtividade no desenvolvimento.