Code Monkey home page Code Monkey logo

4eddit-sagan-2's Introduction

Em andamento: http://4eddit-sagan2.surge.sh/

Exercício da Semana:

Essa semana, vocês irão implementar uma rede social! Já fizemos vários protótipos de redes sociais, mas nenhuma delas realmente funcional. A ideia agora é fazer uma rede real, com cadastro, login, posts, likes e comentários. Para isso, iremos nos basear no reddit.com.

A rede social terá 4 páginas:

Página de login

1

A página de login possui dois campos de texto: email e senha. O comportamento será o mesmo da página de login feita semana passada. Ao fazer o login, o usuário deverá ser redirecionado para a página de feed.

A página possui também um botão "Cadastrar", que leva o usuário para a página de cadastro.

Página de cadastro

2

A página de cadastro possui 3 campos: nome de usuário, email e senha. O endpoint de cadastro retornará as mesmas informações do endpoint de login. Portanto, após cadastrar, o usuário deverá ser redirecionado para a página de feed, já estando logado (ou seja, com o token salvo no LocalStorage).

Página de feed (lista de posts)

3

A página de feed deverá mostrar todos os posts, além de um formulário para a criação de post. O formulário possui apenas o campo de texto. Cada post mostrará o nome de usuário que postou, o texto do post, o número de votos (positivo ou negativo) e o número de comentários. Caso o usuário tenha votado positiva ou negativamente, isso deverá estar indicado. Todas essa informações serão fornecidas pela API.

Quando o usuário clicar em um post, ele deverá ser redirecionado para a página do respectivo post.

Quando um usuário clicar em votar (positiva ou negativamente), uma requisição deverá ser feita indicando a "direção" do voto. Um voto positivo é indicado com o número 1. Um voto negativo é indicado com o número -1. Para remover um voto, a direção deve ser 0.

Essa página só pode ser acessada por um usuário logado. Caso o usuário não esteja logado, deverá ser redirecionado para a página de login.

Página de post

4

A página de um post mostrará o mesmo card de post da página de feed, com o usuário, texto, curtidas e número de comentários. Abaixo, terá um formulário para criação de comentários e os cards de comentários. A estrutura é muito similar à do post, mas comentários não possuem outros comentários dentro deles. A lógica de votos é a mesma do post.

Essa página só pode ser acessada por um usuário logado. Caso o usuário não esteja logado, deverá ser redirecionado para a página de login.

4eddit-sagan-2's People

Contributors

educosta85 avatar soter19 avatar thalesmilanezi avatar

Watchers

 avatar  avatar  avatar  avatar

4eddit-sagan-2's Issues

Loading nas paginas com dados externos

Implementar loading em todas as páginas que esperam dados da API (lista de posts, detalhe de post, criação de post)

  • Feed
  • Signup
  • Login
  • Create post
  • Create Comment
  • Vote post
  • Vote Comment
  • Get posts
  • Get posts detail

Feed page

Componente de feed funcional (seguro)

A página de feed deverá mostrar todos os posts,
além de um formulário para a criação de post.

  • Carregar componente conteiner de posts
  • Carregar componente de criação de post
  • Pagina segura (atuh por token)
  • Layout

Componente de votos - Comentarios

Quando um usuário clicar em votar (positiva ou negativamente), uma requisição deverá ser feita indicando a "direção" do voto:
Um voto positivo é indicado com o número 1.
Um voto negativo é indicado com o número -1.
Para remover um voto, a direção deve ser 0.

  • Logica de votação com inversão
  • Comunicação com API (Comment Vote)
  • Layout

Componente de posts

Componente container de posts

Cada post mostrará o nome de usuário que postou, o texto do post, o número de votos (positivo ou negativo) e o número de comentários. Caso o usuário tenha votado positiva ou negativamente, isso deverá estar indicado. Todas essa informações serão fornecidas pela API.
Quando o usuário clicar em um post, ele deverá ser redirecionado para a página do respectivo post.

  • Carregar dados da api para o State redux
  • Envio ao detalhe de post
  • Mostra a direção do voto do usuario atual nesse post (se votou)
  • Layout

Converter e calcular hora

Recebe em UTC da API, calcular a diferença e converter.

  • Criar a logica de conversão
  • atualizar componentes

Componente de votos - post

Quando um usuário clicar em votar (positiva ou negativamente), uma requisição deverá ser feita indicando a "direção" do voto:
Um voto positivo é indicado com o número 1.
Um voto negativo é indicado com o número -1.
Para remover um voto, a direção deve ser 0.

  • Logica de votação com inversão
  • Comunicação com API (Post Vote)
  • Layout

User data

Colocar os dados do usuario do localstorage para mostrar no appbar

Post details page

Componente detalhamento post

A página de um post mostrará o mesmo card de post da página de feed, com o usuário, texto, curtidas e número de comentários.
Abaixo, terá um formulário para criação de comentários e os cards de comentários.

  • Carregar detalhes do post (comunicação com API e STATE Redux)
  • Carregar componente de voto no post
  • Carregar componente de criação de comentario
  • Carregar componente de mostra comentarios do post
  • Carregar componente de voto no comentario
  • Pagina segura (token)
  • Layout

Responsividade do site

Garantir responsividade em todas as páginas, usar media queries, comparar a como o Reddit de verdade se comporta. Fazer deploy no surge e usar os celulares de verdade para testar as páginas.

  • Pagina de feed
  • Pagina de detalhes
  • Pagina de login

Componente de comentario

Componente de adicao de comentario

O formulário possui apenas o campo de texto

  • Comunicação com API
  • Layout

Signup page

Pagina de cadastro comunicando com a API

A página de cadastro possui 3 campos: nome de usuário, email e senha.

  • Comunicação com API
  • Salvar Token localstorage
  • Salvar Userdata no localstorage
  • Redirecionar para o feed
  • Layout

Componente Header

Colocar um cabeçalho para permitir interações com usuario

  • Modificar App para mostrar o componente Header
  • Implementar funcionalidade de logout
  • Mostrar dados do localstorage do user
  • Layout

Login page

Tela de login de usuario

A página de login possui dois campos de texto: email e senha

  • Comunicação com API
  • Salvar Token localstorage
  • Salvar Userdata no localstorage
  • Redirecionar para o feed
  • Botão de cadastro (encaminha ao signup page)
  • Layout

Compartilhar post

  • Implementar funcionalidade de "Compartilhar", que permite mandar o post para outra rede social.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.