Trip Mala é uma API Ruby on Rails para organização de checklists de viagem. Usuários podem criar listas personalizadas, adicionar itens, marcar como prontos e categorizar cada item para facilitar o planejamento.
- Cadastro e login de usuários (autenticação JWT)
- Criação e gerenciamento de checklists de viagem
- Adição, marcação e remoção de itens do checklist
- Filtragem de itens por categoria
- Operações CRUD para checklists e itens
- Operações CRUD para categorias (restritas a administradores)
A criação, edição e exclusão de categorias é restrita a usuários administradores, via namespace admin. Usuários comuns podem apenas visualizar as categorias.
POST /login # Login do usuário (JWT)
POST /signup # Cadastro de novo usuário
DELETE /logout # Logout do usuário (revoga JWT)GET /profile # Exibe dados do usuário autenticadoGET /api/trip_checklists
POST /api/trip_checklists
GET /api/trip_checklists/:trip_checklist_id
PATCH /api/trip_checklists/:trip_checklist_id
DELETE /api/trip_checklists/:trip_checklist_idGET /api/trip_checklists/:trip_checklist_id/checklist_items
POST /api/trip_checklists/:trip_checklist_id/checklist_items
PATCH /api/trip_checklists/:trip_checklist_id/checklist_items/:id
DELETE /api/trip_checklists/:trip_checklist_id/checklist_items/:id
PUT /api/trip_checklists/:trip_checklist_id/checklist_items/:id/check # Marca/desmarca itemGET /api/categoriesPOST /api/admin/categories
PATCH /api/admin/categories/:id
DELETE /api/admin/categories/:idAtenção: Inclua o token JWT de um usuário administrador no header da requisição:
Authorization: Bearer <token>- Ruby on Rails 7.1
- PostgreSQL
- JWT para autenticação
- RSpec para testes automatizados
- Rswag para documentação de API (em breve)
Clone o repositório e instale as dependências:
git clone https://github.com/seu-usuario/trip_mala.git
cd trip_mala
bundle install
yarn install --check-files
rails db:create db:migrate
dotenv rails sDúvidas ou sugestões? Entre em contato pelo e-mail rafael@devbatista.com.
Este projeto está licenciado sob os termos da licença MIT.