/mce-mind-web

[Case] - Plataforma de agendamento de acompanhamento de atividades fisicas por meio de personal trainers

Primary LanguageTypeScript

image

jest codequality wakatime

typescript codestyle-airbnb

Next JS Vercel Storybook SASS mce

⚠️ Projeto ainda em construção! Você pode clicar aqui e ir para a branch de desenvolvimento ⚠️

MCE - Case 2 - Plataforma de agendamento para personal trainers

Segundo case do programa Mind Coding Experience(MCE), que está oferecido pela Mind Consulting em parceria com a fintech Provi, com o intuito de evoluir as habilidades técnicas participando de projetos e recebendo acompanhamento de profissionais do mercado.

Tecnologias utilizadas:

Web front-end/back-end(serverless/lambda):

  • Server-Side-Rendering com Next.js/React.js,
  • Static Site Generation com Next.js/React.js,
  • React-icons(Font Awesome e Feather Icons),
  • StorybookJS(Design de componentes e props),
  • Cloudinary CMS(Gerenciamento e armazenamento de mídia),
  • FaunaDB(banco de dados serveless),
  • Next-auth(hooks de autenticação),
  • Axios(api),
  • SCSS(SASS),
  • Typescript.

Links do projeto:

A proposta-desafio do Product Owner:

P.S: Estatísticas do que foi feito, cumprido ou alterado durante o desenvolvimento do projeto está disponível em stats.md

Será desenvolvido um sistema para agendamentos de horários para personal trainers. A plataforma deve ser composta por um aplicativo e versão web, ambas com especificidades próprias e conter um CRM para controle CRUD dos clientes da plataforma. Os personal trainers podem criar sua conta e disponibilizar seus horários disponíveis, enquanto os alunos podem marcar os agendamentos pelo app.

Funcionalidades:

CRUD Usuários:

O crud de usuários se baseia em ser possível realizar o cadastro e edição de dados referentes aos usuários.

Os dados necessários para realizar o cadastro dos usuários são:

  • Nome
  • Senha
  • Email
  • Foto
  • Telefone
  • Nível de acesso

CRUD Personais:

Os dados necessários para realizar o cadastro dos usuários são:

  • Nome
  • Senha
  • Email
  • Foto
  • Nível de acesso

Sistema agendamento:

O sistema de agendamento torna possível que o usuários agendem horários e que os personais verifiquem os horários que foram agendados.

Para usuários: O usuários após terem efetuado o login poderão agendar os horários, para isso deverão selecionar o dá e o horário disponível, e enfim confirmar o agendamento. Também haverá uma listagem com todos os horários que ele tem agendado.

Para os personais: Os personais poderão verificar os horários que foram agendados, através do dashboard administrativo.

Status: Reservado e Agendado É necessário deixar indicado que foi agendado o horário em especifico Os horários de trabalhos dos personais se iniciam as 8 h e finalizam as 20:00h, com uma pausa para o almoço de 1 hora ao 12:00h

Desenvolvimento dashboard:

O dashboard administrativo poderá ser acessado pelo personais e pelas academias. Esse permitirá a visualização e controle das informações relacionadas aos agendamentos

Sistema de perfil:

Os usuários poderão editar seus respectivos perfis, através do aplicativo, conseguindo alterar, seu nome, email, senha e foto

Níveis de acesso:

Os viveis de acesso farão a diferenciação entre os personais e alunos. Sendo que: Os alunos: Conseguirão agendar horários com os personais disponibilizadas no sistema, através do aplicativo Os personais: Poderão verificar Através do dasboard administraitvo e app, os horarários que forces agendados

Dashboard:

O dashboard permitirá apenas o controle dos agendamentos pelo login dos personais Deve ser constituido de duas abas

  • Agendamentos
  • Perfil

APP:

O aplicativo permitirá os agendamentos dos usuários, e a visualização dos agendamentos por parte dos personais.

Todos os usuários cadastrados pelo APP terão nível de acesso de alunos

Sistema de notificação:

O sistema de notificação será necessário para toda vez que um aluno agendar oro horário, o personal que teve o horário agendado recebe uma notificação, alertando que o horário foi agendado e informações referente ao aluno que agendou.

  • Agendamentos
  • Perfil

Screenshots:

image image image

Requisitos para o desenvolvimento:

  • Node: v12+ com npm e yarn(opcional, mas recomendado)
  • Linux: Ubuntu 18.04+ e, possivelmente, qualquer distro com npm
  • Windows: Falha com packages
  • Mac: Falha com packages

Como rodar o projeto na máquina local:

  • Primeiro, adicione as seguintes variáveis(para ser executada na máquina local):
// mce-onboarding-web/.env.local/

IS_LOCALHOST=true

NEXT_PUBLIC_VERCEL_URL=localhost:3000
NEXT_PUBLIC_BACKEND_URL= (LINK DO SERVIDOR BACKEND)

FAUNA_ADMIN_KEY= (CHAVE DO ADMIN DO BANCO DE DADOS)
FAUNADB_KEY= (CHAVE SECRETA DO NEXT PARA O FAUNA)
FAUNADB_CLIENT_KEY= (CHAVE DO USUÁRIO FINAL PARA O FAUNA)

EMAIL_SERVER= (smtp://email@email.com:asenha@smtp.email.com:587) (O SEU SERVIDOR DE EMAIL)
EMAIL_FROM=(REMETENTE DO EMAIL)
  • Instale as dependências utilizando yarn ou npm na pasta do repositório,
  • Para iniciar no modo "desenvolvimento", inicie com yarn dev ou npm run dev. O Next/Webpack servirá o ambiente Next na rede local na porta 3000,
  • Para iniciar uma production, build da aplicação Next.js com node, basta yarn build, após a build for criada, execute yarn start para iniciar, depois disso, é só copiar o link da aplicação que aparecerá no terminal e pronto!

Sobre as chaves de acesso e variáveis de ambiente, contate-me por email

  • Ou crie um banco de dados serverless pelo faunadb e adicione as chave secreta de acesso no ambiente de desenvolvimento(FAUNA_ADMIN_KEY)
  • Documentação das queries, collections, indexes e permissões do banco de dados em breve.

Feito com amor para mim, minha profissão e para quem está lendo este doc, seja nos momentos de empolgação ou estresse!

Agradecimentos à PROVI por todo o suporte e motivação e a Mind Consulting pelo programa, a oportunidade dada e especialmente às mentorias! <3