♻️ Ecoleta é um projeto Open Source desenvolvido na semana Next Level Week (1.0) da Rocketseat utilizando as tecnologias TypeScript, Node, React e React Native.
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.
Website (React + TypeScript)
* Veja o arquivo package.json
Server (NodeJS + TypeScript)
* Veja o arquivo package.json
Mobile (React Native + TypeScript)
- Expo
- Expo Google Fonts
- React Navigation
- React Native Maps
- Expo Constants
- React Native SVG
- Axios
- Expo Location
- Expo Mail Composer
* Veja o arquivo package.json
- Protótipo: Figma → Protótipo (Ecoleta)
- API: IBGE API → API de UFs, API de Municípios
- Maps: Leaflet
- Editor: Visual Studio Code → Extensions: SQLite
- Markdown: StackEdit, Markdown Emoji
- Commit Conventional: Commitlint
- Teste de API: Insomnia
- Ícones: Feather Icons, Font Awesome
- Fontes: Ubuntu, Roboto
Primeiro, você precisa ter o NodeJS 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 asdf 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 link, ou através do asdf.
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 commitlint, server, website e mobile.
# 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 package.json para saber quais scripts estão disponíveis.
# 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.
Instale o aplicativo Expo 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
.
- 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
ouyarn
; - 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! ❤️ 👊 😊
- React + TypeScript Cheat Sheet
- Blog Rocketseat
- ReactJS | ReactJS pt-BR
- TypeScript
- React Native
- Expo
- Knex
- Express
- Node
- Celebrate
- Joi
Esse repositório está licenciado pela MIT LICENSE. Para mais informações detalhadas, leia o arquivo LICENSE contido nesse repositório.