Para acessar a aplicação, clique Aqui 🚀.
- 1. Sobre o Projeto
- 2. Sobre o Tema
- 3. Experiência dos Usuários
- 4. Layout
- 5. Objetivos de Aprendizagem
- 6. Começando o Projeto
- 7. Melhorias Futuras
- 8. Autoras
O projeto SOCIAL NETWORK, foi criado dentro do bootcamp da Laboratória, com o intuito de estudarmos e colocarmos em prática o conteúdo do objetivos de aprendizagem. O tema do projeto era livre e o escolhido foi: MEMES, Séries e Você.
Instagram, Snapchat, Twitter, Facebook, Twitch, Linkedin, etc. As redes sociais invadiram nossas vidas. Nós as amamos ou odiamos, e muitas pessoas não conseguem viver sem elas.
Há redes sociais de todo tipo para todos os tipos de interesse. Por exemplo: em uma rodada de financiamento com investidores, foi apresentada uma rede social para químicos onde os usuários podem publicar artigos a respeito de suas pesquisas, comentar os artigos de seus colegas e filtrar artigos de acordo com determinadas tags ou popularidade, mais recente ou mais comentado.
O projeto foi desenvolvido para os fãs de séries e memes em geral. A idéia era desenvolver uma página web simples e objetiva, onde o usuário conseguisse postar memes de acordo com a série de sua escolha e que pudesse, curtir, editar e deletar um post.
Além disso, o usuárico consegue mudr sua foto de perfil e postar com imagens.
O projeto foi desenvolvido utilizando apenas vanilla JavaScript, HTML5, CSS3 e Firebase e foi realizado em 6 semanas.
Utilizamos o FORMS para criar um formulário onde questionamos quais redes sociais o usuáio gostaria de se cadastrar, qual a paleta de cores o mais gradava, qual a sua faixa etária e qual o tempo médio que ele gastava utilizando a rede social no seu dia-a-dia.
- Curtir e Remover curtida;
- Página de Perfil;
- Deletar Post;
- Editar Post;
- Comentar Post;
- Postar com imagens;
- Salvar imagens/posts.
❶ "Gostaria de acessar o site e lá ter um campo para login e senha simples, que me permita logar com a conta do Google ou com uma outra conta! Caso eu não tenha um cadastro, quero que me ofereça um campo pra poder fazer o cadastro e se possível um campo para recuperação de senha."
Assim que o usuário entra no site, ele consegue se cadastrar, efetuar o login ou rcuperar a senha de uma conta existente. O site também é responsivo, o usuário poderá navegar por Celular e Tablet.
Ter a SPA pronta, página de login, cadastro, recuperação e feed prontas
❷ "Gostaria que quando fizesse o login fosse direcionado para a página do feed. Nessa página, gostaria que tivesse um campo para publicar posts com imagens/textos e um campo para digitar/ler os comentários, e que eu possa curtir e deletar os posts.".
Ao entrar na aplicação por um login, o usuário tem acesso á página de feed, onde consegue curtir, descurtir, editar e deletar o post. Além de um menu que o leva para a página de Profile ou para Sair do App. Ao entrar com um novo cadastro, ele é redirecionado para a página de Profile, onde consegue editar o nove e sua foto de perfil.
Ter toda a página de login, cadastro, recuperação de senha pronta e funcionando e ter a página do feed pronta.
As cores do layout foram pensados no conforto dos usuários ao utilizar a aplicação.
Fizemos um fluxograma para verificar quais seriam os passos do usuários, desde quando entra no site pela primeira vez até quando ele irá sair da aplicação.
Os protótipos foram pensandos para facilitar a navegação e em trazer uma resposta rápida na busca por informações, já que o usuário poderá assistir a série e buscar por informações simultâneamente.
- HTML semântico
- CSS flexbox
- Manipulação do DOM
- History API
- localStorage
- Uso de callbacks
- Consumo de Promises
- Uso de ES modules (import | export)
- Firestore
- Firebase Auth
- Firebase security rules
- Uso de onSnapshot | onAuthStateChanged
- Colaboração pelo Github
- Organização pelo Github
- Modularização
- Nomenclatura / Semântica
- Linting
- Ser uma SPA.
- Ser responsivo.
- Mobile First
- Teste unitários
- Testes assíncronos
- Mocking
Antes de tudo, precisa verificar se o CMDER, NODE e GIT estão instalados em seu computador. Para instalar e executar a aplicação:
- Faça o fork do repositório no GitHub para salvar os arquivos;
- Utilize um editor de texto como Atom ou Visual Studio Code;
- Configure o GIT pelo terminal com o nome e e-mail;
- Coloque no terminal
npm install
para instalar as dependências; - Coloque no terminal
npm start
para gerar um localhost. - Depois de instalar o repositório e suas dependências em seu computador, crie uma nova Branch com cada função que irá trabalhar utilizando:
git switch -b nomeDaBranch
(cria e entra direto na branch)
- Sempre que atualizar um arquivo faça um Commit para o GitHub:
1. git add nomeDaPasta/nomeDoArquivo.extensão
**OU** git add . (para adicionar todo o conteúdo)
2. git commit -m "nome da atualização"
3. git push origin nomeDaBranch
- Para executar os testes de ESLINT, digite no terminal:
npm run pretest
- Para executar testes de unidade, digite no terminal:
npm run test
- Quando terminar o projeto, faça um Deploy no próprio terminal utilizando:
npm run deploy.
Inicie um novo projeto no Firebase:
- Adicionar projeto
- Insira o nome do seu projeto e clique em
Continuar
- Clicar em
Criar projeto
Adicionar as colaboradoras ao projeto Firebase
- No Dashboard do projeto criado, há no menu lateral uma engrenagem em
Visão geral do projeto
, selecionarUsuários e permissões
para adicionar suas colegas como membro no projeto
Adicionar o Firebase ao seu aplicativo
- Adicione um Web app para começar
- Registre o
Apelido do app
- Selecione para
Também configure o Firebase Hosting para este app
Registrar app
Adicionar o SDK do Firebase
no o arquivosrc/index.html
do projeto
Este projeto está configurado para rodar por meio do servidor do Firebase. Para isso, será necessário possuir o Firebase CLI instalado globalmente em sua máquina. Utilize o comando a seguir no seu terminal:
npm install -g firebase-tools
Verifique se foi instalado corretamente, realizando o login:
firebase login
O login é feito por meio de uma conta Google, portanto, deve abrir uma janela em um navegador automaticamente para realizar o login. Se não abrir, pode clicar no link que vai aparecer no terminal.
IMPORTANTE rodar todos comandos do Firebase a seguir no terminal a partir da pasta raiz do projeto.
- Executar o comando para realizar o login
firebase login
- Executar o comando para iniciar o setup do projeto
firebase init
- Selecionar Hosting (aperte
Espaço
do teclado para selecionar essa opção e depoisEnter
) - Selecionar
Use an existing project
. No terminal vai aparecer o nome do projeto que você acabou de criar no site do Firebase Console, selecionar e darEnter
- Escrever
src
para definir comopublic directory
- Escrever
y
para selecionar como SPA (Single Page Application) - Escrever
N
para não fazer builds e deploys automáticos com GitHub - O Firebase vai dizer que
src/index.html
já existe e pergunta se quer sobrescrever. Sugerimos darN
, para não sobrescrever oindex.html
- Se der tudo certo, o Firebase vai criar o arquivo
.firebaserc
de configuração na pasta do projeto e estamos prontas pra continuar - Faça o
commit
com a adição dessa configuração para o repositório do seu grupo. Dessa forma, todas terão acesso às configurações do Firebase
Após atualização de seu repositório contendo a configuração inicial do projeto Firebase, você deve abrir o terminal na raiz do projeto para rodar o comando de instalação de dependências:
npm i
E para rodar o projeto, use o comando:
npm start
No Firebase, adicionar Firestore Database ao projeto Firebase.
- Clique no menu lateral
Firestore Database
e emCriar banco de dados
- Selecionar
Iniciar no modo de produção
, clicar emAvançar
- Escolher a região
us-east1
e clicar emAtivar
- Na tela de
Cloud Firestore
, ir na aba deRegras
e editar paratrue
ePublicar
rules_version = ‘2’; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }
- Função de Comentar;
- Filtragem/Busca de posts;
- Compartilhar posts;
- Adicionar ou Remover amigos.
- Salvar/Baixar imagens.
Projeto realizado para o Bootcamp da LABORATÓRIA.