Criar uma plataforma onde pessoas possam alugar ferramentas (como furadeiras, andaimes, etc.) de forma simples e prática, com um sistema de reservas e gestão de itens disponíveis.
- Cadastro/login de usuários e criação de perfis de locatários.
- Listagem de ferramentas disponíveis para aluguel com descrições e preços.
- Sistema de reservas e agendamento de horários.
- Histórico de alugueis e avaliações de ferramentas.
- Busca e reserva de ferramentas com geolocalização para encontrar locais próximos.
- Notificações push para confirmações de reserva e devolução de ferramentas.
- Cadastro de novas ferramentas para locação diretamente pelo celular.
- Chat entre locador e locatário para tirar dúvidas sobre as ferramentas.
- API REST para gerenciar usuários, ferramentas e reservas.
- Autenticação JWT para segurança no acesso.
- Sistema de cálculo de preço de aluguel com base no tempo e tipo de ferramenta.
Antes de criar uma nova aplicação, você deve garantir que tem o Node.js e o npm instalados no seu computador. AdonisJS precisa da versão 22 ou superior do Node.js.
Você pode instalar o Node.js usando os instaladores oficiais, o Volta ou o nvm. Volta e nvm são gerenciadores de pacotes multiplataforma que permitem instalar e executar várias versões do Node.js no seu computador.
Verifique a versão do Node.js:
node -vPara instalar o AdonisJS, execute o seguinte comando:
npm init adonisjs@latest hello-worldInicialize o Docker e inicie o container:
docker start [CONTAINER_NAME] ou [CONTAINER_ID]Depois, use docker exec para rodar o SQL no PostgreSQL:
docker exec -it postgres sql -U postgresEntão, crie uma database:
create database toolshare;Para sair, use:
\qDepois, coloque as informações no arquivo .env.
Agora, replicar o modelo do banco de dados para a migration:
Agora, é necessário criar uma migration para tools, usando o comando:
node ace make:model Tool -c -mPoderia ter sido criado o model, o controller e a migration separadamente, mas com esse comando é criado tudo de uma vez só.
Depois, faça as alterações nos models User.ts e Tool.ts, e faça o relacionamento entre as tabelas:
@hasMany(() => Tool)
public tools: HasMany<typeof Tool>Depois, podemos rodar as migrations usando o código:
node ace migration:runExecute novamente o comando para entrar no PostgreSQL:
docker exec -it postgres sql -U postgresUse o comando para abrir a database:
\c [NOME_DO_BANCO]Após entrar no banco, execute:
\dtPara mostrar quais tabelas estão no database.
Caso queira ver somente uma tabela, execute o comando:
\d [NOME_DA_TABELA]Para mais detalhes e guias sobre o AdonisJS, consulte a documentação oficial: AdonisJS Documentation.
