⚠️ Status: Em Desenvolvimento Ativo - Projeto para estudo e teste de tecnologias modernas
Um sistema completo para controlar a cautela de materiais da seção de TI, desenvolvido como projeto prático para aprender e testar GraphQL no backend e Svelte no frontend.
Este projeto foi criado com fins educacionais e práticos para criar uma aplicação para controlar a cautela de materiais:
cautela-material/
├── 📂 backend/ # API GraphQL
│ ├── src/
│ │ ├── schema/ # Types & Resolvers GraphQL
│ │ └── server.ts # Servidor Apollo
│ ├── prisma/ # Banco de dados
│ └── Dockerfile
├── 📂 frontend/ # Interface Svelte
│ ├── src/
│ │ ├── lib/ # Cliente GraphQL
│ │ └── routes/ # Páginas Svelte
│ └── Dockerfile
└── README.md
# Clonar repositório
git clone https://github.com/joao-pedro-rdo/cautela-material.git
cd cautela-material
# Executar com Docker Compose
docker-compose up --build
# Acessar aplicação
# Frontend: http://localhost:3000
# Backend GraphQL: http://localhost:4000/graphql
cd backend
npm install
npm run db:generate # Gerar cliente Prisma
npm run db:migrate # Criar banco de dados
npm run dev # Servidor em http://localhost:4000
cd frontend
npm install
npm run dev # Interface em http://localhost:5173
# Backend
npm run dev # Desenvolvimento
npm run build # Build produção
npm run db:studio # Prisma Studio (GUI)
npm run db:reset # Reset database
# Frontend
npm run dev # Desenvolvimento
npm run build # Build produção
npm run preview # Preview build
npm run check # Type checking
query {
cautelas # Todas as cautelas
cautelasAtivas # Apenas em aberto
cautela(id: "x") # Específica por ID
}
mutation {
criarCautela(input: {...}) # Criar nova
devolverCautela(input: {...}) # Devolver material
}
model Cautela {
id String @id @default(cuid())
nomeCautelador String
contatoCautelador String
deOnde String
motivoCautela String
previsaoRetorno DateTime
cauteladorResponsavel String
devolvido Boolean @default(false)
dataHoraDevolucao DateTime?
observacoes String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
Este é um projeto de estudos, mas contribuições são bem-vindas!
git checkout -b feature/nova-funcionalidade
)git commit -m 'Adiciona nova funcionalidade'
)git push origin feature/nova-funcionalidade
)João Pedro - @joao-pedro-rdo