Projeto do hackathon Provihack do Agora promovido pela Provi
TryAgain é uma plataforma que conecta empresas em prol de uma causa única: reciclagem de produtos têxteis visando otimizar o uso de materiais já existentes e minimizando as consequências climáticas da fabricação de novos produtos. O usuário pode cadastrar sua empresa, os materiais que ela descarta e os que ela precisa, bem como publicar anúncios de materiais e adquirir materiais de outras empresas.
Para instalar a aplicação é necessário ter instalado na sua máquina
Para rodar o projeto execute os comandos abaixo no seu terminal:
Para copiar o projeto
git clone https://github.com/provihack-equipe-25/ph-team25.git
Para rodar o back-end entre na pasta do projeto "ph-team25" e execute:
cd server
npm install
npm start
Para rodar o front-end abra outra janela de terminal no diretório raiz do projeto e execute:
cd team25
npm install
npm start
https://documenter.getpostman.com/view/19294478/UyrGBu2E
O projeto foi criado com as seguintes tecnologias
- NodeJs - Usado para o back-end da aplicação;
- Express - Usado para construir a API da aplicação;
- ReactJs - Framework usado para o front-end da aplicação;
- Styled components - Ferramenta de componentização de estilos;
- React router DOM - Ferramenta que possui atalhos para utilizar React Router em aplicações web;
- React hook form - Gerenciador e otimizador de formulários;
- UUID - Gerador de identificadores únicos;
- Bcryptjs - Hasheador de senhas para inserção segura no banco de dados;
- Yup - Ferramenta de verificação de autenticação do usuário;
- Git - Ferramenta de versionamento;
- MySql - Banco de dados usado para aplicação;
- Knex - Ferramenta que possibilita integração de JavaScript com MySQL e
- Heroku - Usado para hospedagem do back-end do projeto
Por ser um produto baseado na web, decidimos utilizar o framework React.js no frontend, por possuir ferramentas robustas de controle de inputs, ser performático e eficiente, além de permitir uma velocidade maior no desenvolvimento. Utilizamos a biblioteca Styled Components para pré-processamento das planilhas de estilo, por ter um uso rápido, sintaxe simples, permitir componentização e ser performática. O deploy foi feito utilizando Surge, por estar disponível dentro do NPM e sem necessidade de configuração. Para desenvolvimento do backend, foram utilizados Node.js, com a tipagem do TypeScript para garantir manutenção fácil do código, e ajuda das bibliotecas Knex e Express.js para manipulação do banco de dados e da API do projeto. Como modificadores de dados, utilizamos UUID para gerar id's únicos no padrão universal e Bcryptjs para hashear as senhas cadastradas no banco de dados. Utilizamos o MySQL como escolha para o banco de dados, por permitir uma boa agilidade em uma aplicação simples com tabelas relacionais. O deploy, tanto da database quanto do servidor, foi feito usando o Heroku - pelo deploy ser baseado em Git, é bem simples de ser implementado e possibilita manutenção com rapidez e segurança. Assim, as escolhas de tecnologia foram baseadas em performance, agilidade e segurança, nos possibilitando atingir um bom equilíbrio e relacionamento entre as stacks escolhidas.
- Leo Rigotto - Front-End - (Github, Linkedin)
- Luiz Pombo - Front-End - (Github, Linkedin)
- Lucas Pasche - Back-End - (Github, Linkedin)
- João Marcos Maracaipe - UX/UI design JR - (Behance, Linkedin)
- Jocieli Araújo - UX JR - (Medium, Linkedin)
- Sandy Lima - UX/UI design JR - (Medium, Notion, Linkedin)
- Mariana Andrade - Linkedin