Dojo front-end: projetos para treinar habilidades de desenvolvedor (5 novos + 43 antigos)
1. Клон Notion
Приложение Notion полюбилось многим, оно позволяет оптимизировать рабочий процесс, работать с документами, планировать задачи, синхронизировать данные между устройствами.
Repl.it -это инструмент для совместного редактирования кода в реальном времени. Можно выбрать несколько языков: JavaScript, Python, Go и выполнять код прямо в браузере. Очень полезно для быстрых демонстраций и код-интервью.
Как запускать и выполнять код (server-side) в браузере (client-side).
Считывать входные данные (исходный код) и выводить на экран результат выполнения.
Как создавать файлы и папки в вебе и сохранять результаты.
Как подсвечивать синтаксис кода.
3. Клон Google Photos
Google Photos это сервис для хранения и обмена фоток.
Любое современное приложение по работе с фотографиями умеет выполнять базовые функции: загружать, обрезать и пр. Люди хотят создавать свои аватарки и делиться фотками котиков, поэтому надо уметь работать с изображениями.
Как создавать адаптивные изображения на телефонах, планшетах, ноутбуках и даже на гигантских экранах телевизоров.
Как обрабатывать загрузку изображений, особенно больших изображений (>1МБ) и массовых загрузок.
Обработка файлов изображений, обрезка и изменение размера фотографий для миниатюр или при открытии галереи.
Bonus: как хранить изображения в облаке или локальной базе данных.
4. Клон Gifsky
gifski конвертирует видео в GIF используя функцииpngquant для эффективных палитр кросс-кадров и временного сглаживания. В результате получается гифка с тысячами цветов на кадр.
Layer é uma comunidade onde todos podem desenhar um pixel em um “quadro” compartilhado. A ideia original nasceu no Reddit. A comunidade r/Layer é uma metáfora para a criatividade compartilhada, onde todos podem ser criadores e contribuir para uma causa comum.
O que você aprenderá ao criar seu próprio projeto Layer:
Como funciona o canvas JavaScript Saber como operar um canvas é uma habilidade crítica em muitas aplicações.
Como coordenar as permissões do usuário. Cada usuário pode desenhar um pixel a cada 15 minutos sem precisar fazer login.
Squoosh é um aplicativo de compactação de imagens com muitas opções avançadas.
GIF 20MB
Ao criar sua própria versão do Squoosh você aprenderá:
Como trabalhar com tamanhos de imagem
Aprenda os fundamentos da API Drag'n'Drop
Entenda como funcionam a API e os ouvintes de eventos
Como fazer upload e exportar arquivos
Nota: O compressor de imagem é local. Não é necessário enviar dados adicionais ao servidor. Você pode ter o compressor em casa ou usá-lo em um servidor, à sua escolha.
Калькулятор
Vamos? Seriamente? Calculadora? Sim, exatamente, uma calculadora. Compreender os conceitos básicos das operações matemáticas e como elas funcionam juntas é uma habilidade crítica para simplificar suas aplicações. Mais cedo ou mais tarde você terá que lidar com números e quanto mais cedo melhor.
Todo mundo já usou um mecanismo de busca, então por que não criar o seu próprio? Os rastreadores são necessários para pesquisar informações. Todos os utilizam todos os dias e a procura por esta tecnologia e especialistas só aumentará com o tempo.
Motor de busca Google
O que você aprenderá criando seu próprio mecanismo de pesquisa:
Como funcionam os rastreadores
Como indexar sites e como classificá-los por classificação e reputação
Como armazenar sites indexados em um banco de dados e como trabalhar com o banco de dados
Leitor de música (Spotify, Apple Music)
Todo mundo ouve música – é simplesmente parte integrante de nossas vidas. Vamos criar um reprodutor de música para entender melhor como funciona a mecânica básica de uma plataforma moderna de streaming de música.
Spotify
O que você aprenderá ao criar sua própria plataforma de streaming de música:
Como trabalhar com a API. use API do Spotify ou Apple Music
Como reproduzir, pausar ou retroceder para a faixa seguinte/anterior
Como alterar o volume
Como gerenciar o roteamento do usuário e o histórico do navegador
Aplicativo de pesquisa de filmes usando React (com ganchos)
A primeira coisa que você pode fazer é criar um aplicativo de busca de filmes usando React. Abaixo está uma imagem de como ficará a aplicação final:
O que você vai aprender
Ao construir este aplicativo, você melhorará suas habilidades de React usando a API Hooks relativamente nova. O projeto de exemplo usa componentes React, muitos ganchos, uma API externa e, claro, alguns estilos CSS.
Pilha de tecnologia e recursos
Reaja com ganchos
criar-reagir-app
Jsx
APF
Sem usar nenhuma classe, esses projetos oferecem o ponto de entrada perfeito para o React funcional e certamente irão ajudá-lo em 2020. você pode encontrar exemplo de projeto aqui. Siga as instruções ou faça você mesmo.
Aplicativo de bate-papo com Vue
Outro ótimo projeto para você fazer é criar um aplicativo de chat usando minha biblioteca JavaScript favorita: VueJS. O aplicativo ficará mais ou menos assim:
O que você vai aprender
Neste tutorial, você aprenderá como fazer um aplicativo Vue do zero - criando componentes, manipulando estado, criando rotas, conectando-se a serviços de terceiros e até mesmo lidando com autenticação.
Pilha de tecnologia e recursos
vista
vuex
Roteador Vue
Vista CLI
Impulsor
APF
Este é um projeto realmente ótimo para começar com o Vue ou melhorar suas habilidades existentes para entrar no desenvolvimento em 2020. você pode encontrar tutorial aqui.
Aplicativo de clima bonito com Angular 8
Este exemplo irá ajudá-lo a criar um belo aplicativo de clima usando Angular 8:
O que você vai aprender
Este projeto ensinará habilidades valiosas na construção de aplicativos do zero - desde o design até o desenvolvimento, até um aplicativo pronto para implantação.
Pilha de tecnologia e recursos
Angular8
Firebase
Renderização do lado do servidor
CSS com Grid e Flexbox
Compatível com dispositivos móveis e adaptabilidade
Modo escuro
Interface bonita
O que eu realmente adoro neste projeto abrangente é que você não estuda as coisas isoladamente. Em vez disso, você aprende todo o processo de desenvolvimento, desde o design até a implantação final.
Aplicativo de tarefas pendentes usando Svelte
Svelte é como o novato na abordagem baseada em componentes - pelo menos semelhante a React, Vue e Angular. E este é um dos novos produtos mais quentes para 2020.
Os aplicativos de tarefas não são necessariamente o tópico mais popular, mas realmente ajudarão você a aprimorar suas habilidades no Svelte. Isso parecerá assim:
O que você vai aprender
Este tutorial mostrará como criar um aplicativo usando Svelte 3, do início ao fim. Você usará componentes, estilos e manipuladores de eventos
Next.js é a estrutura mais popular para construir aplicativos React que suportam renderização no lado do servidor pronta para uso.
Este projeto mostrará como criar um aplicativo de comércio eletrônico semelhante a este:
O que você vai aprender
Neste projeto, você aprenderá como desenvolver com Next.js – criar novas páginas e componentes, extrair dados, estilizar e implantar um aplicativo Next.
Pilha de tecnologia e recursos
Próximo.js
Componentes e páginas
Amostragem de dados
Styling
Implantação do Projeto
RSS e SPA
É sempre bom ter um exemplo real, como um aplicativo de comércio eletrônico, para aprender algo novo. Você pode encontre o tutorial aqui.
Blog multilíngue completo com Nuxt.js
Nuxt.js é para Vue, o que Next.js é para React: uma ótima estrutura para combinar o poder da renderização do lado do servidor e aplicativos de página única
O aplicativo final que você pode criar ficará assim:
O que você vai aprender
Neste projeto de exemplo, você aprenderá como criar um site completo usando Nuxt.js, desde a configuração inicial até a implantação final.
Ele aproveita muitos dos recursos interessantes que o Nuxt tem a oferecer, como páginas e componentes, e estilo com SCSS.
Pilha de tecnologia e recursos
Nuxt.js
Componentes e páginas
Módulo Storyblock
Peixe-bruxa
Vuex para gestão estadual
SCSS para estilo
Middlewares Nuxt
Este é um projeto muito legal, que inclui muitos recursos excelentes do Nuxt.js. Pessoalmente, adoro trabalhar com Nuxt, então você deveria tentar, pois também fará de você um ótimo desenvolvedor Vue.
Blog com Gatsby
Gatsby é um excelente gerador de sites estáticos usando React e GraphQL. Este é o resultado do projeto:
O que você vai aprender
Neste tutorial, você aprenderá como usar Gatsby para criar um blog que usará para escrever seus próprios artigos usando React e GraphQL.
Pilha de tecnologia e recursos
gatsby
Reagir
GraphQL
Plug-ins e temas
MDX/redução
CSS Bootstrap
templates
Se você sempre quis começar um blog, Este é um excelente exemplo sobre como fazer isso usando React e GraphQL.
Não estou dizendo que WordPress seja uma má escolha, mas com Gatsby você pode construir sites de alto desempenho usando React – o que é uma combinação incrível.
Blog com Gridsome
Gridsome para Vue... Ok, já tivemos isso com Next/Nuxt.
Mas o mesmo se aplica a Gridsome e Gatsby. Ambos usam GraphQL como camada de dados, mas Gridsome usa VueJS. Este também é um incrível gerador de sites estáticos que o ajudará a criar ótimos blogs:
O que você vai aprender
Este projeto vai te ensinar como criar um blog simples para começar a usar Gridsome, GraphQL e Markdown. Também aborda como implantar um aplicativo por meio do Netlify.
Reprodutor de áudio semelhante ao SoundCloud usando Quasar
Quasar é outra estrutura Vue que pode ser usada para criar aplicativos móveis. Neste projeto você criará um aplicativo reprodutor de áudio, por exemplo:
O que você vai aprender
Enquanto outros projetos se concentram principalmente em aplicações web, este mostrará como criar uma aplicação móvel usando Vue e a estrutura Quasar.
Você já deve ter o Cordova rodando com o Android Studio/Xcode configurado. Caso contrário, o manual traz um link para o site do Quasar, onde mostram como configurar tudo.
Pilha de tecnologia e recursos
Quasar
vista
Cordova
Onda Surfista
Componentes da IU
Projeto pequeno, demonstrando os recursos do Quasar para a criação de aplicativos móveis.
Форма кредитной карты
Um formato legal de cartão de crédito com microinterações suaves e divertidas. Inclui formatação de números, verificação e detecção automática de tipo de cartão. Ele é construído em Vue.js e também é totalmente responsivo. (Você pode ver aqui.)
Lidar com eventos (por exemplo, quando os campos mudam)
Entenda como exibir e colocar elementos na página, principalmente as informações do cartão de crédito que aparecem no topo do formulário
Gráfico de barras
Um histograma é um gráfico ou gráfico que representa dados categóricos com barras retangulares com alturas ou comprimentos proporcionais aos valores que representam.
Eles podem ser aplicados verticalmente ou horizontalmente. Um gráfico de barras verticais às vezes é chamado de gráfico de linhas.
O que você aprenderá:
Exiba dados de forma estruturada e compreensível
Além disso: Aprenda como usar o elemento canvas e como desenhar elementos com ele
é você pode encontrar dados da população mundial. Eles são classificados por ano.
Анимация сердечка Twitter
Em 2016, o Twitter introduziu esta animação incrível para seus tweets. Em 2019, ele ainda parece perfeito, então por que não criar um você mesmo?
O que você aprenderá:
Trabalhar com atributo CSS keyframes
Manipular e animar elementos HTML
Combine JavaScript, HTML e CSS
Репозитории GitHub с функцией поиска
Não há nada sofisticado aqui – os repositórios do GitHub são apenas uma lista glorificada.
O objetivo é exibir os repositórios e permitir ao usuário filtrá-los. Usar API oficial do GitHub para obter repositórios para cada usuário.
Os bate-papos são uma forma popular de comunicação devido à sua simplicidade e facilidade de uso. Mas o que realmente alimenta as salas de chat modernas? WebSockets!
O que você aprenderá:
Use WebSockets, comunicação em tempo real e atualizações de dados
Trabalhe com níveis de acesso do usuário (por exemplo, o proprietário de um canal de chat tem a função admin, e outros na sala - user)
Processar e validar formulários - lembre-se, a janela de chat para envio de mensagem é input
Crie e participe de diferentes chats
Trabalhe com mensagens pessoais. Os usuários podem conversar com outros usuários em particular. Essencialmente, você estabelecerá uma conexão WebSocket entre dois usuários.
Навигация в стиле Stripe
O que torna esta navegação única é que o contêiner popover se transforma para se ajustar ao conteúdo. Há uma elegância nesta transição em comparação com o comportamento tradicional de abrir e fechar um novo popover.
O que você aprenderá:
Combine animações CSS com transições
Escureça o conteúdo e aplique a classe ativa ao elemento flutuante
Pacman
Crie sua própria versão do Pacman. Esta é uma ótima maneira de ter uma ideia de como os jogos são desenvolvidos e entender o básico. Use uma estrutura JavaScript, React ou Vue.
Você vai aprender:
Como os elementos se movem
Como determinar quais teclas pressionar
Como determinar o momento da colisão
Você pode ir além e adicionar controles de movimento fantasma
Você encontrará um exemplo deste projeto no repositório GitHub
A criação de um aplicativo do tipo CRUD para administração de usuários ensinará os fundamentos do desenvolvimento. Isto é especialmente útil para novos desenvolvedores.
Você vai aprender:
O que é roteamento
Como lidar com formulários de entrada de dados e verificar o que o usuário inseriu
Como trabalhar com o banco de dados – criar, ler, atualizar e excluir ações
Se você deseja criar aplicativos, comece com um aplicativo de previsão do tempo. Este projeto pode ser concluído usando Swift.
Além de ganhar experiência na construção de um aplicativo, você aprenderá:
Como trabalhar com a API
Como usar a geolocalização
Torne seu aplicativo mais dinâmico adicionando entrada de texto. Nele, os usuários poderão inserir sua localização para verificar a previsão do tempo em um local específico.
Você precisará de uma API. Para obter dados meteorológicos, use a API OpenWeather. Mais informações sobre a API OpenWeather aqui.
Окно чата
Minha janela de bate-papo em ação, aberta em duas guias do navegador
Criar uma janela de bate-papo é a maneira perfeita de começar a usar soquetes. A escolha da pilha de tecnologia é enorme. Node.js, por exemplo, é perfeito.
Você aprenderá como os soquetes funcionam e como implementá-los. Esta é a principal vantagem deste projeto.
Se você é um desenvolvedor Laravel que deseja trabalhar com soquetes, leia meu статью
Se você é novo na integração contínua (CI), experimente o GitLab CI. Configure alguns ambientes e tente executar alguns testes. Não é um projeto muito difícil, mas tenho certeza que você aprenderá muito com ele. Muitas equipes de desenvolvimento agora estão usando CI. Saber como usá-lo é útil.
Você vai aprender:
O que é GitLab CI
Como configurar .gitlab-ci.ymlque informa ao usuário do GitLab o que fazer
Como implantar em outros ambientes
Анализатор сайтов
Faça um scraper que analise a semântica dos sites e crie sua classificação. Por exemplo, você pode verificar se há tags alt ausentes nas imagens. Ou verifique se a página possui meta tags SEO. Um raspador pode ser criado sem uma interface de usuário.
Você vai aprender:
Como funciona o raspador?
Como criar seletores DOM
Como escrever um algoritmo
Se você não quiser parar por aí, crie uma interface de usuário. Você também pode criar um relatório sobre cada site que verificar.
Tecnicamente, este não é um aplicativo, mas é uma tarefa muito útil para entender como o webpack funciona por dentro. Agora não será uma “caixa preta”, mas uma ferramenta compreensível.
Requisitos:
Compile es7 para es5 (básico).
Compile jsx para js - ou - .vue para .js (você terá que aprender carregadores)
Configure o servidor de desenvolvimento webpack e recarregando o módulo a quente. (vue-cli e create-react-app usam ambos)
Use Heroku, now.sh ou Github, aprenda como implantar projetos webpack.
Configure seu pré-processador favorito para compilar css - scss, less, stylus.
Seriamente? Tudushka? Há milhares deles. Mas acredite, há uma razão para essa popularidade.
O aplicativo Tudu é uma ótima maneira de garantir que você entenda o básico. Tente escrever um aplicativo em Javascript vanilla e outro em sua estrutura favorita.
Aprender:
Crie novas tarefas.
Verifique se os campos estão preenchidos.
Filtrar tarefas (concluídas, ativas, todas). Usar filter и reduce.
Você entenderá como funcionam os aplicativos web e os aplicativos nativos, o que o diferenciará da massa cinzenta.
O que estudaremos:
Soquetes da Web (mensagens instantâneas)
Como funcionam os aplicativos nativos.
Como os modelos funcionam em aplicativos nativos.
Organização de rotas de processamento de solicitações em aplicações nativas.
Editor de texto
Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.
Reddit — это агрегация социальных новостей, рейтинг веб-контента и сайт для обсуждений.
Reddit — занимает большую часть моего времени, но я продолжаю зависать на нем. Создание клона Reddit — это эффективный способ изучения программирования (при одновременном просмотре Reddit).
Reddit предоставляет вам очень богатый API. Не упускайте какие-либо функции и не делайте как попало. В реальном мире с клиентами и покупателями, вы не сможете работать как попало, или вы быстро потеряете работу.
Умные клиенты сразу же догадаются, что работа выполняется плохо, и найдут кого-то другого.
Если вы пишите код на Javascript, скорее всего, вы используете менеджер пакетов. Менеджер пакетов позволяет повторно использовать существующий код, который написали и опубликовали другие люди.
Понимание полного цикла разработки пакета даст очень хороший опыт. Есть много вещей, которые вам нужно знать при публикации кода. Вам нужно подумать о безопасности, семантическом управлении версиями, масштабируемости, соглашениях об именах и обслуживании.
Пакет может быть любым. Если у вас нет идеи, создайте свой собственный Lodash и опубликуйте его.
freeCodeCamp — это некоммерческая организация. Она состоит из интерактивной обучающей веб-платформы, онлайн-форума сообщества, чатов, публикаций Medium и местных организаций, которые намереваются сделать доступным для всех изучение веб-разработки.
Вы будете более чем квалифицированы для своей первой работы, если вам удастся завершить весь курс.
Создайте HTTP-сервер с нуля
Протокол HTTP является одним из основных протоколов, по которым контент попадает в Интернете. HTTP-серверы используются для обслуживания статического контента, такого как HTML, CSS и JS.
Возможность реализовать протокол HTTP с нуля расширит ваши знания о том, как все взаимодействует.
Например, если вы используете NodeJs, то вы знаете что Express предоставляет HTTP-сервер.
Для справки, посмотрите, сможете ли вы:
Настроить сервер без использования каких-либо библиотек
Сервер должен обслуживать содержимое HTML, CSS и JS.
Внедрение маршрутизатора с нуля
Следить за изменениями и обновлять сервер
Если вы не знаете с чего, воспользуйтесь Go lang и попытайтесь создать HTTP-сервер Caddie do princípio.
Десктопное приложение для заметок
Мы все делаем заметки, не так ли?
Давайте создадим приложение для заметок. Приложению необходимо сохранять заметки и синхронизировать их с базой данных. Создайте нативное приложение с помощью Electron, Swift или чего-то еще, что вам нравится, и что подходит для вашей системы.
Не стесняйтесь сочетать это с первым челленджом(текстовый редактор).
В качестве бонуса попробуйте синхронизировать десктопную версию с веб-версией.
Подкасты (клон Overcast)
Кто не слушает подкасты?
Создайте веб-приложение со следующими функциями:
Crie a sua conta aqui
Поиск подкастов
Оценивать и подписываться на подкасты
Остановка и воспроизведение, изменение скорости, функции вперед и назад на 30 секунд.
В качестве отправной точки попробуйте использовать iTunes API. Если вы знаете какие-либо другие ресурсы, напишите в комментариях.