Skip to content

Este projeto foi apresentado na conclusão do bootcamp {reprograma}.

Notifications You must be signed in to change notification settings

heloaaires/projeto-cirandeiras

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Cirandeiras - Mulheres na Cultura Popular 🎇

{reprograma} 💜 - turma On16

logo reprogramafy

Bem-vindas ao meu projeto de conclusão do curso de *desenvolvimento back-end* - turma On16 da {reprograma}. 🎉

Este projeto consiste em uma API REST onde podemos executar todas as funções CRUD em um banco de dados não relacional (MongoDB). Para as rotas create, patch e delete será necessária autorização mediante login.

Veja a documentação da API aqui: Swagger

A aplicação está disponível em: Heroku.

💃🏾 Apresentação

Este projeto é inspirado na segunda temporada do Cirandeiras Podcast, onde em cada episódio conhecemos sobre a vida e luta de mulheres que são guardiãs da cultura popular em seus territórios. Através da expressão cultural, essas mulheres mantêm vivas as tradições ancestrais e ocupam espaços de lideranças - muitas vezes destinados apenas aos homens.

A trajetória dessas mulheres e a relação que elas desenvolvem com cada ritmo e dança em seus territórios resgata a formação do povo brasileiro e dá contornos a reivindicações antigas, porém tão atuais: reconhecimento e demarcação de territórios quilombolas e indígenas, preservação ambiental, autonomia e liderança feminina, leis de incentivo e fomento à cultura.

Como diz o escritor Antônio Luiz Simas, “não se faz festa porque a vida é boa, mas pela razão inversa. (...) as culturas de festa, pelas síncopes da festa, inventam o mundo e subvertem a miséria, inclusive existencial.”

Não à toa, as danças e brincadeiras que acompanham cada ritmo nos revelam uma tentativa simbólica de lidar com a exploração nas relações de trabalho desde a escravidão. Sem deixar de lado o sagrado e uma certa ironia entre o festejo e a dor, os ritmos das Cirandeiras nos convidam a celebrar o nosso povo.

Se ouvirmos os relatos de histórias das nossas famílias certamente vamos descobrir brincadeiras infantis, festejos e tradições derivadas dessas expressões culturais. Este resgate nos permite observar, por exemplo, os processos migratórios de famílias no eixo nordeste/sudeste e estabelecer conexões com o passado e nossos ancestrais.

O objetivo desta API é guardar essa memória, trazer visibilidade para a luta e pioneirismo dessas mulheres e ainda, disseminar nossa cultura popular. ✨

Vamos lá?

logo reprogramafy



💾 Tecnologias Utilizadas

Feramenta Utilidade
JavaScript Linguagem de programação utilizada nesse projeto.
Node.js Ambiente de execução do JavaScript.
Git & GitHub Hospedagem do repositório e controle (versionamento de código).
express Framework do NodeJS.
mongoose Dependência que interage com o MongoDB. Conecta o projeto ao banco de dados, cria os models e as collections.
nodemon Observa as atualizações realizadas nos arquivos e roda o servidor automaticamente.
cors Torna os recursos da API acessíveis na web.
npm Gerenciador de pacotes do Node.js.
Mongodb Banco de dados não relacional orientado a documentos.
Mongo Atlas Interface gráfica para verificar se os dados foram persistidos.
Postman Interface gráfica para realizar os testes dos protocolos http.
jsonwebtoken Dependência que implementa o protocolo JSON Web Token para segurança de dados.
bcrypt Biblioteca para encriptação de dados.
dotenv Dependência que gerencia as variáveis de ambiente.
Swagger Gera a documentação do projeto. O comando [swagger-autogen] permite a atualização automática.
Heroku Hospeda a documentação.

🗃️ Arquitetura MRC

📁 Projeto-Cirandeiras
  |
  |- 📁 src
  |   |
  |   |- 📁 controllers
  |       |- 📑 cirandeirasController.js
  |       |- 📑 colaboradorasController.js
  |       |- 📑 ritmosController.js
  |         
  |   |- 📁 database
  |       |- 📑 mongooseConect.js
  |
  |   |- 📁 models
  |       |- 📑 cirandeirasModel.js
  |       |- 📑 colaboradorasModel.js
  |       |- 📑 ritmosModel.js
  |          
  |    |- 📁 routes
  |       |- 📑 cirandeirasRoutes.js
  |       |- 📑 colaboradorasRoutes.js
  |       |- 📑 index.js  
  |       |- 📑 ritmosRoutes.js
            
       |- 📑 app.js
  |
  |- 📁 swagger
  |   |- 📑 swagger_output.json
  |           
  |- 📑 .env
  |- 📑 .env.example
  |- 📑 .gitignore
  |- 📑 package-lock.json
  |- 📑 package.json
  |- 📑 Procfile
  |- 📑 README.md
  |- 📑 server.js
  |- 📑 swagger.js

📃 Funcionalidades

Vamos nos inspirar na vida e trajetória de cada Cirandeira? 💃🏾 Use a API das Cirandeiras para listar todas as mulheres cadastradas e acessar as seguintes informações:

  • Nome
  • Idade
  • Estado onde mora e realiza suas atividades
  • Ritmo
  • Trajetória dentro dessa tradição cultural
  • Luta Coletiva e reivindicações atreladas às suas atividades
  • Episodio do Podcast para você ouvir e se inspirar na história dessa mulher!

⏩ Podemos filtrar essa lista por estado ou ritmo.

Por falar em ritmo...

Vamos aprender mais sobre os ritmos brasileiros? Certamente você irá se surpreender com alguns que nunca ouviu falar!

Use a API de Ritmos para acessar as seguintes informações 🎵:

  • Nome do ritmo
  • Descrição
  • Origem étnica
  • Contexto histórico do surgimento desse ritmo
  • Brincadeiras e danças atreladas à essa expressão cultural
  • Região onde surgiu
  • Instrumentos utilizados

⏩ Podemos filtrar essa lista por região ou origem étnica.

Este projeto é um CRUD completo, portanto é possível executar também as seguintes funcionalidades:

- 📑 Cadastrar novas cirandeiras e novos ritmos no banco de dados
- 📑 Atualizar os dados das cirandeiras e dos ritmos
- 📑 Deletar o registro de uma cirandeira ou de um ritmo

🚀 Rotas / endpoints

💃🏾 Cirandeiras:

Verbo EndPoint Descrição da Rota Status Auth
POST /cirandeiras Cadastra uma nova cirandeira 201 ✔️
GET /cirandeiras Lista todas as cirandeiras cadastradas 200
GET /cirandeiras/?estado= Utiliza o mesmo endpoint para filtrar por estados 200
GET /cirandeiras/?ritmo= Utiliza o mesmo endpoint para filtrar por ritmos 200
PATCH /cirandeiras/:id Atualiza os dados de uma cirandeira pelo ID 200 ✔️
DELETE /cirandeiras/:id Remove o cadastro de uma cirandeira pelo ID 200 ✔️

🎵 Ritmos:

Verbo EndPoint Descrição da Rota Status Auth
POST /ritmos Adiciona um ritmo novo 201 ✔️
GET /ritmos Lista todos os ritmos cadastrados 200
GET /ritmos/?regiao= Utiliza o mesmo endpoint para filtrar por regiao 200
GET /ritmos/?origem= Utiliza o mesmo endpoint para filtrar por origem 200
PATCH /ritmos/:id Atualiza os dados de um ritmo pelo ID 200 ✔️
DELETE /ritmos/:id Remove o cadastro de um ritmo pelo ID 200 ✔️

🔒 Autenticação

Para segurança dos dados deste projeto, as funções criar, atualizar e deletar, só podem ser executadas por colaboradoas autorizadas.

👭🏽 Rotas/ endpoints para as colaboradoras:

Verbo EndPoint Descrição da Rota Status Auth
POST /colaboradoras Adiciona uma nova colaboradora 201 ✔️
GET /colaboradoras Lista todas as colaboradoras cadastradas 200
POST /colaboradoras/login Devolve o token de uma colaboradora 200 ✔️
DELETE /colaboradoras/:id Remove uma colaboradora 200 ✔️

👋🏾 Preparando o ambiente para a execução

Para executar este projeto, você deverá ter instalado na sua máquina o Node.js

Para executar este projeto, você deverá ter instalado na sua máquina o Node.js

Em seguida:

- Clone o projeto através do comando: $ git clone https://github.com/heloaaires/projeto-cirandeiras.git

- Digite no terminal o comando $ npm install

- Digite o comando $ npm start para executar o servidor

⚙️ Executando a aplicação

✔️ Para fazer testes no servidor local:

  • Crie um arquivo .env na raiz do seu projeto e lembre-se de adicioná-lo ao seu .gitignore
  • Utilize o arquivo .env.example para veririfcar as variáveis de ambiente necessárias.
  • Inicialize a aplicação com o comando npm start na pasta raiz do projeto.

✔️ ✔️ Para rodar remotamente:

Utilize a URL do Heroku para fazer as requisições GET conforme as rotas descritas acima, ou apenas clique nos links abaixo. Lembre-se de passar um valor quando uma chave estiver declarada na URL. 😉

💃🏾 Rotas GET para as Cirandeiras:

🎵 Rotas GET para as Ritmos:

⭐ Melhorias pro futuro:

💠 Integrar uma página dedicada à cada Cirandeira, onde teremos:

🪡 Agenda de apresentações de cada artista

🪡 Loja virtual de produtos ou outra ferramenra que possa viabilizar recursos

(infelizmente, apesar de toda a riqueza cultural que produzem, é comum que estas mulheres enfrentem dificuldades financeiras)

💠 Mural de artistas já falecidas para homenagear e guardar legados como o da inesquecível Zabé da Loca

logo reprogramafy

Autoria 🙋

Este projeto foi desenvolvido por Heloá Aires em parceria com o Cirandeiras Podcast 🎶.

Achou interessante e quer contrubuir para o desenvolvimento de outras funcionalidades?

Escreve para a gente e vamos cirandar juntas! 💜

🤩 Projeto realizado com os recursos aprendidos no bootcamp:

logo reprogramafy

About

Este projeto foi apresentado na conclusão do bootcamp {reprograma}.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages