ProHoster > Блог > interretaj novaĵoj > Antaŭfina Doĵo: projektoj por trejni programistajn kapablojn (5 novaj + 43 malnovaj)
Antaŭfina Doĵo: projektoj por trejni programistajn kapablojn (5 novaj + 43 malnovaj)
1. Клон Notion
Приложение Notion полюбилось многим, оно позволяет оптимизировать рабочий процесс, работать с документами, планировать задачи, синхронизировать данные между устройствами.
Repl.it -это инструмент для совместного редактирования кода в реальном времени. Можно выбрать несколько языков: JavaScript, Python, Go и выполнять код прямо в браузере. Очень полезно для быстрых демонстраций и код-интервью.
Как запускать и выполнять код (server-side) в браузере (client-side).
Считывать входные данные (исходный код) и выводить на экран результат выполнения.
Как создавать файлы и папки в вебе и сохранять результаты.
Как подсвечивать синтаксис кода.
3. Клон Google Photos
Google Photos это сервис для хранения и обмена фоток.
Любое современное приложение по работе с фотографиями умеет выполнять базовые функции: загружать, обрезать и пр. Люди хотят создавать свои аватарки и делиться фотками котиков, поэтому надо уметь работать с изображениями.
Как создавать адаптивные изображения на телефонах, планшетах, ноутбуках и даже на гигантских экранах телевизоров.
Как обрабатывать загрузку изображений, особенно больших изображений (>1МБ) и массовых загрузок.
Обработка файлов изображений, обрезка и изменение размера фотографий для миниатюр или при открытии галереи.
Gratifiko: как хранить изображения в облаке или локальной базе данных.
4. Клон Gifsky
gifski конвертирует видео в GIF используя функцииpngquant для эффективных палитр кросс-кадров и временного сглаживания. В результате получается гифка с тысячами цветов на кадр.
Layer — это сообщество, где каждый может нарисовать пиксель на общей «доске». Оригинальная идея родилась на Reddit. Сообщество r/Layer — это метафора совместного творчества, что каждый может быть творцом и вносить вклад в общее дело.
Чему вы научитесь создавай свой проект Layer:
Как работают JavaScript canvas, умение оперировать canvas — критически важный навык во многих приложениях.
Как координировать user permissions (пользовательские разрешения). Каждый пользователь может рисовать один пиксель раз в 15 минут и при этом не надо логиниться.
Squoosh — это приложение по сжатию изображений с множеством продвинутых опций.
Гифка на 20 мб
Создавая свою версию Squoosh вы научитесь:
Как работать с размерами изображений
Освоите основы Drag‘n’Drop API
Разберетесь как работают API и еvent listeners
Как загружать и экспортировать файлы
Notu: компрессор изображений локален. Не обязательно отсылать дополнительные данные на сервер. Можно иметь компрессор у себя, а можно на сервер, на ваш выбор.
Kalkulilo
Да ладно? Серьезно? Калькулятор? Да, именно, калькулятор. Понимать основы математических операций и как они работают совместно — критически важный навык для упрощения ваших приложений. Рано или поздно вам придется разбираться с числами и чем раньше, тем лучше.
Каждый пользовался поисковиком, так почему бы не создать собственный? Краулеры нужны чтобы искать информацию. Ими пользуются все каждый день и спрос со времменм на эту технологию и специалистов будет только расти.
Поисковик Гугла
Чему научитесь, создавая свой поисковик:
Как работают краулеры
Как индексировать сайты и как их ранжировать по рейтингу и репутации
Как хранить индексированные сайты в базе данных и как работать с базой данных
Музыкальный плеер (Spotify, Apple Music)
Все слушают музыку — это просто неотьемлимая часть нашей жизни. Давайте создадим музыкальный плеер, чтобы лучше понять, как работает базовая механика современной платформы потоковой передачи музыки.
Spotify
Чему научитесь, создавая свою музыкальную стриминговую платформу:
Как работать с API. использовать API от Spotify или Apple Music
Как проигрывать, останавливать или перематывать на следующию/предыдущую композицию
Как менять громкость
Как управлять маршрутизацией пользователей и историей браузера
Film-serĉa programo kun React (kun hokoj)
La unua afero, per kiu vi povus komenci, estas konstrui filmserĉan programon kun React. Malsupre estas bildo pri kiel aspektos la fina programo:
Kion vi lernos
Konstruante ĉi tiun aplikaĵon, vi plibonigos viajn React-kapablojn uzante la relative novan Hooks API. La specimena projekto uzas React-komponentojn, multajn hokojn, eksteran API, kaj kompreneble iom da CSS-stilado.
Teknika stako kaj funkcioj
Reagi per hokoj
krei-reagi-app
JSX
CSS
Sen uzi iujn ajn klasojn, ĉi tiuj projektoj donas al vi la perfektan enirpunkton al funkcia React kaj certe helpos vin en 2020. vi povas trovi specimena projekto ĉi tie. Sekvu la instrukciojn aŭ faru ĝin via.
Babilada aplikaĵo kun Vue
Alia bonega projekto por vi estas konstrui babilejon uzante mian plej ŝatatan JavaScript-bibliotekon: VueJS. La aplikaĵo aspektos kiel ĉi tio:
Kion vi lernos
En ĉi tiu lernilo, vi lernos kiel fari Vue-aplon de nulo - krei komponantojn, pritrakti ŝtatojn, krei itinerojn, konektiĝi al triaj servoj kaj eĉ pritrakti aŭtentikigon.
Teknika stako kaj funkcioj
Vue
vuex
vue router
Vidu CLI
Pusher
CSS
Ĉi tio estas vere bonega projekto por komenci kun Vue aŭ plibonigi viajn ekzistantajn kapablojn por eklabori en 2020. vi povas trovi lernilo ĉi tie.
Bela vetera aplikaĵo kun Angular 8
Ĉi tiu ekzemplo helpos vin konstrui belan veteran apon uzante Angular 8:
Kion vi lernos
Ĉi tiu projekto instruos al vi valorajn kapablojn en konstruado de aplikoj de nulo - de dezajno ĝis evoluo, ĝis la preta por deploji aplikaĵo.
Teknika stako kaj funkcioj
Angulo 8
Firebase
Servila Flanka Reprezentado
CSS kun Krado kaj Flexbox
Poŝtelefono amika kaj adaptebleco
Malhela reĝimo
Bela interfaco
Kion mi vere ŝatas pri ĉi tiu ampleksa projekto estas ke vi ne studas aferojn izole. Anstataŭe, vi lernas la tutan disvolvan procezon de dezajno ĝis fina deplojo.
Apliko por fari kun Svelte
Svelte estas kiel la nova infano en la kompona aliro - almenaŭ simila al React, Vue kaj Angular. Kaj ĉi tiu estas unu el la plej varmaj novaj produktoj por 2020.
Faraj programoj ne nepre estas la plej varma temo, sed ili vere helpos vin perfektigi viajn Sveltajn kapablojn. Ĝi aspektos tiel:
Kion vi lernos
Ĉi tiu lernilo montros al vi kiel krei aplikaĵon uzante Svelte 3, de komenco ĝis fino. Vi uzos komponantojn, stilon kaj evento-traktilojn
Next.js estas la plej populara kadro por konstrui React-programojn, kiuj subtenas servilflankan bildigon el la skatolo.
Ĉi tiu projekto montros al vi kiel krei elektronikan aplikaĵon, kiu aspektas tiel:
Kion vi lernos
En ĉi tiu projekto, vi lernos kiel disvolvi kun Next.js—krei novajn paĝojn kaj komponantojn, preni datumojn kaj stiligi kaj disfaldi aplikaĵon Next.
Teknika stako kaj funkcioj
Sekva.js
Komponantoj kaj Paĝoj
Specimeno de datumoj
Stiligo
Projekto Deplojo
SSR kaj SPA
Ĉiam estas bonege havi realan ekzemplon kiel e-komerca aplikaĵo por lerni ion novan. Vi povas trovi lernilon ĉi tie.
Plena plurlingva blogo kun Nuxt.js
Nuxt.js estas por Vue, kiel Next.js estas por React: bonega kadro por kombini servilflanka bildigo kaj unupaĝaj aplikoj
La lasta aplikaĵo, kiun vi povas krei, aspektos tiel:
Kion vi lernos
En ĉi tiu ekzempla projekto, vi lernos kiel konstrui kompletan retejon uzante Nuxt.js, de komenca aranĝo ĝis fina deplojo.
Ĝi utiligas multajn el la bonegaj funkcioj kiujn Nuxt devas oferti, kiel ekzemple paĝoj kaj komponantoj, kaj stilado kun SCSS.
Teknika stako kaj funkcioj
Nuxt.js
Komponantoj kaj Paĝoj
fabelomodulo
Miksinoj
Vuex por ŝtata administrado
SCSS por stilado
Nuxt middlewares
Ĉi tio estas vere bonega projekto., kiu inkluzivas multajn el la bonegaj trajtoj de Nuxt.js. Mi persone amas labori kun Nuxt, do vi devus provi ĝin, ĉar ĝi ankaŭ faros vin bonega programisto de Vue.
Blogo kun Gatsby
Gatsby estas bonega senmova generatoro uzante React kaj GraphQL. Jen la rezulto de la projekto:
Kion vi lernos
En ĉi tiu lernilo, vi lernos kiel uzi Gatsby por krei blogon, kiun vi uzos por skribi viajn proprajn artikolojn uzante React kaj GraphQL.
Mi ne diras, ke WordPress estas malbona elekto, sed kun Gatsby vi povas konstrui altkvalitajn retejojn uzante React - kio estas mirinda kombinaĵo.
Blogo kun Gridsome
Gridsome por Vue... Bone, ni jam havis tion kun Next/Nuxt.
Sed la sama validas por Gridsome kaj Gatsby. Ambaŭ uzas GraphQL kiel sian datumtavolon, sed Gridsome uzas VueJS. Ĝi ankaŭ estas mirinda senmova generatoro por helpi vin krei bonegajn blogojn:
Kion vi lernos
Ĉi tiu projekto instruos vin kiel krei simplan blogon por komenci kun Gridsome, GraphQL kaj Markdown. Ĝi ankaŭ klarigas kiel disfaldi aplikaĵon per Netlify.
Quasar estas alia kadro Vue, kiu povas esti uzata por konstrui poŝtelefonajn programojn. En ĉi tiu projekto, vi kreos aŭdludilan aplikaĵon kiel ekzemple:
Kion vi lernos
Dum aliaj projektoj temigas plejparte TTT-aplikaĵojn, ĉi tiu montros al vi kiel konstrui moveblan apon uzante Vue kaj la kadron Quasar.
Vi jam devus havi funkciantan Kordovon kun Android Studio/Xcode agordita. Se ne, la manlibro havas ligilon al la retejo de Quasar, kie ili montras al vi kiel agordi ĉion.
Teknika stako kaj funkcioj
Kvazaro
Vue
Kordovo
ondesurfer
UI-Elementoj
malgranda projekto, montrante la kapablojn de Quasar por konstruado de moveblaj aplikoj.
Форма кредитной карты
Moŝta kreditkarta formo kun glataj kaj ĝuaj mikro-interagoj. Inkluzivas nombroformatadon, konfirmon kaj aŭtomatan kartspecan detekton. Ĝi estas konstruita sur Vue.js kaj ankaŭ estas plene respondema. (Vi povas vidi tie.)
Pritraktu eventojn (ekzemple kiam kampoj ŝanĝiĝas)
Komprenu kiel montri kaj meti elementojn sur la paĝon, precipe la kreditkartajn informojn, kiuj aperas supre de la formularo
stango
Histogramo estas diagramo aŭ grafeo, kiu reprezentas kategoriajn datumojn per rektangulaj stangoj kun altecoj aŭ longoj proporciaj al la valoroj, kiujn ili reprezentas.
Ili povas esti aplikataj vertikale aŭ horizontale. Vertikala bardiagramo foje estas nomita linia diagramo.
Kion vi lernos:
Montru datumojn en strukturita kaj komprenebla maniero
Aldone: Lernu kiel uzi la elementon canvas kaj kiel desegni elementojn per ĝi
estas vi povas trovi mondloĝantajn datumojn. Ili estas ordigitaj laŭ jaro.
Анимация сердечка Twitter
Reen en 2016, Twitter enkondukis ĉi tiun mirindan animacion por siaj tweets. Ekde 2019, ĝi ankoraŭ aspektas, do kial ne krei unu mem?
Kion vi lernos:
Laboru kun CSS-atributo keyframes
Manipulu kaj animu HTML-elementojn
Kombinu JavaScript, HTML kaj CSS
Репозитории GitHub с функцией поиска
Estas nenio fantazia ĉi tie—GitHub-deponejoj estas nur glorata listo.
La celo estas montri la deponejojn kaj permesi al la uzanto filtri ilin. Uzu oficiala GitHub API por akiri deponejojn por ĉiu uzanto.
Babilejoj estas populara maniero de komunikado pro sia simpleco kaj facileco de uzo. Sed kio vere nutras modernajn babilejojn? WebSockets!
Kion vi lernos:
Uzu WebSockets, realtempan komunikadon kaj datumajn ĝisdatigojn
Laboru kun uzantaj alirniveloj (ekzemple, la posedanto de babilkanalo havas la rolon admin, kaj aliaj en la ĉambro - user)
Prilaboru kaj validigu formularojn - memoru, la babilfenestro por sendi mesaĝon estas input
Kreu kaj aliĝu al malsamaj babilejoj
Laboru kun personaj mesaĝoj. Uzantoj povas private babili kun aliaj uzantoj. Esence, vi establos WebSocket-konekton inter du uzantoj.
Навигация в стиле Stripe
Kio faras ĉi tiun navigadon unika estas, ke la popover-ujo transformiĝas por konveni al la enhavo. Estas eleganteco al ĉi tiu transiro kompare kun la tradicia konduto malfermi kaj fermi novan popover.
Kion vi lernos:
Kombinu CSS-animaciojn kun transiroj
Malfortigu enhavon kaj apliku aktivan klason al flosita elemento
Pacmano
Kreu vian propran version de Pacman. Ĉi tio estas bonega maniero por havi ideon pri kiel ludoj disvolviĝas kaj kompreni la bazaĵojn. Uzu JavaScript-kadron, React aŭ Vue.
Vi lernos:
Kiel elementoj moviĝas
Kiel determini kiujn klavojn premi
Kiel determini la momenton de kolizio
Vi povas iri plu kaj aldoni fantomajn movadkontrolojn
Vi trovos ekzemplon de ĉi tiu projekto en la deponejo GitHub
Se vi estas nova al kontinua integriĝo (CI), ludu kun GitLab CI. Agordu kelkajn mediojn kaj provu fari kelkajn provojn. Ĝi ne estas tre malfacila projekto, sed mi certas, ke vi lernos multon el ĝi. Multaj evoluigaj teamoj nun uzas CI. Scii kiel uzi ĝin estas utila.
Vi lernos:
Kio estas GitLab CI
Kiel agordi .gitlab-ci.ymlkiu diras al la uzanto de GitLab kion fari
Kiel deploji al aliaj medioj
Анализатор сайтов
Faru skrapilon, kiu analizas la semantikon de retejoj kaj kreas ilian taksadon. Ekzemple, vi povas kontroli ĉu mankas alt-etikedoj en bildoj. Aŭ kontrolu ĉu la paĝo havas SEO-meta-etikedojn. Skrapilo povas esti kreita sen uzantinterfaco.
Vi lernos:
Kiel funkcias skrapilo?
Kiel krei DOM-elektilojn
Kiel verki algoritmon
Se vi ne volas halti tie, kreu uzantinterfacon. Vi ankaŭ povas krei raporton pri ĉiu retejo, kiun vi kontrolas.
Teknike, ĉi tio ne estas aplikaĵo, sed estas tre utila tasko kompreni kiel retpako funkcias de interne. Nun ĝi ne estos "nigra skatolo", sed komprenebla ilo.
Postuloj:
Kompilu es7 al es5 (bazoj).
Kompilu jsx al js - aŭ - .vue al .js (vi devos lerni ŝargilojn)
Agordu retpaka dev-servilon kaj reŝargadon de varma modulo. (vue-cli kaj create-react-app uzas ambaŭ)
Uzu Heroku, now.sh aŭ Github, lernu kiel disfaldi projektojn de retpakoj.
Agordu vian plej ŝatatan antaŭprocesilon por kompili css - scss, less, stylus.
Ĉu serioze? Tudushka? Estas miloj da ili. Sed kredu min, estas kialo por ĉi tiu populareco.
La Tudu-apo estas bonega maniero certigi, ke vi komprenas la bazaĵojn. Provu skribi unu aplikaĵon en vanila Javascript kaj unu en via plej ŝatata kadro.
Lernu:
Krei novajn taskojn.
Kontrolu, ke la kampoj estas plenigitaj.
Filtrilaj taskoj (kompletigitaj, aktivaj, ĉiuj). Uzu filter и reduce.
Vi komprenos kiel funkcias ambaŭ TTT-aplikoj kaj denaskaj aplikoj, kio apartigos vin de la griza maso.
Kion ni studos:
Retaj ingoj (tuj mesaĝoj)
Kiel denaskaj aplikaĵoj funkcias.
Kiel ŝablonoj funkcias en indiĝenaj aplikoj.
Organizi pettraktajn itinerojn en indiĝenaj aplikoj.
Tekstoredaktilo
La celo de tekstredaktilo estas redukti la penon de uzantoj provantaj konverti sian formatadon en validan HTML-markadon. Bona tekstredaktilo permesas al uzantoj formati tekston en malsamaj manieroj.
Iam ĉiuj uzis tekstredaktilon. Do kial ne kreu ĝin mem?
Клон Reddit
Reddit estas socia novaĵagregacio, retenhava taksado kaj diskutejo.
Reddit okupas plejparton de mia tempo, sed mi daŭre okupiĝas pri ĝi. Krei Reddit-klonon estas efika maniero lerni programadon (dum foliumas Reddit samtempe).
Reddit provizas al vi tre riĉan API. Ne forlasu iujn ajn funkciojn aŭ faru aferojn hazarde. En la reala mondo kun klientoj kaj klientoj, vi ne povas labori hazarde, aŭ vi rapide perdos vian laboron.
Saĝaj klientoj tuj rimarkos, ke la laboro estas malbone farita kaj trovos iun alian.
Se vi skribas Javascript-kodon, verŝajne vi uzas pakaĵadministrilon. Pakaĵadministrilo permesas reuzi ekzistantan kodon, kiun aliaj homoj skribis kaj publikigis.
Kompreni la plenan disvolvan ciklon de pako provizos tre bonan sperton. Estas multaj aferoj, kiujn vi bezonas scii kiam vi publikigas kodon. Vi devas pensi pri sekureco, semantika versio, skaleblo, nomkonvencioj kaj prizorgado.
La pako povas esti io ajn. Se vi ne havas ideon, kreu vian propran Lodash kaj publikigu ĝin.
freeCodeCamp estas neprofitcela organizo. Ĝi konsistas el interaga ret-bazita lernplatformo, reta komunuma forumo, babilejoj, Mezaj publikaĵoj, kaj lokaj organizoj kiuj intencas igi lernan retdisvolviĝon alirebla por ĉiuj.
Vi estos pli ol kvalifikita por via unua laboro se vi sukcesos plenumi la tutan kurson.
Создайте HTTP-сервер с нуля
La HTTP-protokolo estas unu el la ĉefaj protokoloj per kiuj enhavo vojaĝas en la Interreto. HTTP-serviloj estas uzataj por servi senmovan enhavon kiel HTML, CSS kaj JS.
Povi efektivigi la HTTP-protokolon de nulo pligrandigos vian scion pri kiel aferoj interagas.
Ekzemple, se vi uzas NodeJs, tiam vi scias, ke Express provizas HTTP-servilon.
Por referenco, vidu ĉu vi povas:
Agordu servilon sen uzi iujn ajn bibliotekojn
La servilo devas servi HTML, CSS kaj JS enhavon.
Efektivigi enkursigilon de nulo
Monitoru ŝanĝojn kaj ĝisdatigu la servilon
Se vi ne scias kial, uzu Iru lang kaj provu krei HTTP-servilon caddy el nenio.
Десктопное приложение для заметок
Ni ĉiuj prenas notojn, ĉu ne?
Ni kreu apon de notoj. La aplikaĵo bezonas konservi notojn kaj sinkronigi ilin kun la datumbazo. Konstruu indiĝenan apon uzante Electron, Swift aŭ kion ajn vi ŝatas kaj kio funkcias por via sistemo.
Bonvolu kombini ĉi tion kun la unua defio (tekstoredaktilo).
Kiel gratifiko, provu sinkronigi vian labortablan version kun la retversio.
Подкасты (клон Overcast)
Kiu ne aŭskultas podkastojn?
Kreu TTT-aplikaĵon kun la sekva funkcio:
Krei konton
Serĉu Podkastojn
Tatu kaj abonu podkastojn
Haltu kaj ludu, ŝanĝu rapidecon, antaŭen kaj malantaŭen funkciojn dum 30 sekundoj.
Provu uzi la iTunes API kiel deirpunkto. Se vi scias pri iuj aliaj rimedoj, bonvolu afiŝi en la komentoj.