Este é um projeto que combina o backend em PHP utilizando o framework Laravel e o frontend em React, usando também o banco de dados MySQL. O projeto foi desenvolvido com o objetivo de concluir o desafio da G1learn.
Todo o app está conteinerizado com o Docker 🐋!
Todas as informações, como posts criados, comentários e usuários registrados serão guardados no banco de dados.
Antes de começar a usar o projeto, é necessário configurar o ambiente de desenvolvimento. Siga as etapas abaixo para configurar o ambiente necessário. (É bem rapidinho)
exemplo: git clone [email protected]:duarte-dot/g1learn-fullstack.git
modifique o arquivo env.example pasta backend/env.example para ".env" (o arquivo deve ficar assim):
rode os comandos:
cd frontend && npm i && cd ..
- instala as dependências do frontend
cd backend && composer i && cd ..
- instala as dependências do backend
na pasta do projeto, abra um terminal e utilize o comando docker-compose up -d
utilize o comando php artisan migrate && php artisan db:seed
caso ele peça permissão, conceda provavelmente digitando "yes" no terminal.
ele rodará os dois comandos à seguir, juntos, e isso nos permitirá preencher nosso banco de dados com alguns dados fictícios:
se você seguiu todas as etapas corretamente, poderá acessar o projeto através da rota http://localhost:3000/
Foi criada uma API para integração com o Frontend com os seguintes Controllers:
O Frontend foi desenvolvido em React com a seguinte estrutura:
Você pode tentar acessar as rotas via algum aplicativo de requisição. Há também a extensão ThunderClient do VSCode, mas eu recomendo o Insomnia:
Pretendo continuar trabalhando no projeto e adicionando mais features. Se você tem alguma sugestão, Não deixe de me informar! (Ou, fique à vontade para contribuir e adicionar)
Celular / Whatsapp: (21) 9 7568-1618
Email: [email protected]
Linkedin: https://www.linkedin.com/in/gabriel-duarte-dev/
Features que ainda estou pensando em adicionar:
- Criação de categorias através do Front-End. (Já é possível através das rotas com requisições)
- Fotos de perfil para os usuários
- Testes unitários