Este é o backend do sistema de gerenciamento de itens para múltiplas instituições. Ele fornece uma API RESTful segura e escalável para autenticação, cadastro de instituições, gerenciamento de itens, movimentações e alertas.
- Autenticação com JWT
- Cadastro e gerenciamento de instituições
- CRUD de itens
- Registro de movimentações e histórico
- Geração de alertas e notificações
- API RESTful com validação de dados
- Integração com banco de dados PostgreSQL via Drizzle ORM
- Envio de mensagens de devolução de itens via WhatsApp
- Node.js ≥ 18
- Docker e Docker Compose
- PostgreSQL ≥ 14
server_agape
├── src/
│ ├── controllers/
│ ├── db/
│ │ ├── migrations/
│ │ ├── schemas/
│ │ │ └── index.ts
│ │ └── connection.ts
│ ├── middlewares/
│ ├── routes/
│ ├── services/
│ ├── utils/
│ ├── env.ts
│ └── server.ts
├── .env.example
├── package.json
├── pnpm-lock.json
├── README
└── tsconfig.json
git clone https://github.com/tatyanepgoncalves/server-agape.git
cd server-agape
npm install
pnpm install
Crie um arquivo .env com as variáveis:
DATABASE_URL=postgres://usuario:senha@localhost:5432/nome_do_banco
JWT_SECRET=sua_chave_secreta
PORT=3333
docker-compose up -d
npx drizzle-kit push
npm run dev
pnpm dev
| Método | Rota | Descrição |
|---|---|---|
| POST | /auth/login |
Autenticação de usuário |
| POST | /institutions |
Cadastro de instituição |
| GET | /items |
Listagem de itens |
| POST | /items |
Cadastro de item |
| PUT | /items/:id |
Atualização do item |
| POST | /movements |
Registro de movimentação |
npm run dev: inicia o servidor em modo desenvolvimentonpm run build: compila o projeto para produçãonpx db:generate: gera novas tabelasnpx db:migrate: aplica as migrations no banco
- Autenticação via JWT
- Validação de dados com Zod
- Middleware de proteção para rotas privadas
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.