SkillAgentSearch skills...

Ecoleta

♻️ Ecoleta é um projeto Open Source desenvolvido na Next Level Week (1.0) da Rocketseat utilizando TypeScript, Node, React e React Native.

Install / Use

/learn @mauricioromagnollo/Ecoleta
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<h1 align=center> <img src="https://user-images.githubusercontent.com/38081852/83580830-6f63e200-a513-11ea-9a27-0a109ec1e4d0.png" /> </h1> <div align="center">

![BADGE_LICENSE] ![BADGE_NODE_VERSION] ![BADGE_NPM_VERSION] ![BADGE_WEB_REACT] ![BADGE_MOBILE_REACT_NATIVE] ![BADGE_SERVER_NODEJS] ![BADGE_TYPESCRIPT] ![BADGE_OPEN_SOURCE] ![BADGE_OPEN_ISSUES] ![BADGE_CLOSED_ISSUES] ![BADGE_STARS] ![BADGE_FORKS]

</div> <h3 align="center">

♻️ Ecoleta é um projeto Open Source desenvolvido na semana Next Level Week (1.0) da [Rocketseat][rocketseat_site] utilizando as tecnologias TypeScript, Node, React e React Native.

</h3>

Banner

:rocket: OBJETIVO

O projeto tem como finalidade estabelecer uma conexão entre empresas e/ou entidades que coletam resíduos (orgânicos e inorgânicos) às pessoas e/ou entidades que necessitam constantemente descartar esses resíduos. Solucionando um grande problema recorrente que é o descarte inadequado do lixo, facilitando o processo de recliclagem e reutilização.

<!-- ... Local Reservado para o GIF do projeto rodando. ... -->

:computer: TECNOLOGIAS

Website ([React][react] + [TypeScript][typescript])

  • [React Router Dom][react_router_dom]
  • [React Icons][react_icons]
  • [Axios][axios]
  • [Leaflet][leaflet]
  • [React Leaflet][react_leaflet]
  • [React Dropzone][react_dropzone]

* Veja o arquivo <kbd>package.json</kbd>

Server ([NodeJS][node] + [TypeScript][typescript])

  • [Express][express]
  • [CORS][cors]
  • [KnexJS][knex]
  • [SQLite][sqlite3]
  • [ts-node][tsnode]
  • [dotENV][dotenv]
  • [Multer][multer]
  • [Celebrate][celebrate]
  • [Joi][joi]

* Veja o arquivo <kbd>package.json</kbd>

Mobile ([React Native][react_native] + [TypeScript][typescript])

  • [Expo][expo]
  • [Expo Google Fonts][expo_google_fonts]
  • [React Navigation][react_navigation]
  • [React Native Maps][react_native_maps]
  • [Expo Constants][expo_constants]
  • [React Native SVG][react_native_svg]
  • [Axios][axios]
  • [Expo Location][expo_location]
  • [Expo Mail Composer][expo_mail_composer]

* Veja o arquivo <kbd>package.json</kbd>

Utilitários

  • Protótipo: Figma<kbd>Protótipo (Ecoleta)</kbd>
  • API: [IBGE API][ibge_api]<kbd>[API de UFs][ibge_api_ufs]</kbd>, <kbd>[API de Municípios][ibge_api_municipios]</kbd>
  • Maps: [Leaflet][leaflet]
  • Editor: [Visual Studio Code][vscode] → Extensions: <kbd>[SQLite][vscode_sqlite_extension]</kbd>
  • Markdown: [StackEdit][stackedit], <kbd>[Markdown Emoji][markdown_emoji]</kbd>
  • Commit Conventional: [Commitlint][commitlint]
  • Teste de API: [Insomnia][insomnia]
  • Ícones: [Feather Icons][feather_icons], [Font Awesome][font_awesome]
  • Fontes: [Ubuntu][font_ubuntu], [Roboto][font_roboto]

:wine_glass: COMO UTILIZAR

Configurações Iniciais

Primeiro, você precisa ter o <kbd>NodeJS</kbd> instalado na sua máquina.

Se você estiver utilizando o Linux, você pode optar por instalar o Node através do gerênciador de versões <kbd>[asdf]</kbd> para facilitar o processo de mudança da versão do Node, quando for necessário.

Você pode optar também por utilizar o yarn no lugar do npm. Você pode instalar clicando nesse <kbd>[link][yarn]</kbd>, ou através do <kbd>[asdf]</kbd>.

Após ter o Node instalado, instale as dependências do React e React Native (Expo) de forma global, utilizando os comandos:

# React:
$ npm install create-react-app -g

# Expo (React Native):
$ npm install -g expo-cli 

Você precisa renomear o arquivo .env-example para .env e inserir as informações que condizem com o seu host:

$ mv .env-example .env

Instale as dependências contidas nos arquivos package.json que se encontram na raíz do repositório (para o gerenciamento de commits), no diretório do server, no diretório do website e no diretório mobile. Para instalar as dependências, basta abrir o terminal no diretório e digitar o comando:

$ npm install

# ou
$ yarn

Exemplos:

# Instalando as dependências do commitlint:
$ cd ./ecoleta
$ npm install

# Instalando as dependências do server:
$ cd ./sources/server
$ npm install

# Instalando as dependências do website:
$ cd ./sources/website
$ npm install

# Instalando as dependências do mobile:
$ cd ./sources/mobile
$ npm install

Veja os arquivos package.json do <kbd>commitlint</kbd>, <kbd>server</kbd>, <kbd>website</kbd> e <kbd>mobile</kbd>.

Utilizando o Server

# Abrindo o terminal no diretório do servidor:
$ cd ./sources/server

# Executando a aplicação em modo de desenvolvimento:
$ npm run dev

# Instanciando o banco de dados:
$ npm run knex:migrate

# Povoando o banco de dados (seeds):
$ npm run knex:seed

Veja a parte de scripts {} do arquivo <kbd>package.json</kbd> para saber quais scripts estão disponíveis.

Utilizando o Website

# Abrindo o terminal no diretório do website:
$ cd ./sources/website

# Executando o website no modo de desenvolvimento:
$ npm run start

Se o browser não abrir automaticamente, acesse: http://localhost:3000.

Utilizando o Mobile

Instale o aplicativo <kbd>Expo</kbd> no seu smartphone.

# Abrindo o terminal no diretório do mobile:
$ cd ./sources/mobile

# Executando o mobile no modo de desenvolvimento:
$ npm run start

Agora, abra o aplicativo do expo e no modo LAN faça o scan do QRCode.

Se tiver algum problema para executar o aplicativo nesse modo, tente desabilitar o firewall da sua máquina.

Se tiver algum problema com as fontes, utilize o comando:

$ expo install expo-font @expo-google-fonts/ubuntu @expo-google-fonts/roboto

* Lembre de inserir no arquivo .env o IP exato que foi gerado pelo seu mobile após utilizar o comando npm run start.

:octocat: COMO CONTRIBUIR

  • Verifique as Issues que estão abertas e se já não existe alguma com a sua feature;
  • Abra uma Issue com o nome e descrição da sua feature e assine com o seu usuário informando que irá fazê-la;
  • Faça um fork do repositório;
  • Entre no sua página do GitHub e faça um clone do seu fork;
  • Crie uma branch com o nome da sua feature: git chechout -b feat/minhaFeature;
  • Faça as alterações necessárias no código ou na documentação;
  • Instale as dependências do commitlint na raíz do projeto para a verificação dos commits: npm install ou yarn;
  • Faça o commit das suas alterações seguindo as convenções de commit, adicione na descrição o id da sua Issue em parênteses e lembre de fechar a sua Issue com o id no rodapé do commit:
  <tipo>(escopo opcional): <descrição> (#x)

  [corpo do commit]

  Close #x

Exemplo:

  feat: adicionado componente para tal coisa (#52)

  Foi adicionado um componente para tal coisa com o objetivo de melhorar tal coisa, deixando o projeto de tal maneira.

  Close #52
  • Faça um push para a sua branch: git push origin feat/minhaFeature;
  • Agora é só abrir um pull request no repositório que você fez o fork e assim que acontecer o merge sua Issue será fechada e suas alterações irão fazer parte do projeto;
  • Depois que o merge da sua pull request for feito, você pode deletar a sua branch.

* Obrigado por contribuir! ❤️ :facepunch: :blush:

:star2: AGRADECIMENTOS

<div align=center> <table style="width:100%"> <tr align=center> <th><strong>Next Level Week</strong></th> <th><strong>Rocketseat</strong></th> <th><strong>diego3g</strong></th> <th><strong>maykbrito</strong></th> </tr> <tr align=center> <td> <a href="https://nextlevelweek.com/"> <img width="200" src="https://user-images.githubusercontent.com/42815135/83976057-f0352c00-a8cd-11ea-88da-22ff672ce842.png"> </a> </td> <td> <a href="https://rocketseat.com.br/"> <img width="200" height="180" src="https://user-images.githubusercontent.com/38081852/83981650-1e2e6680-a8f6-11ea-9f42-6df8fe809e4b.png"> </a> </td> <td> <a href="https://github.com/diego3g"> <img width="200" height="180" src="https://user-images.githubusercontent.com/38081852/83981712-b7f61380-a8f6-11ea-9099-bd3677e97e39.jpg"> </a> </td> <td> <a href="https://github.com/maykbrito"> <img width="200" height="180" src="https://user-images.githubusercontent.com/38081852/83981753-1de29b00-a8f7-11ea-93cf-23d2ff65fa5c.png"> </a> </td> </tr> </table> </div>

:books: REFERÊNCIAS

View on GitHub
GitHub Stars50
CategoryDevelopment
Updated7mo ago
Forks37

Languages

TypeScript

Security Score

92/100

Audited on Sep 2, 2025

No findings