Agendamentos descomplicados com integração ao Google Calendar. Conecte seu calendário, defina sua disponibilidade e agende com facilidade.

Ignite Call é uma aplicação web desenvolvida com Next.js para facilitar o agendamento de compromissos. Os usuários podem conectar seu Google Calendar, definir horários disponíveis e permitir que outras pessoas reservem horários de forma automática e organizada.
- ⚙️ Next.js – Framework React com suporte a SSR e SSG.
- 🟦 TypeScript – Superset do JavaScript com tipagem estática.
- 🔐 NextAuth – Autenticação via Google OAuth.
- 🗓️ Google APIs – Integração com o Google Calendar.
- 🧬 Prisma – ORM moderno e flexível com suporte a banco de dados SQL.
- 🐘 PostgreSQL - Banco de dados relacional.
- 💎 Zod - Biblioteca de validação de dados.
- 💡 React Hook Form – Formulários com validação robusta.
- 🌐 React Query – Gerenciamento eficiente de estado assíncrono.
- 🗓️ Day.js – Manipulação de datas com timezone e formato.
- 💅 @ignite-ui/react – Design System com componentes estilizados.
- 🧠 Next SEO – SEO otimizado com metadados dinâmicos.
- 🧹 ESLint – Linter para manter a qualidade e consistência do código.
- 🔐 Login com Google: autenticação segura com OAuth 2.0.
- 🗓️ Definição de disponibilidade: configure dias e horários livres.
- 📅 Integração com Google Calendar: eventos criados diretamente no seu calendário.
-
Clone o repositório:
git clone https://github.com/joschonarth/ignite-call.git
-
Acesse a pasta do projeto:
cd ignite-call
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente:
cp .env.example .env
-
Inicie o banco de dados PostgreSQL utilizando o Docker:
docker-compose up -d
-
Execute as migrações do banco de dados:
npx prisma migrate dev
-
Inicie o servidor de desenvolvimento:
npm run dev
A aplicação estará disponível em: http://localhost:3000
Para que o login e a integração com o Google Calendar funcionem corretamente, você precisará criar um projeto no Google Cloud Console e configurar as credenciais OAuth 2.0.
-
Acesse o Google Cloud Console.
-
Crie um novo projeto ou selecione um existente.
-
No menu lateral, vá até APIs e serviços > Tela de consentimento OAuth:
- Escolha o tipo Externo.
- Preencha as informações básicas da tela de consentimento (nome do app, email de suporte, etc).
- Adicione os escopos:
.../auth/calendar
.../auth/calendar.events
.../auth/userinfo.email
.../auth/userinfo.profile
-
Vá para APIs e serviços > Credenciais e clique em Criar credencial > ID do cliente OAuth.
-
Escolha Aplicativo da Web e configure os dados:
- URIs autorizados de redirecionamento:
- Em ambiente local:
http://localhost:3000/api/auth/callback/google
- Em ambiente local:
- URIs autorizados de redirecionamento:
-
Após a criação, copie os valores gerados e insira no seu
.env.local
:
GOOGLE_CLIENT_ID=seu_client_id
GOOGLE_CLIENT_SECRET=sua_client_secret
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests com melhorias ou correções. 💡
Se curtiu o projeto, deixe uma ⭐ aqui no GitHub!