Esiotsa dojo: projektid arendajaoskuste koolitamiseks (5 uut + 43 vana)
1. Клон Notion
Приложение Notion полюбилось многим, оно позволяет оптимизировать рабочий процесс, работать с документами, планировать задачи, синхронизировать данные между устройствами.
Repl.it -это инструмент для совместного редактирования кода в реальном времени. Можно выбрать несколько языков: JavaScript, Python, Go и выполнять код прямо в браузере. Очень полезно для быстрых демонстраций и код-интервью.
Как запускать и выполнять код (server-side) в браузере (client-side).
Считывать входные данные (исходный код) и выводить на экран результат выполнения.
Как создавать файлы и папки в вебе и сохранять результаты.
Как подсвечивать синтаксис кода.
3. Клон Google Photos
Google Photos это сервис для хранения и обмена фоток.
Любое современное приложение по работе с фотографиями умеет выполнять базовые функции: загружать, обрезать и пр. Люди хотят создавать свои аватарки и делиться фотками котиков, поэтому надо уметь работать с изображениями.
Как создавать адаптивные изображения на телефонах, планшетах, ноутбуках и даже на гигантских экранах телевизоров.
Как обрабатывать загрузку изображений, особенно больших изображений (>1МБ) и массовых загрузок.
Обработка файлов изображений, обрезка и изменение размера фотографий для миниатюр или при открытии галереи.
Boonus: как хранить изображения в облаке или локальной базе данных.
4. Клон Gifsky
gifski конвертирует видео в GIF используя функцииpngquant для эффективных палитр кросс-кадров и временного сглаживания. В результате получается гифка с тысячами цветов на кадр.
Layer on kogukond, kus igaüks saab joonistada piksli jagatud “tahvlile”. Algne idee sündis Redditis. R/Layeri kogukond on jagatud loovuse metafoor, et igaüks saab olla looja ja anda oma panus ühise eesmärgi nimel.
Mida saate teada oma kihiprojekti loomisel:
Kuidas JavaScripti lõuend töötab Lõuendi kasutamise tundmine on paljudes rakendustes oluline oskus.
Kuidas kooskõlastada kasutajate õigusi. Iga kasutaja saab joonistada ühe piksli iga 15 minuti järel, ilma et peaks sisse logima.
Squoosh on paljude täiustatud valikutega piltide tihendamise rakendus.
GIF 20 MB
Luues oma Squooshi versiooni, saate teada:
Kuidas töötada pildi suurustega
Õppige Drag'n'Drop API põhitõdesid
Saate aru, kuidas API ja sündmuste kuulajad töötavad
Kuidas faile üles laadida ja eksportida
Märkus: Pildikompressor on lokaalne. Täiendavaid andmeid serverisse saata ei ole vaja. Kompressor võib olla kodus või kasutada seda omal valikul serveris.
Kalkulaator
Ole nüüd? Tõsiselt? Kalkulaator? Jah, täpselt, kalkulaator. Matemaatiliste toimingute põhitõdede ja nende koostöö mõistmine on rakenduste lihtsustamiseks ülioluline oskus. Varem või hiljem peate numbritega tegelema ja mida varem, seda parem.
Kõik on kasutanud otsingumootorit, miks mitte luua oma? Info otsimiseks on vaja roomajaid. Kõik kasutavad neid iga päev ning nõudlus selle tehnoloogia ja spetsialistide järele aja jooksul ainult kasvab.
Google'i otsingumootor
Mida saate teada, luues oma otsingumootori:
Kuidas roomajad töötavad
Kuidas indekseerida saite ja kuidas neid reitingu ja maine järgi järjestada
Kuidas salvestada indekseeritud saite andmebaasis ja kuidas andmebaasiga töötada
Muusikapleier (Spotify, Apple Music)
Kõik kuulavad muusikat – see on lihtsalt meie elu lahutamatu osa. Loome muusikapleieri, et paremini mõista, kuidas moodsa muusika voogedastusplatvormi põhimehaanika töötab.
Spotify
Mida saate teada, luues oma muusika voogesituse platvormi:
Kuidas API-ga töötada. kasutage Spotify või Apple Musicu API-d
Kuidas esitada, peatada või järgmisele/eelmisele loole tagasi kerida
Kuidas helitugevust muuta
Kuidas hallata kasutajate marsruutimist ja brauseri ajalugu
Filmiotsingu rakendus koos Reactiga (konksudega)
Esimene asi, millest võiks alustada, on Reactiga filmiotsingu rakenduse loomine. Allpool on pilt sellest, kuidas lõplik rakendus välja näeb:
Mida õpid
Selle rakenduse loomisega parandate oma Reacti oskusi suhteliselt uue Hooks API abil. Näidisprojektis kasutatakse Reacti komponente, palju konkse, välist API-d ja loomulikult mõningast CSS-stiili.
Tehniline virn ja funktsioonid
Reageerige konksudega
loo-reageeri-rakendus
JSX
CSS
Ilma klasse kasutamata annavad need projektid teile ideaalse sisenemispunkti funktsionaalsesse Reacti ja aitavad teid kindlasti 2020. aastal. võid leida näidisprojekt siin. Järgige juhiseid või tehke see enda omaks.
Vestlusrakendus Vuega
Teine suurepärane projekt teie jaoks on vestlusrakenduse loomine, kasutades minu lemmik JavaScripti teeki: VueJS. Rakendus näeb välja umbes selline:
Mida õpid
Sellest õpetusest saate teada, kuidas luua Vue rakendust nullist – luua komponente, hallata olekuid, luua marsruute, luua ühenduse kolmandate osapoolte teenustega ja isegi käsitleda autentimist.
Tehniline virn ja funktsioonid
Vue
vuex
Vue ruuter
CLI vaade
Tõukaja
CSS
See on tõesti suurepärane projekt Vue'ga alustamiseks või olemasolevate oskuste täiustamiseks, et 2020. aastal arendustegevusega tegeleda. võid leida õpetus siin.
Ilusa ilmarakendus Angular 8-ga
See näide aitab teil Angular 8 abil luua ilusa ilmarakenduse:
Mida õpid
See projekt õpetab teile väärtuslikke oskusi rakenduste loomisel nullist – alates projekteerimisest kuni arenduseni kuni juurutamisvalmis rakenduseni.
Tehniline virn ja funktsioonid
Nurga 8
Firebase
Serveripoolne renderdamine
CSS koos ruudustiku ja Flexboxiga
Mobiilisõbralik ja kohanemisvõime
Tume režiim
Ilus liides
Mis mulle selle põhjaliku projekti juures väga meeldib, on see, et asju ei uurita isoleeritult. Selle asemel õpite kogu arendusprotsessi alates kavandamisest kuni lõpliku kasutuselevõtuni.
To-Do rakendus Sveltega
Svelte on komponentide lähenemises nagu uus laps – vähemalt sarnane Reacti, Vue ja Angulariga. Ja see on üks kuumimaid uusi tooteid 2020. aastal.
To-Do rakendused ei pruugi olla kõige kuumem teema, kuid need aitavad teil tõesti oma Svelte oskusi lihvida. See näeb välja selline:
Mida õpid
See õpetus näitab teile, kuidas luua rakendust Svelte 3 abil algusest lõpuni. Kasutate komponente, stiili ja sündmuste käitlejaid
Next.js on kõige populaarsem raamistik serveripoolset renderdamist toetavate Reacti rakenduste loomiseks.
See projekt näitab teile, kuidas luua e-kaubanduse rakendust, mis näeb välja järgmine:
Mida õpid
Selles projektis saate teada, kuidas Next.js-iga arendada – luua uusi lehti ja komponente, hankida andmeid ja stiilida ning juurutada rakendust Next.
Tehniline virn ja funktsioonid
Järgmine.js
Komponendid ja lehed
Andmete valim
Stiil
Projekti juurutamine
SSR ja SPA
Alati on tore, kui on olemas näide elust, näiteks e-kaubanduse rakendus, millegi uue õppimiseks. Sa saad leiad õpetuse siit.
Täielik mitmekeelne ajaveeb Nuxt.js-iga
Nuxt.js on mõeldud Vue jaoks, nagu Next.js Reacti jaoks: suurepärane raamistik serveripoolse renderduse ja üheleheliste rakenduste ühendamiseks
Viimane loodud rakendus näeb välja selline:
Mida õpid
Selles näidisprojektis saate teada, kuidas luua Nuxt.js-i abil terviklik veebisait, alates esialgsest seadistamisest kuni lõpliku juurutamiseni.
See kasutab ära paljusid lahedaid funktsioone, mida Nuxt pakub, nagu lehed ja komponendid ning stiil SCSS-iga.
Tehniline virn ja funktsioonid
Nuxt.js
Komponendid ja lehed
looploki moodul
Segud
Vuex riigi juhtimiseks
SCSS stiili kujundamiseks
Nuxt vahevara
See on tõesti lahe projekt., mis sisaldab paljusid Nuxt.js-i suurepäraseid funktsioone. Mulle isiklikult meeldib Nuxtiga töötada, nii et peaksite seda proovima, kuna see muudab teid ka suurepäraseks Vue arendajaks.
Blogige Gatsbyga
Gatsby on suurepärane staatilise saidi generaator, mis kasutab Reacti ja GraphQL-i. See on projekti tulemus:
Mida õpid
Sellest õpetusest saate teada, kuidas kasutada Gatsbyt ajaveebi loomiseks, mida saate kasutada Reacti ja GraphQL-i abil oma artiklite kirjutamiseks.
Tehniline virn ja funktsioonid
Gatsby
Reageerima
GraphQL
Pluginad ja teemad
MDX/Markdown
Bootstrap CSS
Mallid
Kui olete kunagi tahtnud blogi pidada, see on suurepärane näide kuidas seda Reacti ja GraphQL-i abil teha.
Ma ei ütle, et WordPress on halb valik, kuid Gatsby abil saate Reacti abil luua suure jõudlusega veebisaite – see on hämmastav kombinatsioon.
Blogi koos Gridsome'iga
Võrratu Vue jaoks… Okei, see oli meil juba Next/Nuxtiga.
Kuid sama kehtib ka Gridsome'i ja Gatsby kohta. Mõlemad kasutavad andmekihina GraphQL-i, kuid Gridsome kasutab VueJS-i. See on ka suurepärane staatiline saidigeneraator, mis aitab teil luua suurepäraseid ajaveebe:
Mida õpid
See projekt õpetab teile, kuidas luua lihtsat ajaveebi, et alustada Gridsome'i, GraphQL-i ja Markdowniga. Samuti selgitatakse, kuidas rakendust Netlify kaudu juurutada.
Quasar on veel üks Vue raamistik, mida saab kasutada mobiilirakenduste loomiseks. Selles projektis loote helipleieri rakenduse, näiteks:
Mida õpid
Kui teised projektid keskenduvad peamiselt veebirakendustele, siis see näitab teile, kuidas luua mobiilirakendust Vue ja Quasari raamistiku abil.
Teil peaks olema juba seadistatud töötav Cordova koos Android Studio/Xcode'iga. Kui ei, siis juhendis on link Quasari veebisaidile, kus näidatakse, kuidas kõike seadistada.
Tehniline virn ja funktsioonid
Kvasar
Vue
Cordova
lainesurfar
UI komponendid
väike projekt, mis demonstreerib Quasari võimalusi mobiilirakenduste loomiseks.
Форма кредитной карты
Lahe krediitkaardi kuju sujuvate ja nauditavate mikrointeraktsioonidega. Sisaldab numbrite vormindamist, kontrollimist ja automaatset kaarditüübi tuvastamist. See on üles ehitatud Vue.js-ile ja on ka täielikult reageeriv. (Sa näed siin.)
Saate aru, kuidas kuvada ja paigutada lehel elemente, eriti krediitkaarditeavet, mis kuvatakse vormi ülaosas
tulpdiagramm
Histogramm on diagramm või graafik, mis esindab kategoorilisi andmeid ristkülikukujuliste ribadega, mille kõrgus või pikkus on võrdeline nende väärtustega.
Neid saab rakendada vertikaalselt või horisontaalselt. Vertikaalset tulpdiagrammi nimetatakse mõnikord joondiagrammiks.
Mida õpid:
Kuva andmed struktureeritult ja arusaadavalt
Lisaks: õppige elementi kasutama canvas ja kuidas sellega elemente joonistada
see on leiate maailma rahvastikuandmeid. Need on sorteeritud aastate kaupa.
Анимация сердечка Twitter
2016. aastal tutvustas Twitter seda hämmastavat animatsiooni oma säutsude jaoks. 2019. aasta seisuga näeb see endiselt osa välja, nii et miks mitte seda ise luua?
Mida õpid:
Töötage CSS-i atribuudiga keyframes
Manipuleerida ja animeerida HTML-i elemente
Kombineerige JavaScript, HTML ja CSS
Репозитории GitHub с функцией поиска
Siin pole midagi uhket – GitHubi hoidlad on lihtsalt ülistatud loend.
Eesmärk on kuvada hoidlaid ja võimaldada kasutajal neid filtreerida. Kasuta ametlik GitHubi API et hankida iga kasutaja jaoks hoidlaid.
Vestlused on oma lihtsuse ja kasutusmugavuse tõttu populaarne suhtlusviis. Aga mis tegelikult toidab tänapäevaseid jututubasid? WebSockets!
Mida õpid:
Kasutage WebSocketsi, reaalajas suhtlust ja andmete värskendusi
Töötage kasutaja juurdepääsutasemetega (näiteks vestluskanali omanikul on roll adminja teised ruumis viibijad - user)
Töötle ja kinnita vorme – pea meeles, et sõnumi saatmise vestlusaken on input
Looge erinevaid vestlusi ja liituge nendega
Töötage isiklike sõnumitega. Kasutajad saavad teiste kasutajatega privaatselt vestelda. Põhimõtteliselt loote WebSocket-ühenduse kahe kasutaja vahel.
Навигация в стиле Stripe
Selle navigeerimise teeb ainulaadseks see, et hüpikkonteiner muudetakse vastavalt sisule. See üleminek on elegantses võrreldes traditsioonilise uue hüpikakna avamise ja sulgemisega.
Mida õpid:
Kombineerige CSS-animatsioone üleminekutega
Hämardage sisu ja rakendage ujuvelemendile aktiivne klass
Pacman
Looge oma versioon Pacmanist. See on suurepärane võimalus saada aimu, kuidas mänge arendatakse, ja mõista põhitõdesid. Kasutage JavaScripti raamistikku, Reacti või Vue.
Sa õpid:
Kuidas elemendid liiguvad
Kuidas määrata, milliseid klahve vajutada
Kuidas määrata kokkupõrke hetk
Saate minna kaugemale ja lisada kummituste liikumise juhtnuppe
Kui te pole pidevas integratsioonis (CI) uus, mängige GitLab CI-ga. Seadistage paar keskkonda ja proovige käivitada paar testi. See ei ole väga raske projekt, kuid olen kindel, et saate sellest palju õppida. Paljud arendusmeeskonnad kasutavad nüüd CI-d. Kasulik on teadmine, kuidas seda kasutada.
Sa õpid:
Mis on GitLab CI
Kuidas konfigureerida .gitlab-ci.ymlmis ütleb GitLabi kasutajale, mida teha
Kuidas juurutada teistes keskkondades
Анализатор сайтов
Tehke kaabits, mis analüüsib veebisaitide semantikat ja loob nende hinnangu. Näiteks saate kontrollida, kas piltidelt puuduvad alt-märgised. Või kontrollige, kas lehel on SEO metasildid. Kaabitsa saab luua ilma kasutajaliideseta.
Sa õpid:
Kuidas kaabits töötab?
Kuidas luua DOM-selektoreid
Kuidas kirjutada algoritmi
Kui te ei soovi sellega peatuda, looge kasutajaliides. Samuti saate luua aruande iga kontrollitava veebisaidi kohta.
Kuidas luua uusi objekte (tahvlid, nimekirjad, kaardid).
Sisendandmete töötlemine ja kontrollimine.
Kliendi poolelt: kuidas kasutada kohalikku salvestusruumi, kuidas salvestada andmeid lokaalsesse salvestusruumi, kuidas lugeda andmeid kohalikust salvestusruumist.
Serveri poolelt: kuidas kasutada andmebaase, kuidas salvestada andmeid andmebaasi, kuidas lugeda andmeid andmebaasist.
Tehniliselt pole see rakendus, kuid see on väga kasulik ülesanne, et mõista, kuidas veebipakk seestpoolt töötab. Nüüd pole see "must kast", vaid arusaadav tööriist.
nõuded:
Kompileeri es7 kuni es5 (põhitõed).
Kompileerige jsx js-ks või - .vue js-iks (peate laadureid õppima)
Seadistage veebipaketi arendajaserver ja kuummooduli uuesti laadimine. (vue-cli ja create-react-app kasutavad mõlemat)
Kasutage Herokut, now.sh või Githubi ja õppige veebipaketi projektide juurutamist.
Seadistage css-i kompileerimiseks oma lemmik eelprotsessor – scss, less, pliiats.
Siit saate teada, kuidas veebipaketiga pilte ja SVG-sid kasutada.
Tõsiselt? Tudushka? Neid on tuhandeid. Kuid uskuge mind, sellel populaarsusel on põhjust.
Tudu rakendus on suurepärane viis põhitõdede mõistmiseks. Proovige kirjutada üks rakendus vanilje Javascriptis ja üks oma lemmikraamistikus.
Õppige:
Looge uusi ülesandeid.
Kontrollige, kas väljad on täidetud.
Filtreeri ülesandeid (lõpetatud, aktiivne, kõik). Kasuta filter и reduce.
Tekstiredaktori eesmärk on vähendada nende kasutajate pingutusi, kes üritavad oma vormingut kehtivaks HTML-märgistuseks teisendada. Hea tekstiredaktor võimaldab kasutajatel teksti erineval viisil vormindada.
Mingil hetkel on kõik tekstiredaktorit kasutanud. Miks siis mitte loo see ise?
Клон Reddit
reddit on sotsiaaluudiste koond-, veebisisu reitingu- ja arutelusait.
Reddit võtab suurema osa minu ajast, kuid veedan sellega jätkuvalt aega. Redditi klooni loomine on tõhus viis programmeerimise õppimiseks (samal ajal Redditi sirvides).
Reddit pakub teile väga rikkalikku API. Ärge jätke ühtegi funktsiooni välja ega tehke asju juhuslikult. Päris klientide ja klientidega maailmas ei saa te juhuslikult töötada, vastasel juhul kaotate kiiresti töö.
Nutikad kliendid saavad kohe aru, et tööd tehakse halvasti ja leiavad kellegi teise.
Kui kirjutate Javascripti koodi, kasutate tõenäoliselt paketihaldurit. Paketihaldur võimaldab teil uuesti kasutada olemasolevat koodi, mille teised inimesed on kirjutanud ja avaldanud.
Paketi kogu arendustsükli mõistmine annab väga hea kogemuse. Koodi avaldamisel peate teadma palju asju. Peate mõtlema turvalisusele, semantilisele versioonile, skaleeritavusele, nimetamisviisidele ja hooldusele.
Pakend võib olla ükskõik milline. Kui teil pole ideed, looge oma Lodash ja avaldage see.
freeCodeCamp on mittetulundusühing. See koosneb interaktiivsest veebipõhisest õppeplatvormist, veebipõhisest kogukonnafoorumist, jututubadest, meediaväljaannetest ja kohalikest organisatsioonidest, mis kavatsevad teha õppeveebi arendamise kõigile kättesaadavaks.
Kui teil õnnestub kogu kursus läbida, olete oma esimese töökoha jaoks enam kui kvalifitseeritud.
Создайте HTTP-сервер с нуля
HTTP-protokoll on üks peamisi protokolle, mille kaudu sisu Internetis liigub. HTTP-servereid kasutatakse staatilise sisu (nt HTML, CSS ja JS) teenindamiseks.
HTTP-protokolli nullist juurutamine laiendab teie teadmisi asjade koostoime kohta.
Näiteks kui kasutate NodeJ-sid, siis teate, et Express pakub HTTP-serverit.
Viitamiseks vaadake, kas saate:
Seadistage server ilma teeke kasutamata
Server peab teenindama HTML-, CSS- ja JS-sisu.
Ruuteri juurutamine nullist
Jälgige muudatusi ja värskendage serverit
Kui te ei tea, miks, kasutage Mine lang ja proovige luua HTTP-server Golfipoiss algusest.
Десктопное приложение для заметок
Me kõik teeme märkmeid, kas pole?
Loome märkmete rakenduse. Rakendus peab salvestama märkmed ja sünkroonima need andmebaasiga. Looge omarakendus, kasutades Electronit, Swifti või mis tahes muud, mis teile meeldib ja mis teie süsteemi jaoks töötab.
Ühendage see julgelt esimese väljakutsega (tekstiredaktor).
Boonusena proovige sünkroonida oma töölauaversioon veebiversiooniga.
Подкасты (клон Overcast)
Kes ei kuula podcaste?
Looge veebirakendus järgmiste funktsioonidega:
Kontot looma
Otsi taskuhäälingusaadetest
Hinnake ja tellige taskuhäälingusaateid
Peatage ja esitage, muutke kiirust, edasi- ja tagasifunktsioone 30 sekundi jooksul.
Proovige lähtepunktina kasutada iTunes API-t. Kui teate muid ressursse, postitage need kommentaaridesse.