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