FRONT-END (Angular)
16 წლიდან
ლექტორი - ნიკა კალანდაძე
TBC BANK - FRONT END დეველოპერი
კურსი განკუთვნილია სტუდენტებისთვის, რომლებიც 0-დან იწყებენ პროგრამირებას და სურთ შეისწავლონ თანამედროვე ვებ განვითარება. კურსი მოიცავს HTML-ს, CSS-ს, JavaScript-ს, TypeScript-ს და Angular-ს (Signals, Standalone), ასევე ვერსიონირების კონტროლს და AI ინსტრუმენტებს. თითოეული მოდული სრულდება პროექტის შექმნით და ცალკე პრეზენტაციის ლექციით.
რას მოგცემთ კურსი?
კურსის დასრულების შემდეგ თქვენ შეძლებთ:
შექმნათ სრულფუნქციური, responsive ვებ-გვერდები HTML და CSS გამოყენებით;
გამოიყენოთ JavaScript-ს ინტერაქტიული და დინამიური ვებ აპლიკაციების შესაქმნელად;
წარმართოთ TypeScript კოდი — ტიპებით, interfaces-ებით და generics-ებით;
ააშენოთ თანამედროვე Angular SPA-ებს Standalone Components-ით;
გამოიყენოთ Angular Signals-ს state management-ისთვის;
ეფექტურად გამოიყენოთ Git-ს ვერსიონირებისა და თანამშრომლობისთვის;
გამოიყენოთ AI ინსტრუმენტებს კოდის წერის და debugging-ის დასაჩქარებლად;
გქონდეთ პორტფოლიო 4 პრაქტიკული პროექტით;
მოამზადოთ საფუძველი Junior Front-End Developer-ის პოზიციისთვის;
კურსის განრიგი: ორშაბათი-ხუთშაბათი, 20:00 სთ;
კურსის დაწყება: აპრილი;
ფორმატი: Online (Google Meet);
ტექნოლოგიები:Git, HTML, CSS, JS, TypeScript, Angular
სერტიფიკატი: გაიცემა ცოდნის დამადასტურებელი სერტიფიკატი;
რეკომენდაცია: კურსის წარმატებით დახურვის შემთხვევაში გაიცემა რეკომენდაცია Linkdine-ზე;
36 შეხვედრა - 72 საათი - 18 კვირა - 1 600 ლარი;
ის რაც კურსის შესახებ უნდა იცოდე:
თითოეული მოდულის ბოლოს სტუდენტებს ექნებათ საშინაო დავალებები თეორიული
ცოდნის გასამყარებლად;
ფინალური პროექტები შეიძლება განხორციელდეს ინდივიდუალურად ან ჯგუფურად
(ლექტორის შეხედულებისამებრ);
პრეზენტაციის ლექციაზე მხოლოდ პრეზენტაცია — ახალი მასალა არ ისწავლება;
AI ინსტრუმენტების გამოყენება ხელს შეუწყობს სწავლას, მაგრამ არ უნდა ჩაანაცვლოს
ძირითადი კონცეფციების გაგებას;
TypeScript მოდული სასიცოცხლოდ მნიშვნელოვანია Angular-ამდე — არ გამოტოვოთ;
Signals-ი Angular 17+-ის თანამედროვე სტანდარტია — ახალ პროექტებში პრიორიტეტულია;
სილაბუსი შეიძლება განახლდეს კურსის მიმდინარეობისას ტექნოლოგიური
ცვლილებების გათვალისწინებით;
დამატებითი მასალები და რესურსები გაიცემა ლექციების დროს;
სილაბუსი
-
შეხვედრა # 1: შესავალი ვერსიონირებაში და Git საფუძვლები
რა არის ვერსიონირება და რატომ არის მნიშვნელოვანი
VS Code-ის დაყენება, Git ინსტალაცია და კონფიგურაცია
Chrome DevTools გაცნობა
Repository-ს შექმნა
ძირითადი ბრძანებები: git init, add, commit, status, log
Staging area-ს კონცეფცია
შეხვედრა 2: Git-ით მუშაობა და GitHub
Branches და merge
Remote repositories — GitHub/GitLab
git push, pull, clone
Merge conflicts-ის გადაჭრა
Pull requests და code review
პრაქტიკული სავარჯიშოები
-
შეხვედრა # 3: HTML საფუძვლები
HTML-ის სტრუქტურა და სინტაქსი
ძირითადი თეგები და ატრიბუტები
Headings, paragraphs, links
Semantic HTML — header, nav, main, section, article, footer
Chrome DevTools — Inspect
შეხვედრა # 4: ტექსტი, სიები, სურათები და მულტიმედია
Text formatting: strong, em, span
Lists: ul, ol, li
Images: img, alt, width/height
Audio და video ელემენტები
პრაქტიკა: ვებ-გვერდი მულტიმედიით
შეხვედრა 5: HTML ფორმები და Accessibility
Form ელემენტი და მისი ატრიბუტები
Input types (text, email, password, checkbox, radio, date)
Select, textarea, button, label
Form validation — required, pattern, min/max
Accessibility საფუძვლები: aria-label, tabindex, კონტრასტი
შეხვედრა # 6: ცხრილები, Meta, SEO და HTML5
Tables: table, tr, td, th, thead, tbody
Table accessibility
Meta tags და SEO საფუძვლები
Canvas და SVG — მარტივი შესავალი
HTML validation
შეხვედრა # 7: ფინალური პროექტი 1: სრული HTML ვებ-გვერდი
Semantic markup-ის გამოყენება
ფორმების ინტეგრაცია
Accessibility და validation
GitHub-ზე ატვირთვა
პროექტის განხილვა
შეხვედრა # 8: პრეზენტაცია
სტუდენტები წარადგენენ HTML პროექტებს• კოდის განხილვა და უკუკავშირი
კითხვა-პასუხი
-
შეხვედრა #9: CSS საფუძვლები + Box Model
CSS სინტაქსი, სელექტორები (tag, class, id, pseudo)
Colors, backgrounds, gradients
Text styling: font-family, font-size, font-weight, line-height
Box model: margin, padding, border, width/height
CSS-ის დაკავშირება (inline, internal, external)
შეხვედრა #10: Layout — Positioning და Display
Display property: block, inline, inline-block, none
Position: static, relative, absolute, fixed, sticky
Z-index, Float, Overflow
CSS Variables (Custom Properties)
შეხვედრა #11: Flexbox
Flex container და flex items
Main axis და cross axis
justify-content, align-items, align-content
flex-grow, flex-shrink, flex-basis, flex-wrap
პრაქტიკა: ნავბარი + ბარათების layout
შეხვედრა #12: CSS Grid
Grid container და grid items
grid-template-columns, rows, areas
fr ერთეული, repeat(), minmax(), auto-fit
Grid gap და alignment
Flexbox vs Grid — როდის რა გამოვიყენოთ
შეხვედრა #13: Responsive Design
Media queries
Mobile-first approach
Viewport meta tag
Responsive units: %, em, rem, vw, vh
Responsive images
AI ინსტრუმენტები CSS-ში (ChatGPT, Copilot, Claude)
შეხვედრა #14: Animations, Transitions და Advanced CSS
Transitions: property, duration, timing-function• Transforms: translate, rotate, scale, skew
Keyframe animations
Pseudo-classes და pseudo-elements (:hover, ::before, ::after)
Sass/SCSS საფუძვლები, Tailwind გაცნობა
შეხვედრა #15: ფინალური პროექტი 2: Responsive ვებ-გვერდი
სრული responsive ვებ-გვერდი
Flexbox + Grid layouts
Animations და transitions
GitHub Pages-ზე გამოქვეყნება
პროექტის განხილვა
შეხვედრა #16: პრეზენტაცია
სტუდენტები წარადგენენ CSS/Responsive პროექტებს
კოდის განხილვა და უკუკავშირი
კითხვა-პასუხი
-
შეხვედრა #17: JavaScript საფუძვლები
JavaScript-ის შესავალი და როლი
Variables: var, let, const
Data types: string, number, boolean, null, undefined, object
Operators — არითმეტიკული, ლოგიკური, შედარების
Console და debugging საფუძვლები
შეხვედრა #18: Control Flow და Functions
Conditionals: if/else, switch, ternary
Loops: for, while, do-while, for-of, for-in
Functions: declaration, expression, arrow functions
Parameters, return values, default parameters
Scope, hoisting
შეხვედრა #19: Arrays და Objects
Arrays: შექმნა, წვდომა, methods (push, pop, shift, unshift, splice)
Array iteration: forEach, map, filter, reduce, find
Objects: properties, methods, destructuring
Spread operator, rest parameters
JSON
შეხვედრა #20: DOM Manipulation და Events
DOM-ის კონცეფცია• Selecting elements: getElementById, querySelector, querySelectorAll
Modifying content, attributes, classList
Creating და removing elements
Event listeners, event object, event delegation
შეხვედრა #21: Advanced JavaScript
Closures
this keyword
Prototypes და inheritance
ES6+ features: template literals, optional chaining, nullish coalescing
Modules: import/export
Error handling: try/catch/finally
შეხვედრა #22: Asynchronous JavaScript
Synchronous vs Asynchronous
Callbacks და callback hell
Promises
Async/Await
Fetch API — GET, POST მოთხოვნები
localStorage და sessionStorage
შეხვედრა #23: JavaScript Best Practices და Debugging
Browser developer tools — სიღრმეში
Debugging techniques: breakpoints, watch expressions
Performance optimization საფუძვლები
Common mistakes და how to avoid them
შეხვედრა #24: ფინალური პროექტი 3: ინტერაქტიული Web Application
Dynamic ვებ აპლიკაციის შექმნა
DOM manipulation + Events
Fetch API integration
localStorage-ის გამოყენება
GitHub-ზე ატვირთვა
პროექტის განხილვა
შეხვედრა #25: პრეზენტაცია
სტუდენტები წარადგენენ JavaScript პროექტებს
კოდის განხილვა და უკუკავშირი
კითხვა-პასუხი
-
შეხვედრა #26: TypeScript საფუძვლები
რა არის TypeScript და რატომ გამოვიყენოთ
TypeScript-ის ინსტალაცია და კონფიგურაცია (tsconfig.json)
ძირითადი ტიპები: string, number, boolean, any, unknown, void, never
Arrays, Tuples, Enums
Type annotations და type inference
Union types, Intersection types, Type aliases
შეხვედრა #27: TypeScript — Interfaces, Classes, Generics
Interfaces — ობიექტების კონტრაქტი
Optional (?) და readonly properties
Classes: constructor, access modifiers (public, private, protected)
Inheritance (extends), implements
Generics — მოქნილი ტიპები (<T>)
TypeScript Angular-ში — კავშირი შემდეგ მოდულთან
-
შეხვედრა #28: Angular შესავალი + Standalone Components
რა არის Angular, SPA, Component-Based Architecture
Angular CLI: npm install -g @angular/cli
პირველი Angular პროექტი: ng new (standalone: true)
Angular პროექტის სტრუქტურა
Standalone Component — @Component, selector, template, styles
Template Syntax: interpolation {{ }}, property binding [ ]
Event binding ( ) — click, input
შეხვედრა #29: Angular Signals — თანამედროვე State Management
რა არის Signals და რატომ შეცვალა RxJS ბევრ სცენარში
signal() — სტეიტის შექმნა
computed() — დამოკიდებული მნიშვნელობები
effect() — გვერდითი ეფექტები
Signals vs RxJS BehaviorSubject — შედარება
Signals template-ში: {{ counter() }}
input() signal — Input Properties ახალი სინტაქსით
output() — Output Events ახალი სინტაქსით
შეხვედრა #30: Components + Directives + Pipes
Component Lifecycle Hooks: ngOnInit, ngOnDestroy, ngOnChanges• Component Communication — @Input(), @Output()
Built-in control flow: @if, @for, @switch (Angular 17+)
ngClass, ngStyle
Custom directives შექმნა
Built-in Pipes: date, currency, uppercase, async
Custom Pipes შექმნა
შეხვედრა #31: Services + Dependency Injection + HTTP
Services შექმნა: @Injectable({ providedIn: "root" })
Dependency Injection — კონცეფცია და გამოყენება
HttpClient — GET, POST, PUT, DELETE
Observables და RxJS საფუძვლები (subscribe, map, catchError)
Error handling HTTP request-ებში
შეხვედრა #32: Routing + Forms
Routing configuration — provideRouter()
RouterOutlet, RouterLink, RouterLinkActive
Route parameters (:id) და query parameters
Lazy loading — loadComponent()
Route guards: CanActivate
Reactive Forms: FormGroup, FormControl, FormBuilder
Built-in validators + custom validators
შეხვედრა #33: Angular Advanced Topics + Best Practices
State Management — Signals-ით სრული მაგალითი
Performance: ChangeDetectionStrategy.OnPush
Standalone Application bootstrap-ი
Testing საფუძვლები (unit tests, component tests)
Deployment — ng build, GitHub Pages / Netlify
Best practices და code organization
AI ინსტრუმენტები Angular-ში
შეხვედრა 34: ფინალური პროექტი 4: სრული Angular Application
Multiple standalone components + routing
Signals-ით state management
HTTP Service + backend API integration
Reactive forms + validation
Lazy loading
Build + Deployment
პროექტის განხილვა
შეხვედრა #35: პრეზენტაცია
სტუდენტები წარადგენე ნ Angular პროექტებს
კოდის განხილვა და უკუკავშირი