/reprograma-VES.TECH

Primary LanguageJavaScriptMIT LicenseMIT

Deploy on heroku GitHub repo size GitHub last commit

GitHub STARS

Arte da VES.TECH e lema:{trans}forme o mundo

A VES.TECH tem a proposta de disponibilizar o acesso a cursos de capacitação na area da tecnologia que tenham ações afirmativas voltadas para mulheres trans e travestis

🌈 Apresentação

A VES.TECH - {trans}forme o mundo é o projeto de conclusão do bootcamp de back-end da Turma On16 da {Reprograma}.

Este projeto é uma API com CRUD completo que contém um banco de dados, Autenticação e Login. Possui a intenção de cadastrar instituições que possuam cursos com politicas afirmativas voltadas a mulheres trans e travestis. dados utilizados

📊 Justificativa

Atualmente grande parte da população de mulheres trans e travestis, principalmente negras, se encontram trabalhando como profissionais do sexo. As que estão alocadas nesse meio por opção são poucas, a maioria foi empurrada para esse espaço. Não obstante, o Brasil continua em primeiro lugar como o país que mais mata pessoas trans no mundo, assim como o que mais tem evasão escolar e busca em sites pornograficos com esses mesmos corpos. Os únicos outros espaços que abarcam e “acolhem” mulheres trans e travestis são subempregos como os de cabeleireira, manicure e/ou telemarketing.

Pensando nisso, esse projeto tem o objetivo de reunir, apresentar e capacitar mulheres trans e travestis através de cursos que sejam voltados a esse público ou que sejam gratuitos. Principalmente, cursos da área da tecnologia como: back-end, front-end, análise de dados, entre outros. Por que? Bom, em uma realidade onde corpos trans são empurrados para a marginalidade pela estrutura colonial, patriarcal, elitista e higienista, proporcionar outras maneiras de se viver, não apenas sobreviver, é proporcionar garantia de direitos, cidadania e principalmente: opções. dados utilizados

📈Fonte dos dados

🎮 Funcionalidades

Para os cursos

✔️ Cadastro de novos cursos

✔️ Listar todos os cursos

✔️ Visualizar cursos por titulo

✔️ Visualizar cursos por disponibilidade

✔️ Atualizar um curso específico pelo ID

✔️ Remover um curso específico do banco de dados

✔️ Visualizar cursos por categoria (Ex:JavaScript, HTML, CSS)

✔️ Visualizar cursos por politica afirmativa (Ex: mulheres trans, travestis)

🏗️ Arquitetura MVC

  📁 reprograma-VES.TECH    
  |-  📁 images         
  |-  📁 node_modules
  |-  📁 Swagger    
  |         |- 📄 swagger_output.json   
  |-  📁 src  
  |    |- 📁 database  
  |         |- 📄 mongooseConnect.js    
  |    |- 📁 controllers    
  |         |- 📄 coursesController.js    
  |         |- 📄 institutionsController.js    
  |         |- 📄 usersController.js 
  |    |- 📁 models  
  |         |- 📄 coursesModel.js    
  |         |- 📄 institutionsModel.js    
  |         |- 📄 usersModel.js 
  |    |- 📁 routes  
  |         |- 📄 coursesRoutes.js     
  |         |- 📄 institutionsRoutes.js   
  |         |- 📄 usersRoutes.js    
  |         |- 📄 usersRoutes.js 
  |    |- 📄 app.js  
  |-  📁 test 
  |         |- 📄 courses.test.js 
  |         |- 📄 institutions.test.js  
  |-  📄 .env
  |-  📄 .env.example 
  |-  📄 .eslintrc  
  |-  📄 .gitignore 
  |-  📄 LICENSE  
  |-  📄 package-lock.json   
  |-  📄 pakage.json 
  |-  📄 Procfile
  |-  📄 README.md 
  |-  📄 sendgrid.js
  |-  📄 server.js
  |-  📄 Swagger.js    

Arte da VES.TECH e lema:{trans}forme o mundo

📦 Dependencias e Tecnologias

Base do projeto

Controle de versões: 
Git/GitHub

Editor de código - IDE:
VSCode

Desenvolver o back-end em Javascript:
Nodejs

Instalações iniciais

Package.json em JS:
npm init -y

Express, cors e node_modules:
npm i express cors

Nodemon:
npm i -D nodemon

Banco de dados

Mongoose:
npm i mongoose

Autententicação

Jwt:
npm install jsonwebtoken -- save

Bcrypt:
npm install bcrypt -- save

Variaveis de ambiente

Dotenv:
npm install dotenv-safe -- save

Testes

ESlint:
npm install --save-dev eslint@8.16.0
npx eslint --init

Jest:
npm install --save-exact jest@28.1.0

Documentação

Swagger:
npm i swagger-autogen swagger-ui-express

Serviço de e-mail

Sendgrid:
npm @sendgrid/mail

🔒 Variáveis de Ambiente

Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env

PORT=NUMERO_PORTA
SECRET=CHAVE_HASH_SEM_ESPAÇO
DATABASE_URI=CONEXÃO_COM_MONGO_SEM_ASPAS
SENDGRID_API_KEY=CHAVE_API_KEY_SEM_ESPAÇO


📌 Rotas - EndPoint


📢 Todas as rotas existentes neste projeto:

  • Usuários
Verbo EndPoint Descrição da Rota Status Auth
POST /user Adicionar um novo usuário 201
GET /users/ Listar todos os usuários 200
GET /users/:id Mostrar usuário pelo ID 200
DELETE /user/config/:id Remove um usuário 200 ✔️
POST /user/login/:id Devolve o token de um usuário 200 ✔️

  • Instituições
Verbo EndPoint Descrição da Rota Status Auth
GET /institution Listar todas as instituições cadastradas 200
GET /institutions/:id Mostra instituição por ID 200
POST /institutions Registra uma nova instituição 201 ✔️
PATCH /institution/update/:id Altera alguma informação de uma instituição 201 ✔️
DELETE /settings/:id Remove uma instituição cadastrada 200 ✔️

  • Cursos
Verbo EndPoint Descrição da Rota Status Auth
GET /courses Listar todos os cursos cadastrados 200
GET /users/courses/:id Mostra curso cadastrado por ID 200
GET /courses/coursetitle Mostra curso cadastrado por título 200
GET /courses/affirmativepolicies Mostra curso cadastrado por politicas afirmativas 200
GET /courses/available Mostra curso cadastrado por disponibilidade 200
GET /courses/category Mostra curso cadastrado por categoria 200
GET /courses/categoryandaffirmativepolicies Mostra curso cadastrado por categoria e por politicas afirmativas 200
POST /institution/course Registra um novo curso 201 ✔️
PATCH /institution/courses/:id Altera alguma informação sobre o curso 201 ✔️
DELETE /institution/course/:id Remove o cadastro de um curso pelo ID 200 ✔️

PROTEÇÃO Para testar via Postman, passar bearer token no header de autenticação $ Bearer Token


📚 Documentação da API

📝 Swagger

📝 Heroku


Instalação e Contribuição no projeto

  1. Faça um fork do projeto.
  2. Realize o clone do projeto através do git clone <link_do_fork_do_repositorio>
  3. Crie uma nova branch com as suas alterações: git checkout -b minha-branch
  4. Instale as dependências necessárias à execução da API através do comando npm install
  5. Salve as alterações e crie uma mensagem de commit contando o que você fez: git commit -m "feature: Minha contribuição"
  6. Envie as suas alterações: git push origin minha-branch

🗺️ Referências

Arte da VES.TECH e lema:{trans}forme o mundo

💞Agradecimentos

Agradeço inicialmente a todas as travestis e mulheres trans que vieram antes de mim, pois essa conquista não seria possivel sem vocês, de Manicongo as minhas irmãs do presente: OBRIGADA!;
A minha mãe e a minha amiga Fariza por me apoiarem nesse processo de transição de careira;
A {Reprograma} por ter me proporcionar essa experiencia de aprendizado indescritivel que com toda certeza mudou minha vida;
As professoras, monitoras e coordenadoras que sempre estavam presentes para nos auxiliar;
A turma on16, mas principalmente as amigas da Off Reprograma que me deram tanto apoio quanto afeto: Eu amo vocês;
A facilitadora Jani e a psicologa Ju por serem tão gentis e acolhedoras;
E por fim as minhas grandes divindades mães nessa vida: Hécate e Ártemis, sem as senhoras eu não seria nada. Obrigada por terem me feito sua filha nessa jornada. Evohe!

Arte da VES.TECH e lema:{trans}forme o mundo

🦄 Autora


Foto de Perfil de Louise

Desenvolvido por

logo da reprograma