Skip to content

Repositório dedicado à criação de um sistema de gerenciamento de biblioteca utilizando AdonisJS com integração em PostegreSQL

Notifications You must be signed in to change notification settings

ezezz7/Library-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 

Repository files navigation

📚 Sistema de Gestão de Bibliotecas

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.

📋 Funcionalidades

  • 📕 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.

🚀 Guia de Projeto

Siga os passos abaixo para configurar o projeto em sua própria máquina.

🐳 Docker

Certifique-se de instalar o Docker, e então crie um container padrão

docker run –name postgres -p 3333 -e POSTGRES_PASSWORD=secret -d postgres

Rode o SQL

docker exec -it postgres sql -U postgres

Crie uma database (colocamos biblioteca)

create database biblioteca;

Saia do docker com:

\q

🏁 Inicialização do AdonisJS

Verfique se o nodejs está instalado:

node -v

Prossiga com a instalação do Adonis

npm init adonis-ts-app@latest api

Ou utilize yarn

yarn add adonis-ts-app@latest api

Para as configurações do projeto, selecione: API -> Insira o nome como API -> Selecione "True" para ambos eslint e prettier

📚 Database

Instale o Lucid

yarn add @adonisjs/lucid@18.4.0

Configure a biblioteca

node ace configure @adonisjs/lucid

Para 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=biblioteca

🔐 Autenticação

Instale o Auth

yarn add @adonisjs/auth@8.2.3

Configure o Auth

node ace configure @adonisjs/auth

Para 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

🎲 Modelo de Banco de Dados

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)

drawSQL-image-export-2024-10-04(3)

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 -m
node ace make:model Emprestimo -c -m

Aqui está o diagrama completo para embasamento:

drawSQL-image-export-2024-10-04(4)

Com tudo feito adequadamente, execute o comando a seguir para rodar as migrations:

node ace migration:run

📊 Consulta no PostgreSQL

Para checar se tudo foi feito com sucesso, siga os seguintes passos:

Entre novamente no PostgreSQL:

docker exec -it postgres sql -U postgres

Acesse sua database:

\c biblioteca

Confira a database inteira ou se quiser, só uma em específoico com os comandos:

\dt
\d users [ou alguma outra tabela de sua escolha]

🎮 Controllers

Crie o controller de User

node ace make:controller User -r

Crie o controller de Emprestimo

node ace make:controller Emprestimo -r

Crie o controller de Livro

node ace make:controller Livro -r

⚙️ Realize todos os comandos necessários de Store, Show, Index, Update, Delete

🚗 Rotas de Autenticação

Certifique-se que todas as suas rotas estão referenciando o lugar certo, configurando-as em start ->

Utilize APIs Client como bruno para poder testar seu código

❗ Aviso

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

📜 Referências

Confira mais sobre as documentações oficiais do AdonisJS em: https://v5-docs.adonisjs.com/guides/introduction

About

Repositório dedicado à criação de um sistema de gerenciamento de biblioteca utilizando AdonisJS com integração em PostegreSQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published