Tutorial

Siga Seu Atleta | App fullstack com Next.js

Nível
35 aulas
4h28

Assistir agora

1. Introdução

Sobre o Tutorial

Esse tutorial mostra o passo-a-passo para resolver o Mini Projeto Siga Seu Atleta | App fullstack com Next.js.

Descrição do projeto

Nesse projeto vamos criar uma aplicação para dar visibilidade para os atletas paralímpicos e olímpicos do Brasil. A ideia é listar todos os atletas e suas contas do Instagram, filtrando por modalidades.

🤓 Antes de começar

Para essa aplicação, vamos usar dados reais dos atletas brasileiros. Esses dados foram coletados pelo time do Codante e estão disponíveis pra você em um arquivo .sql. Recomendamos que você utilize SQLite para a sua base de dados. Você pode utilizar o plano gratuito do TursoDB para isso.

🔨 Requisitos

Crie uma Navbar

  • Exibir a logo do projeto
  • Exibir um link "Sobre"
    • Ao clicar nesse link, um modal deve ser aberto contendo um texto que descreve o projeto.

Liste todos os atletas

  • Ao entrar na página principal, uma lista dos atletas devem ser exibida.
    • Essa lista deve estar paginada com infinite scroll. Ou seja, quando o usuário rolar até o final da página, mais atletas devem ser carregados automaticamente até que todos os atletas sejam exibidos.
    • A lista deve vir ordenada do atleta com mais seguidores para o atleta com menos seguidores (os mais famosos antes)
  • Para cada atleta, exiba seu nome, número de seguidores, esporte, descrição, conta do Instagram e um link que redireciona para a página do Instagram
    • O número de seguidores deve ser exibido no formato do Instagram.
      • Números entre 1 e 999 são exibidos normalmente;
      • Números entre 1000 e 9999 contêm uma vírgula, depois do milhar. Por ex: 9,345
      • Números entre 10000 e 999999 são abreviados com k. Por ex: 345k
      • Números acima de 1 milhão são abreviados com M. Por ex: 12M

Implemente os filtros

  • O usuário poderá pesquisar por texto pelo nome ou descrição dos atletas.
  • O usuário poderá filtrar pela categoria do atleta: olímpico, paralímpico ou todos, sendo o padrão todos.
  • O usuário poderá filtrar por um esporte dentro da lista de esportes disponíveis. Ao selecionar um esporte, apenas os praticantes daquela modalidade deverão ser exibidos.
    • Permita que o usuário digite o nome de um esporte para filtrar a lista de esportes disponíveis.. Por ex: se ele digitar "gin" exiba "ginástica artística" e "ginástica rítmica".
    • Exiba os pictogramas (logos) de cada esporte. Você pode consegui-los usando a API das olimpíadas do Codante.

Implemente a ordenação

  • Por padrão os usuários deverão ver os atletas do mais seguido para o menos seguido.
  • Permita que o usuário troque a ordenação entre: seguidores, nome e esporte.
  • Permita que o usuário altere a direção da ordenação entre: ascendente (do menor para o maior) e descendente (do maior para o menor). Por exemplo, a ordenação por seguidores pode começar com o atleta menos seguido (ascendente) ou com o mais seguido (descendente).

🎨 Design Sugerido

Temos uma sugestão de design no Figma. Entretanto, fique à vontade para montar a aplicação conforme a sua criatividade.

O design sugerido no Figma contém layouts básicos para a aplicação, incluindo a página inicial com a lista de atletas, filtros e a barra de navegação.

Figma

🔗 Link do design

👉🏽 Sobre esse mini-projeto

O que você irá praticar:

Sugerimos que você faça esse projeto com Next.js e SQLite para o back-end.

Para conectar o SQLite com o Next, sugerimos o uso do Prisma.

Para os componentes, sugerimos o uso do shadcn/ui.

Next.js

  • Pages, layout, server components e server actions
  • Paginação, busca e filtros
  • Componentes com shadcn/ui
  • Infinite scroll (scroll infinito)

Prisma e SQLite

  • TursoDB
  • Criação de tabelas relacionais
  • Implementação de filtros

Pré requisitos

É interessante que você saiba Javascript, React e o básico do Next para fazer esse projeto.

Seu Instrutor

Ícaro Harry

Codante.io

Materiais

Aulas

  1. Introdução
  2. 1.

    Introdução

    01:16
  3. 2.

    Como Participar do Projeto no Codante

    04:32
  4. 3.

    Revisão do Projeto em Detalhes

    11:05
  5. Setup do projeto
  6. 4.

    Configurando Next.js e shadcn/ui

    09:38
  7. 5.

    Configurando Backend com TursoDB

    20:45
  8. Nosso primeiro componente
  9. 6.

    Desenvolvendo Navbar e About

    11:42
  10. Listando os atletas
  11. 7.

    Carregando Dados dos Atletas

    15:45
  12. Criando o card dos atletas
  13. 8.

    Criando o AthleteCard

    02:08
  14. 9.

    Desenvolvendo o AthleteCard

    13:26
  15. 10.

    Formatando Contagem de Seguidores

    06:18
  16. 11.

    Otimizando Cards com Tailwind

    03:22
  17. 12.

    Finalizando o Footer e Redes Sociais

    07:39
  18. 13.

    Estilização de Cards Finalizada

    04:01
  19. 14.

    Efeito Granulado no Card

    06:31
  20. Scroll infinito
  21. 15.

    Scroll Infinito na Aplicação

    06:31
  22. 16.

    Carregamento Dinâmico de Atletas

    06:27
  23. 17.

    Scroll Infinito com React

    09:03
  24. Filtro de busca
  25. 18.

    Implementando Filtros de Busca

    03:34
  26. 19.

    Filtros e Busca Personalizados

    06:08
  27. 20.

    Busca Eficiente com URL Dinâmica

    10:58
  28. 21.

    Filtro de Texto Implementado

    06:04
  29. Filtro de categoria
  30. 22.

    Filtro de Categoria Implementado

    03:29
  31. 23.

    Filtro de Categorias para Desktop

    10:07
  32. 24.

    Atualizando URLs e Integrando Backend

    04:58
  33. 25.

    Filtros de Categorias Implementados

    03:21
  34. Filtro de esportes
  35. 26.

    Filtragem de Atletas e Buscas

    02:19
  36. 27.

    Filtro de Esportes no Front-End

    26:02
  37. 28.

    Filtro por Esportes Implementado

    05:29
  38. 29.

    Filtros e Ordenação de Atletas

    02:10
  39. Ordenação
  40. 30.

    Ordenação de Atletas

    07:23
  41. 31.

    Componente de Ordenação

    07:16
  42. 32.

    Ordenação e Estilos Atualizados

    07:43
  43. Responsividade
  44. 33.

    Integração e Responsividade Móvel

    03:46
  45. 34.

    Responsividade na Aplicação Mobile

    13:56
  46. Deploy
  47. 35.

    Deploy da Aplicação de Atletas

    03:58