Electroware é um projeto pessoal baseado em um marketplace, criado com ReactJS, Typescript, Express e MongoDB. Também utilizei UML para tentar estruturar a relação entre dados e objetos o máximo possível e Insomnia para testar os endpoints.
O projeto iniciou-se em um único repositório, mas decidi separar em submodulos para ter maior controle sobre versões diferentes da API e do client, bem como a integração da aplicação como um todo com diferentes ferramentas.
Ao instalar todas as depêndencias, você pode subir containers da API e client com o docker compose!
Backend foi implementado seguindo a arquitetura REST, utilizando uma biblioteca ODM (Mongoose) para realizar a interação no banco de dados.
Provavelmente é o projeto que mais venho me dedicando. Nele, tentei reunir recursos comuns os quais um e-commerce possui: criação de contas, anúncios de produtos, histórico de compras, lista de desejos, carrinhos de compras, descontos, etc.
- Creio que devido a sua complexidade, esse projeto irá se tornar bem interessante para refatorar, portanto, pretendo manter e atualiza-lo de acordo com a experiência que eu obter no futuro.
- Alguma sugestão de melhoria, erro notado, ou ideias, por favor, abra um issue.
1 - Clone o repositório:
git clone https://github.com/luc-silva/electroware --recursive
2 - Vá para a pasta do projeto:
cd electroware
3 - Baixe as dependências do server e client:
cd ./client-react; npm install && cd .. && cd ./API-typescript; npm install
4 - Inicialize os containers e aguarde:
sudo docker compose up -d
5 - Abra a página localhost de sua máquina na porta 3000.
1 - Clone o repositório:
git clone https://github.com/luc-silva/electroware --recursive
2 - Vá para a pasta do projeto:
cd electroware
3 - Baixe as dependências do server e client:
cd ./client-react; npm install && cd .. && cd ./API-typescript; npm install
3.1 - Caso falhe, talvez a flag recursive não tenha sido usado ao clonar o repositório. nesse caso, utilize esse comando dentro do repositório principal:
git submodule init && git submodule update
4 - Inicialize o servidor client e a API
npm start
5 - Inicie a API
npm run server
6 - Abra um novo terminal e inicie o client
npm run client
Após os passos, o website deve abrir em seu navegador padrão. Dúvidas, entre em contato através do LinkedIn ou abra um issue.
- Refatorar.
- Criar feature de compartilhamento de coleções.
- Terminar de documentar a API.
- Fazer deploy no amazon AWS.
- Criar testes unitários/integração.
- Criar uma versão em Java da API.