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
Teste da API via insomnia e amostra em banco de dados: Assistir ao Vídeo (vídeo longo, possibilidade de assistir em 2x)
- 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 |