Quokkel
Project developed using Django for the Capstone of fourth quarter Backend module of the Fullstack Developer Course of Kenzie Academy Brasil by the group @ezms, @RafaelSchug, @victorlscherer, @Vinicius2m, @ManoelaCunha
Install / Use
/learn @Vinicius2m/QuokkelREADME
📜 Grupo Quokka oferece hotelaria de um jeito simples e eficaz!
<div align="center"> <img src="https://i.imgur.com/XLiIFDJ.png" alt="quokka-logo" border="0"> </div> <p> 💡 O objetivo da nossa aplicação é facilitar o gerenciamento hoteleiro, oferecendo controle sobre reservas, hóspedes e acomodações. </p><br>🛠️ Instalação
- Baixe o repositório utilizando o Git com o commando:<br>
utilizando HTTPS
$ https://github.com/Vinicius2m/Quokkel.git
ou SSh
$ git@github.com:Vinicius2m/Quokkel.git
Instale um ambiente virtual (<code>venv</code>) na raíz do projeto
$ python -m venv venv && source venv/bin/activate
- Instale as dependências presentes no arquivo <code>requirements.txt</code>: <br>: no terminal :
$ pip install -r requirements.txt
2 - Em seguida, inicie a aplicação: <br>: no terminal :
$ ./manage.py runserver
<br><hr><br>
<b> 🌄 Inicialização da API </b>
Base Url: https://quokkel.herokuapp.com/
<br>🔚 Endpoints
Existem 22 endpoints nessa aplicação: 11 para gerenciamento de usuário (admin e hóspedes), 3 para gerenciamento de quartos, 2 para gerenciamento de categorias, 6 para gerenciamento de reservas. <br><br>
🧍Usuário:
Admins:
<br><span>Criação de admin:</span><br> <code>/admins/register/</code><br><br> Exemplo de entrada
{
"email": "marmota@mail.com",
"password": "1234",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455547",
"phone": "123456789012347",
"is_staff": true
}
Status: <code style="color: green; font-size: 16px;"> 201 CREATED</code> <br>Resposta:
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455547",
"phone": "1234567890123",
"is_staff": true
}
<br><br> <span>Login de admin:</span><br> <code>/admins/login/</code><br><br> Exemplo de entrada
{
"email": "marmota@mail.com",
"password": "1234"
}
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
{
"token": "9c2db77e46128c7f612cfa7eabcbc1aa5b3bbb88"
}
<br><br> <span>Retornar todos os admins:</span><br> <code>/users/admins/</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
[
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455547",
"phone": "1234567890123",
"is_staff": true
},
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota1@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455546",
"phone": "1234567890128",
"is_staff": true
},
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota2@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455545",
"phone": "1234567890121",
"is_staff": true
}
]
<br><br> <span>Retornar um admin pelo ID:</span><br> <code>/users/admins/user_id</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455547",
"phone": "1234567890123",
"is_staff": true
}
<br><br> <span>Atualização de admin:</span><br> <code>/admins/admin_id/</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Exemplo de entrada
{
"age": 18
}
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 18,
"cpf": "07744455547",
"phone": "1234567890123",
"is_staff": true
}
<br><br> <span>Remover um admin:</span><br> <code>/admins/admin_id/</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 204 NO CONTENT</code> <br>Resposta:
Hóspedes (Guests)
<br><span>Criação de hóspede:</span><br> <code>/guests/register/</code><br><br> Exemplo de entrada
{
"email": "quokka@mail.com",
"password": "1234",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999998",
"phone": "1234567891113",
"is_staff": false
}
Status: <code style="color: green; font-size: 16px;"> 201 CREATED</code> <br>Resposta:
{
"user_id": "43908c43-0b3d-48ba-ab26-c696ca02b5df",
"email": "quokka@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999998",
"phone": "1234567891113"
}
<br><br> <span>Login de hóspede:</span><br> <code>/guests/login/</code><br><br> Exemplo de entrada
{
"email": "quokka@mail.com",
"password": "1234"
}
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
{
"token": "ccc24e532f6079b323c3fa09f72e0a012422fc39"
}
<br><br> <span>Retornar todos os hóspedes:</span><br> <code>/users/guests/</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
[
{
"user_id": "f80431a8-c76a-459e-9818-1c4eb7ed76d3",
"email": "quokka@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999998",
"phone": "1234567891113",
"is_staff": false
},
{
"user_id": "7e4bd16a-7340-4089-89e3-a9071d983ce9",
"email": "quokka2@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999999",
"phone": "1234567891112",
"is_staff": false
},
{
"user_id": "db6ef5b0-5d11-4370-9548-87488491c32d",
"email": "quokka3@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999997",
"phone": "1234567891111",
"is_staff": false
}
]
<br><br> <span>Retornar um hóspede pelo ID:</span><br> <code>/users/guests/user_id</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
{
"user_id": "f80431a8-c76a-459e-9818-1c4eb7ed76d3",
"email": "quokka@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999998",
"phone": "1234567891113",
"is_staff": false
}
<br><br> <span>Atualização de Hóspede(Guest):</span><br> <code>/guests/guest_id/</code><br> <code style="color: tomato;">Requer token de Hósoede(Guest)</code><br><br> Exemplo de entrada
{
"age": 18
}
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
{
"user_id": "f80431a8-c76a-459e-9818-1c4eb7ed76d3",
"email": "quokka@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 18,
"cpf": "99999999998",
"phone": "1234567891113",
"is_staff": false
}
<br><br> <span>Remover conta de Hóspede(Guest):</span><br> <code>/guests/guest_id/</code><br> <code style="color: tomato;">Requer token de Hósoede(Guest)</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 204 NO CONTENT</code> <br>Resposta:
<br><br> <span>Retornar todos os usuários:</span><br> <code>/users/</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Sem corpo de requisição
Status: <code style="color: green; font-size: 16px;"> 200 OK</code> <br>Resposta:
[
{
"user_id": "f80431a8-c76a-459e-9818-1c4eb7ed76d3",
"email": "quokka@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999998",
"phone": "1234567891113",
"is_staff": false
},
{
"user_id": "7e4bd16a-7340-4089-89e3-a9071d983ce9",
"email": "quokka2@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999999",
"phone": "1234567891112",
"is_staff": false
},
{
"user_id": "db6ef5b0-5d11-4370-9548-87488491c32d",
"email": "quokka3@mail.com",
"first_name": "Quokka",
"last_name": "Quita",
"age": 30,
"cpf": "99999999997",
"phone": "1234567891111",
"is_staff": false
},
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455547",
"phone": "1234567890123",
"is_staff": true
},
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota1@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455546",
"phone": "1234567890128",
"is_staff": true
},
{
"user_id": "db8f63dc-cf00-4ba0-91cd-43ea968e73b3",
"email": "marmota2@mail.com",
"first_name": "Marmota",
"last_name": "Kel",
"age": 32,
"cpf": "07744455545",
"phone": "1234567890121",
"is_staff": true
}
]
<hr>
🧍Categorias:
<br><span>Criação de categoria:</span><br> <code>/rooms_categories/</code><br> <code style="color: tomato;">Requer token de ADMIN</code><br><br> Exemplo de entrada
{
"category_name": "Standard",
"price": 100.0,
"max_guest_number": 1
}
Status: <code style="color: green; font-size: 16px;"> 201 CREATED</code> <br>Resposta:
{
