Este projeto tem a finalidade de facilitar o agendamento para algum serviço, integrado diretamente com Google Calendar e marcando uma chamada no Meet automaticamente. Nele você cadastra os horários e os dias da semana que você está disponível, depois basta apenas enviar o link de agendamento para a pessoa que deseja marcar um horário com você, lá ela pode fazer sua escolhas e informar seus meios de contato.
- Next
- next-auth
- googleapis
- nookies
- Tailwind
- Styled-components
- Phosphor-react
- dayjs
- react-query
- react-hook-form
- zod
- Stitches
- ignite-ui
- prisma
- axios
-
Neste página apenas informamos nosso username
-
Nesta página cadastramos nosso usuário com prisma (mysql) apenas com o username e seu nome completo, utilizando as APIs routes.
-
Nesta página fazemos a autenticação com o Google, a permissão de acesso ao Google Calendar é obrigatória para continuar. Para autenticar com o Google criamos nosso adapter personalizado(/stage06/src/code/modules/auth/prismaAdapter.ts), isso porque nosso usuário foi criado na rota anterior. Nosso username é enviado ao nosso adapter através dos cookies, onde manipulamos através da lib nookies.
-
Nesta página cadastramos nossos horários e dias da semana que estamos livre para agendamento. Projetamos a estrutura de dados com zod, fazemos a validação no backend com zod, e salvamos esses dados na tabela "user_time_intervals".
-
Nesta página cadastramos nossa bio e finalizamos o cadastro do usuário.
-
Esta é a página que enviamos para alguém marcar horário. Para saber os dias e horários que estão disponíveis são consumidas duas APIs, além de consumir outra quando salvamos os dados do agendamento. Esta página usa SSG dinamicamente, ou seja uma versão estática da página é gerada a partir do primeiro acesso (com revalidação de em 2 horas), por essa página ser muito acessada o SSG garante uma ótima experiência para o usuário
-