Este é um repositório focado em aprofundar os estudos em Node.JS, e nele desenvolvemos uma plataforma de perguntas e respostas(estilo Yahoo e ask.fm) responsiva incluindo algumas funcionalidades a mais, como o dark mode, onde o usuário pode optar por qual tema deseja. Este projeto foi criado com base no protótipo da Formação NodeJS, proporcionada pelo Victor Lima, do canal Guia do Programador.
Light Mode(default)
Dark Mode
Telas mobile
Basicamente, o foco do projeto foi no back-end, buscando entender melhor os conceitos do Node.JS, na aplicação algumas implementações diferentes foram feitas, além do protótipo original desenvolvido na Formação NodeJS, e trabalhando com as bibliotecas do Express, foi possível adquirir muito conhecimento. Para a conexão com o banco de dados utilizamos o ORM Sequelize, que possibilita que os devs que não possuem muito conhecimento da sintaxe SQL possam trabalhar com Banco de dados sem problemas, visto que o Sequelize utiliza a linguagem javascript para se comunicar. Além disso, houveram algumas outras implementações, que tornaram o projeto exclusivo, e uma versão melhorada do protótipo original, cujas foram:
- Dark mode: Via Javascript, é possível o usuário escolher o tema que deseja(light ou dark), após a escolha, através do localStorage é armazenado a sua preferência, para que ao recarregar ou ir para outras páginas, sua escolha se mantenha salva.
- Express Router: No protótipo original, todas as rotas estavam organizadas no arquivo js raiz(index.js), o que torna o código poluido de certa forma. Através do Express Router, foi configurado no diretório router, uma parte exclusivamente para tratar as rotas do projeto.
- Verificação de campos de formulário: No protótipo original, não existia a validação dos campos de formulário, logo o usuário conseguia enviar sua pergunta sem nenhum campo preenchido, isso foi resolvido com o atributo
required
dentro dos inputs. - Estilização personalizada: Buscando obter um projeto exclusivo, foi feita uma estilização das páginas de forma personalizada, com cores diferentes do projeto original.
- Inserir username do GitHub na pergunta e resposta: Para tornar as perguntas e respostas mais amigáveis, foi inserido o campo de username do github(não opcional), logo, se o usuário preencher o campo com um username válido, sua foto é carregada, caso contrário é carregado uma imagem default.
Este é um respositório público, logo você está livre para ter uma cópia do projeto, e se achar algum problema ou tiver alguma contribuição, pode fazer um fork do projeto, e sinta-se a vontade para fazer um pull request.
Para rodar a aplicação, você precisará:
- Ajustar o arquivo
database.js
de acordo com o seu banco de dados. - Importar as bibliotecas e dependências com
npm install
na pasta do projeto. - É recomendado ter o nodemon instalado na sua máquina, caso não tenha, pode instalar globalmente com
npm install -g nodemon
e rodar o arquivo index.js para iniciar o servidor express com o comandonodemon index.js
na pasta raiz do projeto. (Caso não tenha basta executarnode index.js
, mas caso você faça alterações terá que reiniciar o servidor novamente).
Feito com 💙 e ☕ por Victor Souza