Skip to content

📅 A scheduling web app to manage availability and book appointments via Google Calendar, built with Next.js, TypeScript, and a custom Design System.

Notifications You must be signed in to change notification settings

joschonarth/ignite-call

Repository files navigation

Ignite Call

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

last-commit top-language languages-count

home

📖 Visão Geral

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.

🛠️ Tecnologias Utilizadas

  • ⚙️ 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.

⚙️ Funcionalidades

  • 🔐 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.

🚀 Como Executar o Projeto

📋 Pré-requisitos

🔧 Instalação

  1. Clone o repositório:

    git clone https://github.com/joschonarth/ignite-call.git
  2. Acesse a pasta do projeto:

    cd ignite-call
  3. Instale as dependências:

    npm install
  4. Configure as variáveis de ambiente:

    cp .env.example .env  

▶️ Execução

  1. Inicie o banco de dados PostgreSQL utilizando o Docker:

    docker-compose up -d
  2. Execute as migrações do banco de dados:

    npx prisma migrate dev
  3. Inicie o servidor de desenvolvimento:

    npm run dev

A aplicação estará disponível em: http://localhost:3000

🔐 Como obter as credenciais do Google OAuth

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.

📌 Passos para configurar

  1. Acesse o Google Cloud Console.

  2. Crie um novo projeto ou selecione um existente.

  3. 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
  4. Vá para APIs e serviços > Credenciais e clique em Criar credencial > ID do cliente OAuth.

  5. Escolha Aplicativo da Web e configure os dados:

    • URIs autorizados de redirecionamento:
      • Em ambiente local: http://localhost:3000/api/auth/callback/google
  6. 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

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests com melhorias ou correções. 💡

⭐ Apoie este Projeto

Se curtiu o projeto, deixe uma ⭐ aqui no GitHub!

📞 Contato

LinkedIn Gmail

About

📅 A scheduling web app to manage availability and book appointments via Google Calendar, built with Next.js, TypeScript, and a custom Design System.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published