O projeto em questão é um sistema para gestão de livros em uma biblioteca. Utilizamos AdonisJS para a simplificação do desenvolvimento de APIs robustas, aproveitando sua arquitetura estruturada para acelerar criação de funcionalidades como rotas, controladores e migrações de banco de dados.
- 📕 Cadastro de livros: Adicione novos livros ao sistema.
- 🔍 Pesquisa de livros: Busque livros por título ou autor.
- 📝 Registro de empréstimos e devoluções: Controle quem pegou qual livro e quando deve devolvê-lo.
- 🔐 Autenticação: Controle de usuários, permitindo a criação de contas e a autenticação para realizar operações no sistema.
Siga os passos abaixo para configurar o projeto em sua própria máquina.
docker run –name postgres -p 3333 -e POSTGRES_PASSWORD=secret -d postgres
docker exec -it postgres sql -U postgrescreate database biblioteca;\qnode -v
npm init adonis-ts-app@latest apiOu utilize yarn
yarn add adonis-ts-app@latest apiPara as configurações do projeto, selecione: API -> Insira o nome como API -> Selecione "True" para ambos eslint e prettier
yarn add @adonisjs/lucid@18.4.0node ace configure @adonisjs/lucidPara as configurações, selecione: PostegreSQL -> Terminal.
No arquivo env.ts, utilize as variáveis:
PG_HOST: Env.schema.string({ format: 'host' }),
PG_PORT: Env.schema.number(),
PG_USER: Env.schema.string(),
PG_PASSWORD: Env.schema.string.optional(),
PG_DB_NAME: Env.schema.string(),No arquivo .env, selecione suas informações do docker. Se seguiu o guia, deve ficar assim:
DB_CONNECTION=pg
PG_HOST=localhost
PG_PORT=5432
PG_USER=postgres
PG_PASSWORD=secret
PG_DB_NAME=bibliotecayarn add @adonisjs/auth@8.2.3node ace configure @adonisjs/authPara as configurações, selecione: Lucid -> Api Tokens, e digite User quando perguntado o nome do modelo para autenticação. Selecione em seguida true e Database
Baseie-se no modelo de banco de dados a seguir para replicar e ajustar as configurações em Models e em Migrations (Ignore a última tupla de datatype para serial)
Feito isso, crie mais duas migrations, uma para Livro e uma para Emprestimo, e as configure em Models e em Migrations, fazendo as relações necessárias
node ace make:model Livro -c -mnode ace make:model Emprestimo -c -mAqui está o diagrama completo para embasamento:
node ace migration:runEntre novamente no PostgreSQL:
docker exec -it postgres sql -U postgresAcesse sua database:
\c bibliotecaConfira a database inteira ou se quiser, só uma em específoico com os comandos:
\dt\d users [ou alguma outra tabela de sua escolha]node ace make:controller User -rnode ace make:controller Emprestimo -rnode ace make:controller Livro -rCertifique-se que todas as suas rotas estão referenciando o lugar certo, configurando-as em start ->
Caso baixe o arquivo pronto no repositório, lembre-se de fazer o comando yarn add para instalar o node_modules novamente, e então, reinicie o VSCode
Confira mais sobre as documentações oficiais do AdonisJS em: https://v5-docs.adonisjs.com/guides/introduction

