Bem-vindo ao repositório do backend do MeetFlow! Este é o servidor que suporta a plataforma de agendamento moderna, conectando profissionais e clientes para simplificar o processo de agendamento de serviços.
Vídeo da plataforma visão profissional: Assistir ao Vídeo 
Vídeo da plataforma visão cliente: Assistir ao Vídeo 
- Node.js: Plataforma de execução de JavaScript assíncrono baseado no motor V8 do Chrome.
 - TypeScript: Superset do JavaScript que adiciona tipagem estática.
 - Fastify: Framework web extremamente rápido e eficiente para Node.js.
 - Jest: Framework de testes em JavaScript.
 - Plop: Ferramenta para geração de arquivos.
 - JWT (JSON Web Tokens): Método padrão da indústria para realizar autenticação em APIs web.
 - Zod: Biblioteca para validação de esquemas de dados.
 - Redis: Banco de dados em memória para cache.
 - MongoDB: Banco de dados NoSQL orientado a documentos.
 - date-fns: Biblioteca JavaScript para manipulação de datas.
 - @aws-sdk/client-s3: SDK da AWS para interação com o serviço S3 (usado para armazenamento de imagens).
 - Passport-google: Middleware de autenticação para Node.js que suporta autenticação com Google.
 - Fastify/passport: Plugin Fastify para integração com Passport.js.
 
O projeto foi desenvolvido utilizando a arquitetura clean, seguindo os princípios SOLID. Foram aplicados design patterns como Chain of Responsibility. A arquitetura é baseada em componentes genéricos para reaproveitamento em diferentes domínios.
- Upload de imagens para a Cloudflare utilizando o Fastify-multipart e o @aws-sdk/client-s3.
 - Autenticação com o Google utilizando o Passport-google e o Fastify/passport.
 - Integração com o Google Calendar para adicionar eventos automaticamente quando um agendamento é aceito.
 
- Criar usuário
 - Criptografar senha
 - Atualizar dados
 - Upload de fotos
 - Buscar por profisional e categoria
 
- Criar agenda personalizada
 - Definir horários de funcionamento
 
- Autenticação de usuários
 - Autenticação com o google
 
- Criar um agendamento
 - Aceitar ou recusar agendamento
 - Status personalizado
 
- Criação de serviços personalizados mediante a valores
 
- Gerar disponibilidade do profissional com base no horário de início e fim da sua jornada, incluindo ou não horário de almoço.
 - Baseado no tempo informado pelo mesmo como duração do serviço
 
- Clone este repositório utilizando o comando:
git clone https://github.com/renansouz/MeetFlowAPI-OBC.git
 - Acesse o diretório do projeto:
cd MeetFlowAPI-OBC - Instale as dependências utilizando o npm:
npm install
 - Altere o arquivo .env.example para .env e insira as chaves:
 - Construa o projeto:
npm run build
 - Após a construção do projeto, inicie o servidor:
npm start
 
| Foto | Nome | 
|---|---|
![]()  | 
Miquéias Martins | 
![]()  | 
Renan Souza | 
![]()  | 
Wesley Ribas | 



