Este projeto utiliza Yarn por padrão, sinta-se livre para usar o npm
yarn - Instalação de dependências
yarn start - Execução do servidor ts-node-dev
O banco de dados é manipulado através do knex,
entretanto ainda não há um suporte completo do projeto para typescript,
portanto para executar os comandos do knex é necessário adicionar
knex --knexfile knexfile.ts(e podem ser necessárias modificações no arquivo
knexfile.ts) antes do comando propriamente dito.
Você pode listar todos os comandos utilizando yarn knex (ou npx knex)
para facilitar dois comandos podem ser executado via script, são eles:
yarn knex:migrate - Criar as tabelas do banco de dados
yarn knex:migrate:rollback - Resetar as tabelas do banco de dados
- Produção:
TODO, - Desenvolvimento:
http://localhost:3333,
Busca as aulas disponíveis, filtrada por matéria, dia da semana e horário.
URL : /classes
Método : GET
Parâmetros de Consulta :
| Parâmetro | Observação |
|---|---|
| week_day | Número entre 0-6 (0: Domingo, 6: Sábado) |
| subject | Matéria a ser buscada |
| time | Horário desejado |
Exemplo de Requisição: curl --request GET \ --url 'http://localhost:3333/classes?week_day=1&subject=Matem%C3%A1tica&time=8%3A00'
Resposta:
[
{
"id": 1,
"subject": "Matemática",
"cost": 80,
"user_id": 1,
"name": "Nome do Professor",
"avatar": "https://picsum.photos/200/300",
"whatsapp": "85112233445",
"bio": "Lorem ipsum dolor sit amet"
}
]Endpoint para cadastro de disponibilidade do professor
URL : /classes
Método : POST
Cabeçalho :
| Chave | Valor |
|---|---|
| Content-Type | application/json |
Corpo da Requisição :
{
"name": "Nome do Professor",
"avatar": "https://picsum.photos/200/300",
"whatsapp": "85112233445",
"bio": "Lorem ipsum dolor sit amet",
"subject": "Matemática",
"cost": 80,
"schedule": [
{
"week_day": 1,
"from": "8:00",
"to": "12:00"
},
{
"week_day": 3,
"from": "10:00",
"to": "18:00"
},
{
"week_day": 4,
"from": "8:00",
"to": "12:00"
}
]
}Exemplo de Requisição: curl --request POST \ --url http://localhost:3333/classes \ --header 'content-type: application/json' \ --data '{ "name": "Nome do Professor", "avatar": "https://picsum.photos/200/300", "whatsapp": "85112233445", "bio": "Lorem ipsum dolor sit amet", "subject": "Matemática", "cost": 80, "schedule": [ { "week_day": 1, "from": "8:00", "to": "12:00" }, { "week_day": 3, "from": "10:00", "to": "18:00" }, { "week_day": 4, "from": "8:00", "to": "12:00" } ] }'
Resposta: status: 201 - Created
Lista a quantidade total de alunos que já interagiram com professores através do whatsapp
URL : /connections
Método : GET
Exemplo de Requisição: curl --request GET \ --url http://localhost:3333/connections
Resposta:
{
"total": 10
}Criar nova interação com o professor associado à matéria
URL : /connections
Método : POST
Cabeçalho :
| Chave | Valor |
|---|---|
| Content-Type | application/json |
Corpo da Requisição :
{
"user_id": 1
}Exemplo de Requisição: curl --request POST \ --url http://localhost:3333/connections \ --header 'content-type: application/json' \ --data '{ "user_id": 1 }'
Resposta: status: 201 - Created