Realizado

Módulo de agendamento de uma aplicação Nextjs 14 ssr + Mongodb

Publicado em 12 de Março de 2024 dias na TI e Programação

Sobre este projeto

Aberto

Requisitos Não funcionais
Mobile First
Cobertura de código acima de 80%
Organização da aplicação: DDD
Padrão de arquitetura: Clean Arcteture (SOLID)
Padrões de projetos: Repository, Factory, Adapter e etc.
Protocolo de comunicação recomendando: REST ou Next Actions.
Padrão de estilização css: css modules.
Escrita do código: Camel-Case.
Biblioteca de componentes: https://ui.shadcn.com/.
Pull Request: Abertos para branch "develop".
Deploy em produção: Somente o CTO e após da aprovação do owner do projeto/produto.
Front-End
A arquitetura do front-end utiliza Server-Side Rendering (SSR) e está hospedada na plataforma Vercel. Isso garante uma experiência de usuário rápida e eficiente, especialmente ao lidar com informações sensíveis de pacientes.

Métricas
Todas as Web Vital Métrics acima de 80
https://web.dev/articles/vitals?hl=pt-br
Como testar: https://pagespeed.web.dev/ ou usar o lighhouse no inspecionar do google (somente para desenvolvimento)

Back-End
O back-end adota uma arquitetura serverless, também implementada na plataforma Vercel. Essa abordagem permite uma escalabilidade eficiente, adaptando-se ao crescimento da base de usuários da PSION.
Prioziar uso de cache nas leituras
Manter response time sebre a baixo de 100 ms

Banco de Dados
Para armazenamento de dados, a PSION utiliza o MongoDB hospedado no serviço Atlas. Isso oferece flexibilidade e escalabilidade para gerenciar as informações dos pacientes.

Storage
O armazenamento de dados está integrado à plataforma Vercel, garantindo um fluxo eficiente de informações e facilitando a integração entre front-end e back-end.

Executar projeto em desenvolvimento
Para executar o projeto em um ambiente de desenvolvimento, siga os passos abaixo:

Execute o servidor de desenvolvimento:
npm run dev
# ou
yarn dev
# ou
pnpm dev
# ou
bun dev
Certifique-se de que o arquivo .env está preenchido corretamente com as variáveis de ambiente necessárias.
Regras para abertura de Pull Request
As regras para abrir um Pull Request devem seguir as melhores práticas de desenvolvimento colaborativo, incluindo:
Testes unitários abrangentes. (No MVP não será obrigatória entrega de testes)
Adesão às diretrizes de estilo de código (Resolver todos os Warning e errors do ESLINT e do prieter).
Documentação clara de novos recursos ou correções.(ADR e Design Docs)
Regras para deploy
As regras para implantação visam garantir a estabilidade e segurança da plataforma:

Usar branch "develop" para testar a aplicação
Implantações automatizadas somente após a aprovação de Pull Requests.
Testes extensivos em um ambiente de pré-produção antes da implantação.
Monitoramento constante para identificar e corrigir problemas rapidamente.
A PSION está comprometida em manter um ambiente de desenvolvimento e implantação eficiente, seguindo as melhores práticas da indústria para garantir a qualidade e segurança da plataforma.

Contexto Geral do Projeto

O que desejamos Queremos nos posicionar no mercado como a solução mais inovadora para os psicólogos Pesquisamos, testamos, prototipamos e agora é a hora de por a mão da massa e desenvolver nossas soluções! Por isso nosso primeiro projeto será desenvolver nossa landing page para captar leads e interessados Requisitos Funcionais História de Usuário: Como Psicólogo(a), quero agendar atendimento para ter controle dos horários. Critérios de Aceitação: Cenário 1: Dado que estou na tela da agenda, Quando eu clicar no botão "Adicionar Agendamento > Agendamentos", Então devo abrir a tela de agendamento. Cenário 2: Dado que estou na página de agendamento de atendimento, Quando eu selecionar o nome do profissional de acordo com o perfil usado, a data, o horário e a duração do atendimento, Nome do paciente, Sala de atendimento, periodicidade dos atendimentos, a forma de pagamento, tipo, se há desconto e as observações. E clicar no botão "Agendar", Então o sistema deve agendar o atendimento e me notificar sobre o agendamento bem-sucedido. Cenário 3: Dado que estou na página de agendamento de atendimento, Quando eu tentar agendar um atendimento em um horário já ocupado, Então o sistema deve me notificar que o horário está indisponível e me sugerir outros horários disponíveis. Cenário 4: Dado que já agendei um atendimento, Quando eu clicar no atendimento na lista de atendimentos, Então o sistema deve exibir os detalhes do atendimento, como paciente, data, horário, modalidade do atendimento, link e status. Cenário 5: Dado que já agendei um atendimento, Quando eu precisar cancelar o atendimento, Então o sistema deve me permitir cancelar o atendimento e me notificar sobre o cancelamento bem-sucedido. Cenário 6: Dado que já agendei um atendimento, Quando eu precisar reagendar o atendimento, Então o sistema deve me permitir reagendar o atendimento e me notificar sobre o reagendamento bem-sucedido. Cenário 7: *Dado que já agendei um atendimento. *Quando eu precisar Receber o pagamento desse agendamento. *O sistema deve exibir os detalhes do pagamento, como: Cliente/Paciente, Categoria financeira, Serviço, Descrição, Valor, Data de vencimento, Data de pagamento (ex: 04/06/2021), forma de Pagamento, se pago, se emitir nota. *Então o sistema deve salvar as informações e me notificar se o pagamento foi bem-sucedido. Cenário 8: *Dado que já agendei um atendimento. *Quando eu clicar no botão "Status do Atendimento" o sistema deve me dar as opções, como: Confirmada pelo Paciente, Cancelada pelo Paciente, Em aberto" Então o sistema deve salvar as informações e me notificar se o status foi salvo com sucesso. Cenário 9 *Dado que já agendei um atendimento. *Quando eu clicar no botão "Presença" *o sistema deve me dar as opções, como: Presente, Ausente. *Então o sistema deve salvar as informações e me notificar se o status foi salvo com sucesso. Requisitos de Arquitetura: Segurança: O sistema deve criptografar as informações do atendimento em repouso e em trânsito. Escalabilidade: O sistema deve ser capaz de lidar com um grande número de atendimentos agendados. Integração com Calendário: O sistema deve ser integrado a um calendário para facilitar o agendamento de atendimentos. Notificações: O sistema deve enviar notificações por e-mail ou SMS para o psicólogo e para o paciente sobre o agendamento, cancelamento e reagendamento de atendimentos.

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Criar um novo site personalizado
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: 01 de Abril de 2024

Habilidades necessárias