Skip to content

dhomini-rabelo/Ignite-Call

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ignite Call - Ignite(React) Etapa 06


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.


🚀 Tecnologias

  • Next
  • next-auth
  • googleapis
  • nookies
  • Tailwind
  • Styled-components
  • Phosphor-react
  • dayjs
  • react-query
  • react-hook-form
  • zod
  • Stitches
  • ignite-ui
  • prisma
  • axios

💻 Projeto

  • Home - "/"

    Neste página apenas informamos nosso username


    project-image

  • Passo 1 do cadastro - "/register?username=test"

    /api/users

    Nesta página cadastramos nosso usuário com prisma (mysql) apenas com o username e seu nome completo, utilizando as APIs routes.


    project-image

  • Passo 2 do cadastro - "/register/connect-calendar"

    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.


    project-image

  • Passo 3 do cadastro - "/register/timer-intervals"

    /api/users/timer-intervals

    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".


    project-image

  • Passo 4 do cadastro - "/register/update-profile"

    /api/users/update-profile

    Nesta página cadastramos nossa bio e finalizamos o cadastro do usuário.


    project-image

  • Página de agendamento - "/schedule/[username]"

    /api/users/[username]/blocked-dates

    /api/users/[username]/availability

    /api/users/[username]/scheduling

    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


    project-image

  • Marcação da reunião


    project-image

About

Módulo 6 - Curso Ignite Rocketseat

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published