---
title: OLA Veronika
tags: OLA, Veronika-Projects
description: View the slide with "Slide Mode".
---
# შედეგები:
| პროექტი | ხარვეზი | სტატუსი |
| ------------------------ |:-------:|:------------------:|
| TODO-[Classes] | - | :heavy_check_mark: |
| TODO-[Hooks] | 1 | :heavy_check_mark: |
| Pop-up-[Outside Click] | 0 | :heavy_check_mark: |
| Context-menu | 2 | :heavy_check_mark: |
| Imitated-twiter-[GroupPr]| - | - |
| Portfolio | 0 | :heavy_check_mark: |
| - | - | - |
# Project 1:
პროექტის პირობა: [Meeting-10/homework](https://github.com/DanielBarbakadze/Advanced-JS-and-React-Basics/tree/master/Meeting-10/homework)
შესრულებული დავალება: [ol-academy-react-todo](https://github.com/VeronikaMi/OL-React-course/tree/main/todo-app/ol-academy-react-todo)
---
## რჩევები :bulb:
1. ~~გთხოვ გამოიყენო [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) რომელიც დაგილაგებს კოდს და შენც მიეჩვევი მუდმივად ერთნაირად წერას. თუ რამე არ მოგეწონება კონფიგურირებაც შესაძლებელია~~
2. ~~[`onCheck`](https://github.com/VeronikaMi/OL-React-course/blob/main/todo-app/ol-academy-react-todo/src/components/Todo.jsx#L82) ფუნქცია არ მუშაობს სწორად. უფრო კონკრეტულად, შენ იღებ იტერაციის ინდექსს და არა ტასკის თანრიგობას. ამ ორს შორის განსხვავება საწყისად არ არის, თუმცა თანრიგობის შეცვლის შემდეგ სრული ქაოსი ხდება. ნაცვლად უნდა გადასცე todo item ის მიმდინარე id ან სახელი (ან ნებისმიერი რამ რითიც გამოარჩევ სხვისგან) და შემდგომ მაგ todo ს ობიექტში შეინახო ამჟამად რა ინდექსი უკავია. ან ყოველ ჯერზე მასივის გადალაგება გააკეთო, რომელიც მეტად `ძვირი` ოპერაციაა, თუმცა ესეც იმუშავებს~~
3. ~~[`moveUp` & `moveDown`](https://github.com/VeronikaMi/OL-React-course/blob/main/todo-app/ol-academy-react-todo/src/components/Todo.jsx#L95-L109) ზეც იგივე პრობლემაა~~
4. ~~რა პრობლემას წააწყდი რის გამოც გადაწყვიტე გარეთ გამოგეტანა `Task.jsx` ის კონტენტი, აღარ გამოგეყენებინა ცალკე კომპონენტად და [დაგეკომენტარებინა](https://github.com/VeronikaMi/OL-React-course/blob/main/todo-app/ol-academy-react-todo/src/components/Todo.jsx#L201)?~~
5. ~~არ გაქვს გათვალისწინებული დასრულების ფუნქციონალი. როგორც მივხვდი მონიშნულში აგერია. ანუ ერთი ერის პტიჩკა და სრულიად დამოუკიდებელი ფუნქციონალია, და ასევე არის Done რომელიც მიუთითებს დასრულებულია თუ არა, მაშინ როცა პტიჩკა უბრალოდ მონიშნულია თუ არა იმას მიუთითებს~~
6. ~~კარგი იქნება თუ პროექტს გაწმენდ ზედმეტი ფაილებისგან რომელსაც არ იყენებ~~
7. ~~პროექტი გაქვს არასწორად შექმნილი. უნდა შეგექმნა ცალკე რეპოზიტორიად [იხილე დეტალურად](https://github.com/DanielBarbakadze/Advanced-JS-and-React-Basics/tree/master/Meeting-10/homework#uploading-my-homework)~~
### მეორედ გასწორების განახლებები:
1. ~~როცა კომპონენტიდან მხოლოდ ერთი`export` გაქვს მიღებული კონვენციაა რომ ეს იყოს `default export`~~
2. ~~scss ფაილები გაქვს და ცდილობ `css` ის ჩაიმპორტებას რაც ერორებს ისვრის~~
3. ~~`/node_modules` უნდა იყოს `.gitignore` ში და არ უნდა ატვირთო რეპოში.~~
4. ~~`npm install node-sass` გჭირდება, რომელიც `package.json`-ში ჩაამატებს და ასევე დააინსტალირებს `scss` ფაილების დასაკომპილირებელ ფექიჯს.~~
5. ~~`moveDown` და `moveUp` იზიარებს მსგავს ლოგიკებს მცირე განსხვავებით, ამიტომ გააერთიანი ერთ ფუნქციაში დამატებითი პარამეტრით, რომელიც იქნება განმასხვავებელი ზემოთ აწიოს თუ ქვემოთ~~
6. ~~ისევ იყენებ იტერაციის id ს და არა item ის. ასევე შექმნილი გაქვს state სახელად id და დაბლა იგივე id სახელს იყენებ იტერაციის ცვლადისთვის. გადაარქვი სახელები რომ რამე არალოგიკური შედეგი არ გამოიწვიოს.~~
### მესამედ გასწორების განახლებები:
1. moveUp და moveDown არ უნდა მუშაობდეს პირველ და ბოლო ემენეტებზე.
---
## შეფასება
:heavy_check_mark: წაშლა / დამატების ფუნქციონალი
:heavy_check_mark: მონიშნულების / დასრულებულების წაშლა
:heavy_check_mark: რედაქტირება
:heavy_check_mark: გადაადგილება
:heavy_check_mark: ერორების მართვა
პირობები ნაწილობრივ შესრულებულია, საჭიროებს პრობლემების გასწორებას :warning:
---
## შეჯამება :muscle: :tada:
ერთიანობაში ეტყობა რომ ნაწვალებია, ძირითადად შესრულებულია ყველა პირობა. რა რჩევებიც დაგიწერე გამოასწორე და ეგარი :+1:
პ.ს დიზაინი მომეწონა, ყოჩაღ :wink:
---
# Project 2 (Pop-up):
პროექტის პირობა: [Meeting-13/homework-1](https://github.com/DanielBarbakadze/Advanced-JS-and-React-Basics/tree/master/Meeting-13/homework#homework-1-popup--handleoutsideclick)
შესრულებული დავალება: [ol-academy-popup-with-handling-outside-click](https://github.com/VeronikaMi/ol-academy-popup-with-handling-outside-click)
---
## რჩევები :bulb:
1. ~~`e` ცვლადი კონვენციის მიხედვით იძლევა ვარაუდს რომ უნდა იღებდეს ივენთ პარამეტრს, რეალურად გადმოსცემ რაღაც `boolean` ს, შეცვალე ცვლადის სახელი~~
```jsx
const closePopup = (e) => {
setShowPopup(e);
};
```
2. ~~`popup.jsx` => `PopUp.jsx` ან `Popup.jsx` რეაქტის ფაილების სახელები უნდა იყოს `PascalCase` ში დაწერილი (კონვენციის ნაწილია, არა სავალდებულო, მაგრამ მიღებული)~~
3. ~~პროექტი უნდა იყოს რეპოზიტორიის მთავარ ფოლდერში და არა შიგნით დამატებით ერთ ფოლდერში~~
---
## შეფასება
ყველა პირობა შესრულებულია :100: :heavy_check_mark:
---
# Project 3 (Context-Menu):
პროექტის პირობა: [Meeting-13/homework-2](https://github.com/DanielBarbakadze/Advanced-JS-and-React-Basics/tree/master/Meeting-13/homework#homework-2-context-menu)
შესრულებული დავალება: [ol-academy-context-menu](https://github.com/VeronikaMi/ol-academy-context-menu)
---
## რჩევები :bulb:
1. ~~პროექტი უნდა იყოს რეპოზიტორიის მთავარ ფოლდერში და არა შიგნით დამატებით ერთ ფოლდერში~~
2. ~~Submenu უნდა იყოს ყველა list-item სთვის ინდივიდუალური და არა საერთო რომელიც მის გარეთაა. იდეა არის ის, რომ დამოუკიდებელი `re-usable` კომპონენტი შევქმნათ და არა უბრალოდ ვიზუალურად მოთხოვნილი ფუნქციონალი შესრულდეს. ორი პრინციპულად სხვადასხვაა.~~
---
## შეფასება
ყველა პირობა შესრულებულია :100: :heavy_check_mark:
---
# Project 4 (Portfolio):
პროექტის პირობა: [Meeting-15/homework](https://github.com/DanielBarbakadze/Advanced-JS-and-React-Basics/tree/master/Meeting-15)
შესრულებული დავალება: [ol-academy-portfolio](https://github.com/VeronikaMi/ola-portfolio)
---
## რჩევები :bulb:
1. საკუთარ პორტფოლიოში lorem ipsum ის მაგივრად ნამდვილი ინფო ბევრად უფრო ინფორმაციული იქნებოდა.
---
## შეფასება
ყველა პირობა შესრულებულია :100: :heavy_check_mark:
---