Front-end dojo: prosjekter for å trene utviklerferdigheter (5 nye + 43 gamle)
1. Клон Notion
Приложение Notion полюбилось многим, оно позволяет оптимизировать рабочий процесс, работать с документами, планировать задачи, синхронизировать данные между устройствами.
Repl.it -это инструмент для совместного редактирования кода в реальном времени. Можно выбрать несколько языков: JavaScript, Python, Go и выполнять код прямо в браузере. Очень полезно для быстрых демонстраций и код-интервью.
Как запускать и выполнять код (server-side) в браузере (client-side).
Считывать входные данные (исходный код) и выводить на экран результат выполнения.
Как создавать файлы и папки в вебе и сохранять результаты.
Как подсвечивать синтаксис кода.
3. Клон Google Photos
Google Photos это сервис для хранения и обмена фоток.
Любое современное приложение по работе с фотографиями умеет выполнять базовые функции: загружать, обрезать и пр. Люди хотят создавать свои аватарки и делиться фотками котиков, поэтому надо уметь работать с изображениями.
Как создавать адаптивные изображения на телефонах, планшетах, ноутбуках и даже на гигантских экранах телевизоров.
Как обрабатывать загрузку изображений, особенно больших изображений (>1МБ) и массовых загрузок.
Обработка файлов изображений, обрезка и изменение размера фотографий для миниатюр или при открытии галереи.
Bonus: как хранить изображения в облаке или локальной базе данных.
4. Клон Gifsky
gifski конвертирует видео в GIF используя функцииpngkvant для эффективных палитр кросс-кадров и временного сглаживания. В результате получается гифка с тысячами цветов на кадр.
Layer er et fellesskap der alle kan tegne en piksel på et delt "brett". Den opprinnelige ideen ble født på Reddit. R/Layer-fellesskapet er en metafor for felles kreativitet, at alle kan være skapere og bidra til en felles sak.
Hva du vil lære når du lager ditt eget Layer-prosjekt:
Hvordan JavaScript-lerret fungerer Å vite hvordan man bruker et lerret er en kritisk ferdighet i mange applikasjoner.
Hvordan koordinere brukertillatelser. Hver bruker kan tegne én piksel hvert 15. minutt uten å måtte logge på.
Squoosh er et bildekomprimeringsprogram med mange avanserte alternativer.
GIF 20 MB
Ved å lage din egen versjon av Squoosh vil du lære:
Hvordan jobbe med bildestørrelser
Lær det grunnleggende om Drag'n'Drop API
Forstå hvordan API-en og hendelseslyttere fungerer
Hvordan laste opp og eksportere filer
Merk: Bildekompressoren er lokal. Det er ikke nødvendig å sende tilleggsdata til serveren. Du kan ha kompressoren hjemme, eller du kan bruke den på en server etter eget valg.
Kalkulator
Kom igjen? Alvor? Kalkulator? Ja, akkurat, en kalkulator. Å forstå det grunnleggende om matematiske operasjoner og hvordan de fungerer sammen er en kritisk ferdighet for å forenkle applikasjonene dine. Før eller siden må du forholde deg til tall og jo før jo bedre.
Alle har brukt en søkemotor, så hvorfor ikke lage din egen? Crawlere er nødvendig for å søke etter informasjon. Alle bruker dem hver dag, og etterspørselen etter denne teknologien og spesialister vil bare vokse over tid.
Google søkemotor
Hva du lærer ved å lage din egen søkemotor:
Hvordan roboter fungerer
Hvordan indeksere nettsteder og hvordan rangere dem etter rangering og omdømme
Hvordan lagre indekserte nettsteder i en database og hvordan jobbe med databasen
Musikkspiller (Spotify, Apple Music)
Alle hører på musikk – det er bare en integrert del av livene våre. La oss lage en musikkspiller for bedre å forstå hvordan den grunnleggende mekanikken til en moderne musikkstrømmeplattform fungerer.
Spotify
Hva du vil lære ved å lage din egen musikkstrømmeplattform:
Hvordan jobbe med API. bruk API fra Spotify eller Apple Music
Hvordan spille, pause eller spole tilbake til neste/forrige spor
Hvordan endre volum
Hvordan administrere brukerruting og nettleserhistorikk
Filmsøk-app med React (med kroker)
Det første du kan begynne med er å lage en filmsøk-app ved hjelp av React. Nedenfor er et bilde av hvordan den endelige søknaden vil se ut:
Hva vil du lære
Ved å bygge denne appen vil du forbedre React-ferdighetene dine ved å bruke den relativt nye Hooks API. Eksempelprosjektet bruker React-komponenter, mange kroker, en ekstern API og selvfølgelig litt CSS-styling.
Teknisk stack og funksjoner
Reager med kroker
skape reagere-app
jsx
CSS
Uten å bruke noen klasser gir disse prosjektene deg det perfekte inngangspunktet til funksjonelle React og vil definitivt hjelpe deg i 2020. du kan finne eksempelprosjekt her. Følg instruksjonene eller gjør den til din egen.
Chat-app med Vue
Et annet flott prosjekt du kan gjøre er å lage en chat-app ved å bruke mitt favoritt JavaScript-bibliotek: VueJS. Applikasjonen vil se omtrent slik ut:
Hva vil du lære
I denne opplæringen lærer du hvordan du lager en Vue-app fra bunnen av – oppretter komponenter, håndterer tilstand, oppretter ruter, kobler til tredjepartstjenester og til og med håndterer autentisering.
Teknisk stack og funksjoner
Vue
vuex
Vue-ruter
CLI -visning
Pusher
CSS
Dette er et virkelig flott prosjekt for å komme i gang med Vue eller forbedre dine eksisterende ferdigheter for å komme i utvikling i 2020. du kan finne opplæringen her.
Vakker værapp med Angular 8
Dette eksemplet vil hjelpe deg med å lage en vakker vær-app ved å bruke Angular 8:
Hva vil du lære
Dette prosjektet vil lære deg verdifulle ferdigheter i å bygge applikasjoner fra bunnen av – fra design til utvikling, hele veien til en distribusjonsklar applikasjon.
Teknisk stack og funksjoner
Vinkel 8
Fire
Gjengivelse på serversiden
CSS med Grid og Flexbox
Mobilvennlig og tilpasningsdyktig
Mørk modus
Vakkert grensesnitt
Det jeg virkelig elsker med dette altomfattende prosjektet er at man ikke studerer ting isolert. I stedet lærer du hele utviklingsprosessen, fra design til endelig distribusjon.
To-Do-applikasjon med Svelte
Svelte er som den nye gutten på den komponentbaserte tilnærmingen - i det minste lik React, Vue og Angular. Og dette er et av de hotteste nye produktene for 2020.
Gjøremål-apper er ikke nødvendigvis det heteste emnet, men det vil virkelig hjelpe deg å finpusse Svelte-ferdighetene dine. Det vil se slik ut:
Hva vil du lære
Denne opplæringen viser deg hvordan du lager en applikasjon ved hjelp av Svelte 3, fra start til slutt. Du vil bruke komponenter, styling og hendelsesbehandlere
Next.js er det mest populære rammeverket for å bygge React-applikasjoner som støtter gjengivelse på serversiden ut av esken.
Dette prosjektet vil vise deg hvordan du lager en e-handelsapplikasjon som ser slik ut:
Hva vil du lære
I dette prosjektet lærer du hvordan du utvikler med Next.js – opprette nye sider og komponenter, trekke ut data og stil og distribuere en Next-applikasjon.
Teknisk stack og funksjoner
Next.js
Komponenter og sider
Datasampling
stilisering
Prosjektdistribusjon
SSR og SPA
Det er alltid flott å ha et eksempel fra den virkelige verden som en e-handelsapp for å lære noe nytt. Du kan finn opplæringen her.
Fullverdig flerspråklig blogg med Nuxt.js
Nuxt.js er for Vue, hva Next.js er for React: et flott rammeverk for å kombinere kraften til gjengivelse på serversiden og enkeltsideapplikasjoner
Den endelige applikasjonen du kan lage vil se slik ut:
Hva vil du lære
I dette eksempelprosjektet lærer du hvordan du lager et komplett nettsted ved hjelp av Nuxt.js, fra første oppsett til endelig distribusjon.
Den utnytter mange av de kule funksjonene som Nuxt har å tilby, for eksempel sider og komponenter, og styling med SCSS.
Teknisk stack og funksjoner
Nuxt.js
Komponenter og sider
Storyblock-modul
Hagfish
Vuex for statlig ledelse
SCSS for styling
Nuxt mellomvare
Dette er et veldig kult prosjekt, som inkluderer mange flotte Nuxt.js-funksjoner. Jeg personlig elsker å jobbe med Nuxt, så du bør prøve det, da det også vil gjøre deg til en flott Vue-utvikler.
Blogg med Gatsby
Gatsby er en utmerket statisk nettstedsgenerator som bruker React og GraphQL. Dette er resultatet av prosjektet:
Hva vil du lære
I denne opplæringen lærer du hvordan du bruker Gatsby til å lage en blogg som du vil bruke til å skrive dine egne artikler ved hjelp av React og GraphQL.
Teknisk stack og funksjoner
Gatsby
Reager
GraphQL
Plugins og temaer
MDX/Markdown
Bootstrap CSS
maler
Hvis du noen gang har ønsket å starte en blogg, dette er et godt eksempel om hvordan du lager det ved hjelp av React og GraphQL.
Jeg sier ikke at WordPress er et dårlig valg, men med Gatsby kan du bygge nettsider med høy ytelse ved å bruke React – som er en fantastisk kombinasjon.
Blogg med Gridsome
Gridsome for Vue... Ok, vi hadde allerede dette med Next/Nuxt.
Men det samme gjelder for Gridsome og Gatsby. Begge bruker GraphQL som datalag, men Gridsome bruker VueJS. Dette er også en fantastisk statisk nettstedsgenerator som vil hjelpe deg med å lage flotte blogger:
Hva vil du lære
Dette prosjektet vil lære deg hvordan du lager en enkel blogg for å komme i gang med Gridsome, GraphQL og Markdown. Den dekker også hvordan du distribuerer en applikasjon gjennom Netlify.
Teknisk stack og funksjoner
Gridsomt
Vue
GraphQL
Markdown
Netlify
Dette er absolutt ikke den mest omfattende opplæringen, men den dekker de grunnleggende konseptene til Gridsome og Markdown kan være et godt utgangspunkt.
SoundCloud-lignende lydspiller som bruker Quasar
Quasar er et annet Vue-rammeverk som kan brukes til å lage mobilapplikasjoner. I dette prosjektet skal du lage en lydspillerapplikasjon, for eksempel:
Hva vil du lære
Mens andre prosjekter hovedsakelig fokuserer på nettapplikasjoner, vil dette vise deg hvordan du lager en mobilapplikasjon ved hjelp av Vue og Quasar-rammeverket.
Du bør allerede ha Cordova kjørende med Android Studio/Xcode konfigurert. Hvis ikke, har manualen en lenke til Quasar-nettstedet der de viser deg hvordan du setter opp alt.
Teknisk stack og funksjoner
Quasar
Vue
Cordova
WaveSurfer
UI-komponenter
Lite prosjekt, som demonstrerer Quasars evner for å lage mobilapplikasjoner.
Форма кредитной карты
En kul kredittkortform med jevne og hyggelige mikrointeraksjoner. Inkluderer nummerformatering, verifisering og automatisk korttypegjenkjenning. Den er bygget på Vue.js og er også fullstendig responsiv. (Du kan se her.)
Forstå hvordan du viser og plasserer elementer på siden, spesielt kredittkortinformasjonen som vises øverst i skjemaet
søylediagram
Et histogram er et diagram eller en graf som representerer kategoriske data med rektangulære stolper med høyder eller lengder proporsjonale med verdiene de representerer.
De kan påføres vertikalt eller horisontalt. Et vertikalt stolpediagram kalles noen ganger et linjediagram.
Hva du lærer:
Vis data på en strukturert og forståelig måte
I tillegg: Lær hvordan du bruker elementet canvas og hvordan tegne elementer med den
Her du kan finne verdens befolkningsdata. De er sortert etter år.
Анимация сердечка Twitter
Tilbake i 2016 introduserte Twitter denne fantastiske animasjonen for sine tweets. Fra og med 2019 ser det fortsatt ut som en del, så hvorfor ikke lage en selv?
Hva du lærer:
Arbeid med CSS-attributt keyframes
Manipuler og animer HTML-elementer
Kombiner JavaScript, HTML og CSS
Репозитории GitHub с функцией поиска
Det er ikke noe fancy her – GitHub-repos er bare en glorifisert liste.
Målet er å vise depotene og la brukeren filtrere dem. Bruk offisielle GitHub API for å få arkiver for hver bruker.
Chat er en populær måte å kommunisere på på grunn av sin enkelhet og brukervennlighet. Men hva er det egentlig som driver moderne chatterom? WebSockets!
Hva du lærer:
Bruk WebSockets, sanntidskommunikasjon og dataoppdateringer
Arbeid med brukertilgangsnivåer (for eksempel eieren av en chattekanal har rollen admin, og andre i rommet - user)
Behandle og valider skjemaer - husk, chattevinduet for å sende en melding er input
Opprett og bli med i forskjellige chatter
Arbeid med personlige meldinger. Brukere kan chatte med andre brukere privat. I hovedsak vil du etablere en WebSocket-forbindelse mellom to brukere.
Навигация в стиле Stripe
Det som gjør denne navigasjonen unik er at popover-beholderen transformeres for å passe til innholdet. Det er en eleganse ved denne overgangen sammenlignet med den tradisjonelle oppførselen med å åpne og lukke en ny popover.
Hva du lærer:
Kombiner CSS-animasjoner med overganger
Demp innholdet og bruk aktiv klasse på flytende element
Pacman
Lag din egen versjon av Pacman. Dette er en fin måte å få en ide om hvordan spill utvikles og forstå det grunnleggende. Bruk et JavaScript-rammeverk, React eller Vue.
Du vil lære:
Hvordan elementer beveger seg
Hvordan bestemme hvilke taster som skal trykkes
Hvordan bestemme kollisjonsøyeblikket
Du kan gå lenger og legge til spøkelsesbevegelseskontroller
Du finner et eksempel på dette prosjektet i depotet GitHub
Hvis du er ny på kontinuerlig integrasjon (CI), lek med GitLab CI. Sett opp noen miljøer og prøv å kjøre et par tester. Det er ikke et veldig vanskelig prosjekt, men jeg er sikker på at du vil lære mye av det. Mange utviklingsteam bruker nå CI. Det er nyttig å vite hvordan du bruker det.
Du vil lære:
Hva er GitLab CI
Hvordan konfigurere .gitlab-ci.ymlsom forteller GitLab-brukeren hva de skal gjøre
Hvordan distribuere til andre miljøer
Анализатор сайтов
Lag en skraper som analyserer semantikken til nettsteder og lager deres vurdering. Du kan for eksempel se etter manglende alt-tagger i bilder. Eller sjekk om siden har SEO-metakoder. En skraper kan lages uten brukergrensesnitt.
Du vil lære:
Hvordan fungerer skraper?
Hvordan lage DOM-velgere
Hvordan skrive en algoritme
Hvis du ikke vil stoppe der, lag et brukergrensesnitt. Du kan også lage en rapport på hver nettside du sjekker.
Teknisk sett er dette ikke en applikasjon, men det er en veldig nyttig oppgave for å forstå hvordan webpack fungerer fra innsiden. Nå vil det ikke være en "svart boks", men et forståelig verktøy.
krav:
Kompiler es7 til es5 (grunnleggende).
Kompiler jsx til js - eller - .vue til .js (du må lære lastere)
Konfigurer webpack dev server og hot modul reloading. (vue-cli og create-react-app bruker begge)
Bruk Heroku, now.sh eller Github, lær hvordan du distribuerer webpack-prosjekter.
Sett opp favorittforprosessoren din for å kompilere css - scss, less, stylus.
Alvor? Tudushka? Det er tusenvis av dem. Men tro meg, det er en grunn til denne populariteten.
Tudu-appen er en fin måte å sikre at du forstår det grunnleggende. Prøv å skrive en applikasjon i vanilla Javascript og en i favorittrammeverket ditt.
Lære:
Lag nye oppgaver.
Sjekk at feltene er fylt ut.
Filtrer oppgaver (fullførte, aktive, alle). Bruk filter и reduce.
Du vil forstå hvordan både webapplikasjoner og native applikasjoner fungerer, noe som vil skille deg fra den grå massen.
Hva vi skal studere:
Web-sockets (direktemeldinger)
Hvordan native applikasjoner fungerer.
Hvordan maler fungerer i native applikasjoner.
Organisering av forespørselsbehandlingsruter i native applikasjoner.
Tekstredigerer
Hensikten med et tekstredigeringsprogram er å redusere innsatsen til brukere som prøver å konvertere formateringen til gyldig HTML-oppmerking. Et godt tekstredigeringsprogram lar brukere formatere tekst på forskjellige måter.
På et tidspunkt har alle brukt et tekstredigeringsprogram. Så hvorfor ikke lag det selv?
Клон Reddit
Reddit er en sosial nyhetsaggregering, nettinnholdsvurdering og diskusjonsside.
Reddit tar opp mesteparten av tiden min, men jeg fortsetter å henge med det. Å lage en Reddit-klone er en effektiv måte å lære programmering på (mens du surfer på Reddit samtidig).
Reddit gir deg en veldig rik API. Ikke utelat noen funksjoner eller gjør ting tilfeldig. I den virkelige verden med kunder og kunder kan du ikke jobbe tilfeldig, ellers vil du raskt miste jobben.
Smarte kunder vil umiddelbart innse at jobben blir utført dårlig og vil finne noen andre.
Hvis du skriver Javascript-kode, er sjansen stor for at du bruker en pakkebehandling. En pakkebehandling lar deg gjenbruke eksisterende kode som andre har skrevet og publisert.
Å forstå hele utviklingssyklusen til en pakke vil gi en veldig god opplevelse. Det er mange ting du trenger å vite når du publiserer kode. Du må tenke på sikkerhet, semantisk versjonering, skalerbarhet, navnekonvensjoner og vedlikehold.
Pakken kan være hva som helst. Hvis du ikke har en idé, lag din egen Lodash og publiser den.
freeCodeCamp er en ideell organisasjon. Den består av en interaktiv nettbasert læringsplattform, et nettsamfunnsforum, chatterom, Medium-publikasjoner og lokale organisasjoner som har til hensikt å gjøre læringsnettutvikling tilgjengelig for alle.
Du vil være mer enn kvalifisert for din første jobb hvis du klarer å fullføre hele kurset.
Создайте HTTP-сервер с нуля
HTTP-protokollen er en av hovedprotokollene som innhold går gjennom på Internett. HTTP-servere brukes til å levere statisk innhold som HTML, CSS og JS.
Å kunne implementere HTTP-protokollen fra bunnen av vil utvide kunnskapen din om hvordan ting samhandler.
For eksempel, hvis du bruker NodeJs, så vet du at Express tilbyr en HTTP-server.
For referanse, se om du kan:
Sett opp en server uten å bruke noen biblioteker
Serveren må servere HTML-, CSS- og JS-innhold.
Implementering av en ruter fra bunnen av
Overvåk endringer og oppdater serveren
Hvis du ikke vet hvorfor, bruk Gå lang og prøv å lage en HTTP-server Caddy fra bunnen av.
Десктопное приложение для заметок
Vi tar alle notater, gjør vi ikke?
La oss lage en notatapp. Applikasjonen må lagre notater og synkronisere dem med databasen. Bygg en innebygd app ved å bruke Electron, Swift eller hva du liker, og det som fungerer for systemet ditt.
Kombiner gjerne dette med den første utfordringen (tekstredigering).
Som en bonus kan du prøve å synkronisere skrivebordsversjonen din med nettversjonen.
Подкасты (клон Overcast)
Hvem hører ikke på podcaster?
Lag en nettapplikasjon med følgende funksjonalitet:
Opprett en konto
Søk etter podcaster
Vurder og abonner på podcaster
Stopp og spill, endre hastighet, forover og bakover funksjoner i 30 sekunder.
Prøv å bruke iTunes API som utgangspunkt. Hvis du vet om andre ressurser, vennligst legg ut i kommentarene.