- 💻 Sobre o Projeto
- 🚀 Descrição API - Psic.connect
- 🔗 Aplicação disponível
- 🔗 Documentação disponível
- 🔗 Apresentação do Projeto
- ⚙️ Funcionalidades/Objetivos
- 📚 Aprendizados
- 🛠️ Tecnologias utilizadas
- 🛠️ Pacotes Utilizados
- 💻 Instalação
- 📁 Arquitetura MVC
- 🔃 Rotas
- ✅ Schema Pacients
- ✅ API deve retornar seguinte JSON:
- ✅ SchemaVolunteer
- ✅ API deve retornar seguinte JSON:
- 🔃 [ POST ] : Login para geração de Token
- 🚧 Implementações futuras (Em andamento)
- 🛠️ Contribua para o nosso projeto!
- 👨💻 Autora
API desenvolvida como Projeto Final com o auxílio da professora Mayhhara Morais para a conclusão do curso de Backend 2022.1 | On16 {Reprograma}
Refletindo a Psicologia como esse instrumento de transformação que observa fatores subjetivos, emocionais, históricos e das condições de vida dos sujeitos como determinantes dos quadros de saúde da população. E também em como foi exorbitante a explosão da demanda por saúde mental somatizada a um grande processo de empobrecimento da população brasileira, na atualidade.
Pensando então de que forma tornar mais acessível o atendimento psicológico para a comunidade, nasceu a ideia dessa API [ Psic.connect ] que tem como objetivo principal o de conectar pessoas em situação de vulnerabilidade sócio-econômica com psicólogos que se dispõem a atender voluntariamente essas pessoas, de forma solidária.
Com o pensamento no futuro próximo de tornar-se um projeto grande e viável para a criação de um espaço seguro, que essas pessoas em situação de vulnerabilidade social possam ter o acompanhamento psicológico adequado, além de algumas implementações futuras como implatação do código de Front-end.
Nossa API, irá consistir em dois cadastros diferentes, o de paciente e o de psicólogo ( usuários: Pacient ou Volunteer) , e ao fazer login( passando por uma autenticação via Token) o paciente terá acesso a uma lista de psicólogos cadastrados disponíveis, e ao fazer login o psicólogo poderá pesquisar por pacientes cadastrados, estabelecendo contato entre os dois lados por meio de email/número de contato. Também podendo, ao fazer login atualizar os seus dados de cadastro(como por exemplo atualizar o campo de disponibilidade de horários/dias), além de deletar seu cadastro da plataforma.
A interface é um CRUD completo integrado com o banco de dados, onde é possível listar os usuários, tanto que precisam de tratamento e psicólogos que possam proporcionar este acompanhamento de forma voluntária, cadastrar novos usuários, atualizar os dados e deletar o cadastro do usuário. Tudo isso passando por uma autenticação, gerando um token que permite ou não o acesso as pessoas que estarão no sistema.
- O schema do Pacient deve possuir os seguintes campos: id (autogerado), nome, idade, estado, identidade de gênero, etnia, renda média mensal (medido por salário mínimo), email, número de contato, ocupação, disponibilidade, se já está em atendimento e resumo descritivo da motivação para busca de tratamento psicológico;
- O schema do Volunteer deve possuir os seguintes campos: id (autogerado), nome, idade, estado, identidade de gênero, etnia, CRP, email, número de contato, disponibilidade, se ainda está disponível e resumo sobre sua experiência clínica;
- A API deve permitir o cadastro de usuários Pacient e Volunteer;
- A API deve permitir a visualização das listas de Pacients e Volunteer disponíveis
- A API deve permitir atualização de dados nos dois tipos de cadastros;
- A API deve permitir a exclusão de cadastro dos Pacient e Volunteer do banco de dados.
- Criação de usuário e login para o usuário Pacient com acesso a lista de psicólogos cadastrados com status disponível ;
- Criação de usuário e login para o usuário Volunteer com acesso a lista de pessoas cadastradas no aguardo de atendimento. E acesso privado à dados de triagem dos pacientes
O projeto final consiste em uma API fundamentada no CRUD, que são: CREATE (CRIAR), READ(LER-CONSULTA), UPDATE(ATUALIZAR) e DELETE(DELETAR).
Para a construção do projeto, as seguintes tecnologias foram utilizadas:
Para o desenvolvimento da API, as seguintes bibliotecas foram necessárias:
# Clonar o repositório
$ git clone https://github.com/beatriz-a-ndrade/psic-connect-api
# Entrar na pasta do repositório
$ cd psic-connect-api
# Instalar as dependências
$ npm install
# Executar o servidor
$ npm start
📁PSIC-CONNECT-API
|
|--📁public\imagens
| |- 📄 logoProjeto.jpg
|
|--📁node_modules
|
|--📁 src
| ||
| ||--📁 controller
| | |- 📄 pacientController.js
| | |- 📄 volunteerController.js
| | |- 📄 autenticacao.js
| |
| ||--📁 database
| | |- 📄 mongooseConnect.js
| |
| ||--📁 models
| | |- 📄 pacientModel.js
| | |- 📄 volunteerModel.js
| |
| ||--📁 routes
| | |- 📄 index.js
| | |- 📄 pacientRoutes.js
| | |- 📄 volunteerRoutes.js
| |
| ||-📄 app.js
| |
| |--📁 swagger
| | |- 📄 swagger_output.json
| |
| |--📁 test
| | |- 📄 pacient.test.js
| | |- 📄 volunteer.test.js
| |
|- 📄 .env
|- 📄 .env.example
|- 📄 .eslintrc.json
|- 📄 .gitignore
|- 📄 package-lock.json
|- 📄 package.json
|- 📄 Procfile
|- 📄 README.md
|- 📄 server.js
|- 📄 swagger.js
-
Local : http://localhost:8080
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /rota-document |
documentação swagger |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | / |
Mensagem de apresentação ( Index ) |
Método HTTP | Endpoint | Descrição |
---|---|---|
POST | /pacient/create |
Cadastra novo usuário Pacient |
POST | /pacient/login |
Realiza o login Pacient com email e senha |
POST | /volunteer/create |
Cria/cadastra um novo usuário Volunteer |
POST | /volunteer/login |
Realiza o login Volunteer com CRP e senha |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /volunteer/list |
Retorna lista de todos profissionais da psicologia cadastrados no banco de dados |
GET | /volunteer/list/on |
Retorna todos psicólogos voluntários cadastrados que estão disponíveis para atendimento |
GET | /volunteer/find/:id |
Retorna todos dados de cadastro de um voluntário em específico |
PATCH | /pacient/update/:id |
Atualiza/modifica dados específicos do cadastro Pacient |
DELETE | /pacient/delete/:id |
Deleta um usuário Pacient do sistema |
Método HTTP | Endpoint | Descrição |
---|---|---|
GET | /pacient/list |
Retorna lista de todos cadastrados como usuário pacient no banco de dados |
GET | /pacient/list/on |
Retorna lista de todos pacientes que ainda não conseguiram iniciar o acompanhamento com algum psicólogo cadastrado no sistema |
GET | /pacient/triage/:id |
Retorna informações pessoais e sensíveis dos pacientes que possam contribuir em um processo de triagem por parte do Psicólogo ( Rota segura ) |
PATCH | /volunteer/update/:id |
Atualiza/modifica dados específicos do cadastro Volunteer |
DELETE | /volunteer/delete/:id |
Deleta um usuário Volunteer do sistema |
{
"nome": "Beatriz Ribeiro de Andrade",
"idade": 27,
"estadocidade": "Montanhas Doces, XX",
"idgenero": "ela",
"etnia": "branca",
"rendamedia": 300,
"email": "arrobateste@reprograma.com",
"contato": 9988776622,
"motivacao": "Vontade de chorar toda hora",
"jaconseguiuatendimento": false,
"tempoespera": 20,
"disponibilidade": "quinta-feiras à tarde",
"ocupacao": "artista plástica",
"senha": "$2b$10$b7Q0IoTqkYnp1TaiFSN3eOtrEeOHGUKsUINaPnwBOS7Eod1.X3YYK",
"_id": "62d9d75c0a63eee9f39fc12a",
"createdAt": "2022-07-21T22:46:52.819Z",
"updatedAt": "2022-07-21T22:46:52.819Z",
"__v": 0
}
- id: gerado automaticamente
- nome: String e obrigatório
- idade: Number e obrigatório
- estadocidade: String e obrigatório
- idgenero: String e opcional
- etnia: String e opcional
- crp: String, obrigatório e único
- contato: Number, obrigatório e único
- experienciaclinica: String e obrigatório
- disponibilidade: String e obrigatório
- disponivel: Boolean e obrigatório
- senha: String e obrigatório
{
"nome": "Severino de Qualquer Um",
"idade": 34,
"estadocidade": "Montanhas Salgadas, ZZ",
"idgenero": "ele",
"etnia": "negro",
"CRP": 12384372,
"email": "arrobateste7@reprograma.com",
"contato": 9988776622,
"experienciaclinica": "2 anos de experiencia atuando em ongs e etc e tal",
"disponibilidade": "segundas e terças a tarde",
"disponivel": true,
"senha": "$2b$10$zAB9p/9FovzwdmWbLyN72udvCq6vjM3201nQxYgEBb04LSx3y.rwG",
"_id": "62d9db6c9b6fba79038bcd98",
"createdAt": "2022-07-21T23:04:12.265Z",
"updatedAt": "2022-07-21T23:04:12.265Z",
"__v": 0
}
{
"email": "arrobateste@reprograma.com",
"senha": "abacaxiazedo123"
}
{
"crp": "XXXX.XX-XX",
"senha": "abacaxidoce123"
}
- Implantação de código Front-end. Para o usuário ter a interação visual
- Funcionalidade de apenas permitir cadastro de psicólogos com CRP ativo (autenticação da validade do documento)
- Acrescentar ao banco de dados, uma requisição que salva o Id de quem está logado, para ser uma plataforma mais segura
- Implementar rotas GET para otimizar a dinâmica de buscas, e elementos como tags que categorizam e otimizam a experiência de busca da plataforma
1. Forkar o projeto
2. Criar uma branch para realizar suas alterações: git checkout -b feature/nome-da-nova-branch
3. Commitar as modificações feitas e abrir um pull request