A sociedade capitalista, machista, racista e LGBTQIA+fóbica em que vivemos deu muito errado para a grande maioria das pessoas. O falso conservadorismo que nos permeia faz com que assuntos como a vida sexual da mulher não sejam discutidos. O resultado disso: violência. Se entre mulheres cis heterossexuais a experiência ginecológica já é traumática. Quando fazemos o recorte para mulheres lésbicas, bissexuais e pessoas não binárias, uma consulta ginecológica é composta por violência, apagamento, desrespeito e a sensação de que ter acesso ao básico, como um tratamento médico humanizado, é algo que jamais será alcançado. Afinal, o problema é bem mais profundo quando paramos para pensar que as faculdades de medicina não formam médicas e médicos para nada que não seja heteronormativo.
Como resultado a esses dois problemas existe uma verdadeira fuga desse grupo das consultas ginecológicas. De acordo com a Febrasgo (Federação Brasileira das Associações de Ginecologia e Obstetrícia) 76% das mulheres (independentemente de sua sexualidade) realizam consultas ginecológicas anualmente. Mas quando falamos das mulheres que fazem sexo com mulheres o índice cai para 47%. Uma situação extremamente preocupante porque a prevenção é o melhor caminho para evitar problemas e ter uma boa saúde.
Atualmente, o processo de encontrar ginecologistas que atendam mulheres lésbicas, bissexuais e pessoas não binárias sem discriminação e de maneira humanizada se dá por meio do boca a boca ou através de indicação em grupos nas redes sociais. Fora o difícil acesso para encontrar médicas/os especialistas para tratar sobre o assunto. Essas dificuldades tornam um processo que deveria ser natural em algo trabalhoso e cansativo.
Partindo do princípio que estamos no século XXI e que tamanho retrocesso é inaceitável, como forma de mitigar esse problema, inicialmente atendendo apenas o estado de Pernambuco, a teCuida busca ser um ambiente de referência capaz de criar uma base de médicas e médicos que realizam esse atendimento humanizado, assim como uma base para que essas/es médicas/os possam ter acesso a guias com instruções sobre como proceder corretamente em consultas e exames realizados em mulheres lésbicas, bissexuais e pessoas não binárias.
teCuida é uma API RESTfull feita com a tecnologia Javascript no Node.js e integrada ao MongoDB que atende três clientes: usuáries, pessoas da medicina que buscam informação sobre o tema e especialistas atuantes na área desejam contribuir com seus conhecimentos. Sendo assim, será possível realizar ações como o cadastro, atualização e visualização de médicas/os que já fazem esse atendimento especializado, considerando informações como preço social, plano de saúde, descrição do atendimento e gênero. Assim como também será possível, por parte das/os médicas/os atuantes, o cadastro e atualização de guias para realização de um atendimento não violento, pelo contrário! Que seja humanizado, atendendo as especificidades das mulheres cis e de pessoas não-binárias, independentemente de sua sexualidade.
Por se tratar de um tema que requer cautela e abordagem segura, ações como cadastro, atualização e deleção de informações só podem ser realizadas por usuárias/os já cadastradas/os no sistema.
Ferramenta | Descrição |
---|---|
javascript |
Linguagem de programação. |
nodejs |
Runtime de JavaScript baseado no motor V8 JavaScript do Chrome. |
express |
Framework Node.js. |
MongoDb |
Banco de dado não relacional orietado a documentos. |
npm ou yarn |
Gerenciador de pacotes. |
nodemon |
Dependência que monitora todas as alterações nos arquivos da aplicação e reinicia automaticamente o servidor sempre que for necessário. |
cors |
Dependência que permite que um site acesse recursos de outro site mesmo estando em domínios diferentes. |
bcrypt |
Biblioteca que adiciona um código aleatório ao hash original. |
mongoose |
Dependência que interage com o MongoDB para a conexão da database, criação do model e das collections. |
jsonwebtoken |
Dependência de autenticação entre duas partes por meio de um token assinado que autentica uma requisição web. |
dotenv |
Dependência para proteger dados sensíveis do projeto. |
MongoDb Compass |
Interface gráfica para verificar se os dados foram persistidos. |
Postman ou Insomnia |
Interface gráfica para realizar testes. |
MongoAtlas |
Serviço de DBaaS (Banco de Dados como Serviço) oferecido pela MongoDB. |
Heroku |
A Heroku é uma plataforma nuvem que faz deploy de várias aplicações back-end seja para hospedagem, testes em produção ou escalar as suas aplicações. |
📁 teCuida
|
|- 📁 src
| |
| |- 📁 assets
| | |- 📄 teCuida.gif
| |
| |- 📁 controllers
| | |- 📄 authController.js
| | |- 📄 doctorUserController.js
| | |- 📄 guideController.js
| | |- 📄 userController.js
| |
| |- 📁 data
| | |- 📄 dbConfig.js
| |
| |- 📁 helpers
| | |- 📄 check-token.js
| | |- 📄 get-user-by-token.js
| |
| |- 📁 models
| | |- 📄 doctorUser.js
| | |- 📄 guide.js
| | |- 📄 user.js
| |
| |- 📁 routes
| | |- 📄 auth.routes.js
| | |- 📄 doctorUser.routes.js
| | |- 📄 guide.routes.js
| | |- 📄 index.js
| | |- 📄 user.routes.js
| |
| |- 📄 app.js
|
|- 📄 .env.example
|- 📄 .gitignore
|- 📄 package-lock.json
|- 📄 package.json
|- 📄 Procfile
|- 📄 README.md
|- 📄 server.js
[
{
"título":"teCuida Api - Projeto final da {reprograma}",
"version":"1.0.0",
"mensagem":"Seja bem vinde! 🤖",
"__v": 0
}
]
Endpoint: {{URL}}api/auth
Rota | Método | O que faz |
---|---|---|
/resgister |
POST | Cadastro de usuário |
/login |
POST | Acesso do usuário a aplicação |
Endpoint: {{URL}}api/user
Rota | Método | O que faz |
---|---|---|
/user |
GET | Retorna todos os médicos/as cadastrados |
/user |
PUT | Atualiza cadastro do usuário |
Endpoint: {{URL}}api/doctor
Rota | Método | O que faz |
---|---|---|
/create |
POST | Cadastro de médicas/os |
/all |
GET | Retorna médicas/os que aceitam plano de saúde |
/healthPlan |
GET | Retorna médicas/os que aceitam plano de saúde |
/socialPrice |
GET | Retorna médicas/os que aceitam preço social |
/femaleGender |
GET | Retorna apenas médicas do gênero feminino |
/maleGender |
GET | Retorna apenas médicos do gênero masculino |
/update |
PUT | Atualiza cadastro de médicas/os através do id |
/:id |
DELETE | Deleta médicas/os cadastrados através do id |
Endpoint: {{URL}}api/guide
Rota | Método | O que faz |
---|---|---|
/create |
POST | Cadastro de guia com orientações |
/allGuide |
GET | Retorna todas os guias de orientação |
/:id |
GET | Retorna guia de um/a médico/a específico pelo seu id |
/:id |
PATCH | Atualiza informações de um guia através do id |
/:id |
DELETE | Deleta um guia através do id |
[
name: {
type: String
},
email: {
type: String,
required: true,
match: /.+\@.+\..+/,
unique: true
},
password: {
type: String,
required: true
},
doctor: {
type: Boolean
},
crm: {
type: Number
}
]
[
name: {
type: String,
required: true
},
adress: {
type: String,
required: true
},
description: {
type: String,
required: true
},
feminineGender: {
type: Boolean,
required: true
},
socialPrice: {
type: Boolean,
required: true
},
healthPlan: {
type: Boolean,
required: true
},
userId: {
type: mongoose.ObjectId
},
date: {
type: Date,
require: true,
default: new Date
}
]
[
articles: {
type: String,
required: true
},
guidance: {
type: String,
required: true
},
approach: {
type: String,
required: true
},
userId: {
type: mongoose.ObjectId
},
date: {
type: Date,
require: true,
default: new Date
}
]
- Cadastro só pode ser feito se todos os campos obrigatórios forem preenchidos;
- Cadastro só pode ser feitos se a senha digitada for a mesma da confirmação senha;
- Cadastro não pode ser aceito se o e-mail que já estiver no sistema;
- Ausência de CRM não pode ser impeditivo para realização de cadastro.
- Acesso só pode ser liberado caso o e-mail e senha coincidam com os cadastrados anteriormente.
- Atualização só pode ser feita por um usuário logado;
- Atualização de senha só acontece se as senhas coincidirem;
- Atualização só pode ser feita pelo próprio usuário.
- Cadastro só pode ser feito por um usuário logado;
- Nome, endereço, preço social, plano de saúde, descrição e gênero devem ser campos obrigatórios;
- O cadastro só pode ser realizado se todos os campos obrigatórios estiverem preenchidos;
- Cadastro duplicado não poderá ser aceito.
- Deve ser possível retornar apenas médicas/os que aceitem preço social;
- Deve ser possível retornar apenas médicas/os que aceitem plano de saúde;
- Deve ser possível retornar apenas médicas do gênero feminino;
- Deve ser possível retornar apenas médicos do gênero masculino.
- Atualização só pode ser feito por um usuário logado;
- A atualização só pode ser feita se todos os campos obrigatórios estiverem preenchidos.
- Médico só pode ser apagado por um usuário logado no sistema.
- Cadastro só pode ser feito por um usuário logado no sistema;
- Nome, endereço, preço social, plano de saúde, descrição e gênero devem ser campos obrigatórios;
- O cadastro só pode ser realizado se todos os campos obrigatórios estiverem preenchidos.
- O mesmo médico não pode ser cadastrado duas vezes.
- Atualização só pode ser feito por um usuário logado no sistema;
- A atualização só pode ser feita se todos os campos obrigatórios estiverem preenchidos.
- Guia só pode ser apagada por um usuário logado no sistema.
- Desenvolvimento de uma interface gráfica;
- Validação do CRM cadastrado pelos médicos especialistas;
- Possibilidade de interação entre usuárias e médicos/as;
- Criação de cadastro apenas com apresentação do CPF como forma de garantir a autenticidade da ausuária;
- Possibilidade de usuárias contestarem informações cadastradas pelas/os médicas/os no guia;
- Ampliar o alcance para toda a região Nordeste e, posteriormente, o Brasil inteiro;
- Alcançar outros grupos que também façam parte da comunidade LGBTQIA+.
- Faça o download ou clone este repositório;
- Abra seu Terminal/Prompt e navegue até o diretório reprograma-tecuida;
- Rode: $ npm install;
- Para subir o servidor é só rodar $ npm run start.