Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sprint#1 #26

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open

Sprint#1 #26

wants to merge 11 commits into from

Conversation

MakaevaElena
Copy link
Owner

Sprint 1: Repository Setup, Project Management, CommerceTools Integration, and Development Environment Configuration.

  1. Task: https://github.com/rolling-scopes-school/tasks/blob/master/tasks/eCommerce-Application/Sprints/Sprint%231.md

  2. Screenshot: -

  3. Deploy: -

  4. Done 05.08.2023 / Team deadline 05.08.2023 / Sprint deadline 07.08.2023

  5. Score: 150 / 150

Mentor Evaluation Criteria (150 points - Total):

1. Repository Setup (29 points)

  • (10 points) Create a GitHub repository for the project, complete with a README file, .gitignore, and necessary dependencies. RSS-ECOMM-1_01
  • (10 points) Set up a clear and organized folder structure within the repository, ensuring a maintainable and scalable codebase. RSS-ECOMM-1_02
  • (4 points) Invite all team members and the mentor as collaborators, ensuring everyone has access to contribute to the repository. RSS-ECOMM-1_03
  • (5 points) Create a pull request template with a clear structure for describing proposed changes and the rationale behind them. RSS-ECOMM-1_21

2. Task Board Setup (Trello, Jira, etc.) (14 points)

  • (6 points) Create a project task board using a project management tool (e.g., Trello or Jira), organizing tasks into lists or columns corresponding to their status (e.g., To Do, In Progress, Done). RSS-ECOMM-1_04
  • (5 points) Break down project tasks into smaller, manageable subtasks and assign them to team members, ensuring a clear delegation of responsibilities. RSS-ECOMM-1_05
  • (3 points) Share the task board with the team members and the mentor, ensuring everyone can track progress and update the status of their tasks. RSS-ECOMM-1_18

3. CommerceTools Project and API Client Setup (30 points) 💻

  • (15 points) Create the project in CommerceTools, setting up the currencies, languages, and other configurations in the Merchant Center. RSS-ECOMM-1_06
  • (15 points) Create the API client for CommerceTools, enabling access to the platform's APIs and managing permissions and scopes required for the project. RSS-ECOMM-1_07

4. Development Environment Configuration (43 points)

  • (10 points) Set up and configure a bundler (e.g., Webpack, Vite, Parcel, or other) for the project, supporting both development and production build modes. RSS-ECOMM-1_08
  • (5 points) Configure TypeScript to enforce strong typing and improve code quality throughout the project. RSS-ECOMM-1_09
  • (5 points) Set up ESLint to enforce consistent coding styles and identify potential issues in the codebase. RSS-ECOMM-1_10
  • (5 points) Configure Prettier to automatically format code, ensuring a consistent and readable code style. RSS-ECOMM-1_11
  • (8 points) Initialize Husky to manage Git hooks, automating tasks such as code formatting and linting checks during the commit process. RSS-ECOMM-1_12
  • (10 points) Install and configure Jest as the testing framework for the project, enabling comprehensive testing of code functionality. RSS-ECOMM-1_13

5. Development Scripts (15 points)

  • (5 points) Create a script for running ESLint across the codebase, enabling quick and efficient identification of coding style issues and potential errors. RSS-ECOMM-1_14
  • (5 points) Create a script for running Prettier across the codebase, simplifying code formatting and ensuring uniform code style. RSS-ECOMM-1_15
  • (5 points) Create a script for running Jest tests, streamlining the process of executing tests and generating reports on test outcomes. RSS-ECOMM-1_16

6. Comprehensive README (19 points)

  • (10 points) Add a thorough README file in the repository, describing the project, its purpose, and the technology stack used. RSS-ECOMM-1_17
  • (5 points) Clearly document all available scripts (e.g., for running ESLint, Prettier, and Jest tests) and their usage in the README file. RSS-ECOMM-1_19
  • (4 points) Provide detailed instructions for setting up and running the project locally, ensuring newcomers and contributors can quickly get started. RSS-ECOMM-1_20

surface74 and others added 6 commits August 3, 2023 00:32
* feat: add breakline

* docs: add team desription

* docs: add all available scripts

* docs: add instructions for running the project

* docs: remove duplicate run lint comand

* docs: change starts local server comand name
@MikAleinik
Copy link
Collaborator

В данном ПР не организована структура каталогов проекта в соответствии с требованием RSS-ECOMM-1_02.
Необходимо до начала работы над вторым спринтом определить укрупненную структуру проекта. Пусть даже в дальнейшем вы будете вносить в нее корректировки, но на данном этапе каждый участник должен понимать где и какие файлы должны располагаться.

MakaevaElena and others added 5 commits August 24, 2023 20:07
* Set up a clear and organized folder structure (#32)

* feat: add project base structure

* fix: change folder's name

* Desigh (#46)

* feat: add main.scss file for adding global variebles, function and mixins to another style.scss files

* feat: add basic colors

* feat: add fonts for headers h1, h2,...

* refactor: move comments to another line

* feat: add basic font

* refactor: pretier add // under coment /* karla-700 - latin */

* feat: add font for red headers

* feat: add helper.scss

* feat: add global css (in work)

* fix: remove unused file

* feat: add global.scss to sample-styles.ts

* refactor: change extension at fonts styles files from scss to css

* feat: add styles for headers

* feat: add styles for button

* feat: add styles (in work)

* feat: add styles (in work)

* refactor: change name from _colors to color

* feat: add styles for "button" component

* feat: add styles for "link" component

* fix: change color for link

* fix: change color brand-secondary

* feat: add global styles

* feat: add flex mixin

* refactor: remove lint inspections wrongs

* refactor: delete unnecessary file

* feat: add mixin border

* feat: add mixin border in helper

* fix: add color variebles in border-mixin

* refactor: change folder name 'variаbles'

* Router/sprint  close (#44)

* feat: adding router's files

* build: run Prettier in check mode while the git's pre-commit hook runs

* refactor: set types for the Router

* feat: add class Button

* feat: add class Footer & Header

* feat: add class NotFoundView

* refactor: change router

* fix: refine Router types

* fix: realize switch pages throw router

* feat: realize route's main functionality

* feat: add pages' dinamic import

* refactor: refine dinamic import

* build: change script pre-commit to use prettier --check

* refactor: exclude lint-pass-check comments

* feat: add util createTagElement (#47)

* Login authentication/sprint 2 (#48)

* input validation for login page (#34)

* feat: add input validation for login page

* refactor: change styles to BEM, add constant for password element

* feat: install sdk and add BuildClient

* fix: re-install sdk

* feat: add login,cjeck email existing ,check filled form before submit

* feat: add client-api for server request

* feat: add console customer info

* feat: add anonimous and password flows

* feat: separate anonimApi & userApi

* fix: refresh after conflict

* fix: min change for commit

* Header buttons logout/sprint 2 (#49)

* feat: add observer, add logout button

* feat: add redirect to index after login

* refactor: separate submitLogin

* feat: add returnCustomerById

* feat: redirect to login_page afte logout

* feat: Observer as Singleton

* feat: magic to constants

* api up to src (#50)

* feat: add dir api to src, add createCustomer

* feat: add reg-api

* fix: rename class to RegApi

* fix: replace dir api to src

* fix: anonimClient in with-anonimous-flow, logout work

* build: change Linter's config (#51)

* Login page media/sprint 2 (#56)

* feat: add media for 700 , 500 for login-page

* refactor: create logout_button using LinkButton

* fix: change selector for input, border, comments

* Registration page/sprint 2 (#52)

* feat: add input creator

* feat: add input creator in registration-view.ts

* feat: add input creator

* feat: add two inputs in registration-view

* fix: value of $color-text-primary

* feat: add styles for inputs

* feat: add adaptability for styles input

* feat: add input creator

* feat: add global styles

* refactor: delete an unnecessary file

* feat: add Enums with input-values for input Params

* fix: change border width in input

* fix: width and height of inputs

* feat: add enum with events

* feat: add callback and event parametrs to creator input

* refactor: change folder for input values

* feat: change styles of inputs

* feat: add date and names inputs

* feat: add all needs inputs

* feat: add input`s Enum

* feat: add function getInputValue

* feat: add inputs groups

* feat: add error messages with submit Event

* feat: add tittles and patterns fot postal

* feat: add event blur

* feat: add button types

* feat: add event 'change'

* fix: remove duplicate values

* feat: add in params name of event for listeners

* feat: add validity for countries

* feat: add countries postal groups enum

* feat: add postal-paterns and postal-tittles

* feat: add postal validation

* fix: change message of postal

* feat: add passwords checking

* feat: add postal messages changing

* feat: add function for disabling inputs

* feat: add function for changing default inputs

* feat: add styles for inputs messages

* feat: add styles and title

* fix: anonimouse_flow, anonymousId error (#57)

* Page404/sprint 2 (#59)

* feat: add page 404 content

* fix: corrent z-index for header & footer

* Index page/sprint 2 (#61)

* feat: add page 404 content

* fix: corrent z-index for header & footer

* feat: add temp image to index page

* refactor: refine image position

* Redirect logged users/sprint 2 (#64)

* feat: not possible to link to login/registration for logged users

* feat: disable link/registration button for logged users

* fix: undisable buttons login/registration

* fix: visible but disabled buttons for logged users

* Registration page authentication/sprint 2 (#62)

* feat: add input creator

* feat: add input creator in registration-view.ts

* feat: add input creator

* feat: add two inputs in registration-view

* fix: value of $color-text-primary

* feat: add styles for inputs

* feat: add adaptability for styles input

* feat: add input creator

* feat: add global styles

* refactor: delete an unnecessary file

* feat: add Enums with input-values for input Params

* fix: change border width in input

* fix: width and height of inputs

* feat: add enum with events

* feat: add callback and event parametrs to creator input

* refactor: change folder for input values

* feat: change styles of inputs

* feat: add date and names inputs

* feat: add all needs inputs

* feat: add input`s Enum

* feat: add function getInputValue

* feat: add inputs groups

* feat: add error messages with submit Event

* feat: add tittles and patterns fot postal

* feat: add event blur

* feat: add button types

* feat: add event 'change'

* fix: remove duplicate values

* feat: add in params name of event for listeners

* feat: add validity for countries

* feat: add countries postal groups enum

* feat: add postal-paterns and postal-tittles

* feat: add postal validation

* fix: change message of postal

* feat: add passwords checking

* feat: add postal messages changing

* feat: add function for disabling inputs

* feat: add function for changing default inputs

* feat: add styles for inputs messages

* feat: add styles and title

* feat: add changing default state of adresses

* feat: add countries and codes to themes

* feat: add removing billing adress

* feat: add registration

* feat: add button to login

* feat: merge sprint_2

* Tests/sprint 2 (#65)

* test: add API's tests

* test: add tests for classes App & Favicon & Router & RouterHandler

* test: fix tests to start project

* feat: add button on page 404 (#66)

* fix: turn off 2 tests (#68)

* State managment registration/sprint 2 (#69)

* feat: add login after registration

* feat: remove ternare operator

* Logout redirect to main/sprint 2 (#67)

* feat: change path, after logout to main

* fix: change anonymousId generation

* style: fix lint error (#70)

* Add links on main page (#73)

* feat: add links on main page

* refactor: go to main page after logout

* refactor: add enums with status code and delays (#71)

* refactor: add enums with status code and delays

* fix: add number 10 in number generator to avoid key errors

* style: refine CSS for buttons & registration page

* fix: switch to main page after login

* fix: add pattern for email (#76)

* fix: change user's check flow (#77)

* Registration view mail pattern/sprint 2 (#78)

* fix: add pattern for email

* fix: patter for email

* fix: lint error (#79)

* refactor: refine registration page (#80)

* fix: input validation & header adaptive (#81)

* fix: refine email validation (#82)

* fix: fix doubling header's buttons (#83)

* fix: remove repeate pasword (#84)

* refactor: for input fields change 'change' event to 'input' (#85)

* feat: remove repeate password and add validation (#86)

* feat: remove repeate password and add validation

* fix: add changing of messages in repeate_password

---------

Co-authored-by: surface74 <52540855+surface74@users.noreply.github.com>
Co-authored-by: Vladimir Sobolev <122258118+VladimirSobbolev@users.noreply.github.com>
Co-authored-by: surface74 <warwhisper@tut.by>
…Page Implementation (#135)

* Refine router/sprint 3 (#109)

* refactor: realize direct import & call <Page>View without separate call getView()

* feat: change router & add classes CatalogView & ProductView

* refactor: change class ProductView to simply use

* feat: add class ProfileView

* Fetch and Display Product Details using Commercetools API /sprint 3 (#112)

* feat: add product page

* fix: merge product_page with routing

* fix: add price and currency

* fix: add productId

* fix: append to wrapper, ITEM_ID

* fix: remove comment ITEM_ID

* fix: redirect on main page while URL doesn't have # (#111)

* fix: if price is missing (#113)

* feat: add product page

* fix: merge product_page with routing

* fix: add price and currency

* fix: add productId

* fix: append to wrapper, ITEM_ID

* fix: remove comment ITEM_ID

* fix: if price not exist

* feat: add error if game not found

* fix: price to usd

* feat: install swiper

* setuping: don't work Swiper

* feat: add classes to display popup messages

* fix: swiper with setTimeout, temporary

* Display user information/sprint 3 (#116)

* feat: add class ProfileView

* feat: add function getCustomer

* feat: add type Addres

* feat: add type UserData

* feat: add functions for getting userData from server

* feat: add email adreess in localStorage

* feat: add email adreess in localStorage

* feat: in progress

* fix: add functuion for adding label

* fix: add styles for label

* feat: add user fields props

* feat: add style for field-view

* feat: add style for buttons

* feat: add style for field-group

* feat: add style for field-view

* feat: add text-content

* fix: change input city and street order

* feat: adding userdata values in progress

* feat: add adaptabillity styles for fields-groups

* feat: add default adding for adresses

* feat: add styles

* feat: add catch errors

* feat: add listeners for login logout

* fix: remove console.log

* fix: width group container

---------

Co-authored-by: surface74 <warwhisper@tut.by>

* add Product api/sprint 3 (#117)

* feat: add product-api

* fix: delete fetch from anonimouse flow

* fix: swiper, change webpack.config.json

* Header buttons/sprint 3 (#118)

* refactor: connect Observer to header's buttons (in progress)

* feat: connect Observer to header's buttons

* fix: correct webconfig

* feat: add class shared/ProductCard

* fix: back button User & change webconfig

* Edit mode user profile/sprint 3 (#120)

* refactor: put the creation of options into a separate class

* refactor: make attribute name optional

* refactor: put the creation of input parameters into a separate class

* fix: change handler in getCountryParams of billingCountry

* fix: linter warning

* refactor: remove property group from input creator props

* fix: size for product section, repeating, prices

* feat: add discount price

* fix: fix style for messages (#121)

* Edit mode user profile/sprint 3 (#123)

* refactor: put the creation of options into a separate class

* refactor: make attribute name optional

* refactor: put the creation of input parameters into a separate class

* fix: change handler in getCountryParams of billingCountry

* fix: linter warning

* refactor: remove property group from input creator props

* feat: create redaction-button

* feat: add functions set and remove disabled

* feat: add buttons cancel and confirm

* feat: add functions for exit from redaction mode

* feat: add functions for cancel changing

* fix: fix double navigation (#124)

* Update personal info/sprint 3 (#126)

* refactor: add function for getting countryName from class country-options

* feat: add button-creator

* fix: change button -creator

* refactor: change placeholder type

* refactor: change user-field props

* fix: change value in redactionModeHandler

* feat: change validation messages creating

* feat: create class for creating main user`s fields

* feat: make params in geters optional

* feat: create class for creating adress groups

* feat: change creating of groups with user Data

* fix: adaptability of user-field

* feat: change name in countries group fields

* refactor: delete unused function create title

* feat: add actions names

* feat: add actions names

* feat: add validation message after sudmiting changing

* feat: add validation message after sudmiting changing

* feat: change z-index from 1 to 2

* feat: change position of password-chenger

* Enlarged Image Modal with Slider /sprint 3 (#125)

* fix: login_page styles

* fix: add category

* fix: double cards in wrapper

* feat: add class Modal

* feat: add and init productModalSwiper

* feat: sizes for modal window

* fix: add clear content for wrapper

* fix: actual images after change link

* fix: init Swiper after showModal

* refactor: login_page styles

* feat: work in progress

* Add product cards in Catalog (#127)

* feat: create class ProductCard (in progress)

* feat: add cards in catalog view

* feat: add field newPassword

* fix: change opacity background

* feat: add password repeater

* feat: add confirm old password-field

* feat: add butons confirm and cancel

* fix: adaptability of wrap

* feat: add the ability to enter/exit the password editing mode

* feat: add validation form before response

* feat: add response for changing password

* fix: linter`a warnings

* fix: change discounts for producet, discount price hide, price crossed (#129)

* Manage addresses/sprint 3 (#130)

* feat: adresses in progress

* feat: create adress creator

* feat: add respons for adding countries

* feat: add changig profile-view after adress creating

* feat: add selecting default adress with creating

* feat: add redaction of fields adressess

* feat: add validation before redaction of fields adressess

* feat: add buttons to change the state of addresses

* fix: change configureButtons

* fix: add response for adding  DefaulShipping

* fix: add response for adding shipping and billing adressess

* Catalog/sprint 3 (#131)

* feat: create class ProductCard (in progress)

* feat: add cards in catalog view

* refactor: remove separate queries for product cards

* Fix product page/sprint 3 (#132)

* fix: find attributes

* feat: media for card till 390px

* feat: media for modal

* Manage addresses/sprint 3 (#133)

* feat: adresses in progress

* feat: create adress creator

* feat: add respons for adding countries

* feat: add changig profile-view after adress creating

* feat: add selecting default adress with creating

* feat: add redaction of fields adressess

* feat: add validation before redaction of fields adressess

* feat: add buttons to change the state of addresses

* fix: change configureButtons

* fix: add response for adding  DefaulShipping

* fix: add response for adding shipping and billing adressess

* fix: remove duplication of addresses if they are spiking and billing at the same time

* Filtering/sprint_3 (#134)

* feat: create class ProductCard (in progress)

* feat: add cards in catalog view

* refactor: remove separate queries for product cards

* feat: add classes Filter, FilterHeaderView, FilterTag

* feat: realize filtering (in progress)

* fix: add cathching The anonymousId is already in use

* Sorting (#137)

* feat: add class SortView

* feat: realize sorting

* Search/sprint 3 (#138)

* fix: fix The anonymousId in use (in progress)

* feat: realize search

* chore: user stay login after reload

* Fix anonymousId (#139)

* feat: add class Guid

* fix: change random anonim Id

* Change eCommence endpoint to query products (#140)

* feat: refine search by eCommerce(in progress)

* feat: refine getting product (in progress)

* refactor: change products quering endpoint to ProductProjection

* feat: add filter for price

* Add Cart page & fix issue with unregistered users (#141)

* feat: add cart button && template class for CartView (in progress)

* fix: fix route to login page instead of profile page for unregistered users

* fix: display all platforms for product (#142)

---------

Co-authored-by: surface74 <52540855+surface74@users.noreply.github.com>
Co-authored-by: surface74 <warwhisper@tut.by>
Co-authored-by: Vladimir Sobolev <122258118+VladimirSobbolev@users.noreply.github.com>
Co-authored-by: VladimirSobbolev <vladimir@sobbolev.ru>
…mplementation (#185)

* Cart & About Us Buttons (#147)

* feat: add class ImageButton

* refactor: refine class HeaderView

* Cart page/sprint 4 (#148)

* feat: render item in cart

* feat: create anonime cart, add to anonim cart

* fix: element for price

* fix: update from sprint_4

* refactor: change returnCustomerByid => getCustomerByID

* feractor: chenge cart-view styles, router.navigate

* feat: add button removeFromCart

* Add +/- button to product card (#150)

* feat: add Add to cart/ Remove from cart buttons to product card in Catalog view

* style: refine cart-button style

* Remove from cart/sprint 4 (#152)

* feat: remove item from cart

* feat: rerender cart after delete item

* fix: deleting item element from cart

* feat: change button status -  in progress

* refactor: use enum fo LS

* refactor: replace createCartItem to class CartItem

* feat: render minus/plus buttons for item in cart

* Add pagination (#154)

* feat: add pagination to Catalog page

* feat: add pagination to search result

* feat: render summ for item from api

* Add top pagination & slider & spinner  (#156)

* feat: add extra pagination on top Catalog page

* feat: add popup

* fix: remove popup from Catalog page

* feat: connect slider popup on Catalog page

* feat: add class Spinner & add it to Catalog view

* Total cost for cart/sprint 4 (#170)

* feat: render total_cost and get value from api

* feat: update total cost from api

* fix: total price in cart. in porgress

* fix: use discounted price in cart

* fix: render totalCost after render Items

* fix: update totalCost -  in progress

* feat: add buttonContainer

* fix: recalculate total Cost

* feat: use debounce for plus minus item

* feat: add observer notify UPDATE_CART

* fix: change button go add/remove for 1 click

* fix: replace creating cart when open the Product_Card

* About us/sprint 4 (#171)

* feat: add title

* feat: logo in progress

* feat: add RSLOGO with link

* refactor: add function createFunnyString in place of createName() and createSubName()

* feat: create cards with img from repo

* feat: create name in progress

* feat: add message to empty cart (#176)

* feat: add message to empty cart

* fix: text in empty cart

* Refactor APIs (#174)

* refactor: combine APIes (in progress)

* refactor: combine all 3 API to singleton class CommonApi

* fix: look for invalid token (in progress)

* fix: fix invalid token (in progress)

* fix: correct invalid token (in progress)

* refactor: combine API-es to single object

* refactor: add import Template

---------

Co-authored-by: Makaeva Elena <87429007+MakaevaElena@users.noreply.github.com>

* fix: conflict api-refactor (#177)

* Fix check is login in create cart/sprint 4 (#178)

* fix: check isLogin in createCart/sprint_4

* feat: add check on cart exist in carr page

* feat: add state buttons Add/Remove depending items in anonim cart

* feat: realize add product to cart for anonim from catalog view

* feat: realize add/remove product from catalog & add update state for cards

* refactor: extract methods

* Realize add/remove product to cart (just for anonim) (#179)

* feat: add state buttons Add/Remove depending items in anonim cart

* feat: realize add product to cart for anonim from catalog view

* feat: realize add/remove product from catalog & add update state for cards

* refactor: extract methods

* About us/sprint 4 (#180)

* feat: add title

* feat: logo in progress

* feat: add RSLOGO with link

* refactor: add function createFunnyString in place of createName() and createSubName()

* feat: create cards with img from repo

* feat: create name in progress

* refactor: add magicString class

* feat: create figure with figcaption

* feat: add fullName in card

* feat: add role, contributions, biography

* feat: git hub link in progress

* feat: git hub link

* feat: finish cards

* feat: add intro

* feat: add collaboration

* Update siarhei-data.ts

* Update siarhei-data.ts

---------

Co-authored-by: surface74 <52540855+surface74@users.noreply.github.com>

* feat: realize Add to cart/Remove from cart functionality from Catalog view totaly by MyCart endpoint

* refactor: remove unnessary methods

* fix: correct text

* Promo code/sprint 4 (#181)

* feat: render promo field

* feat: add promo-code FIRST-ORDER 15% from eCommerce and recalculate totalCost

* feat: render promo code om index page

* fix: count discount price for item element

* fix: show item summ before promo

* fix: render items in cart after header

* feat: disable promo apply if yet applied

* feat: delete anonimCardID afte logout

* style: refine formating code

* refactor: rename getCustomer to loginCustomer

* feat: add button for clear cart

* refactor: change getCartByCartID to getActiveCart

* fix: return getCartByCartID in createToCartButton

* feat: Issue RSS-ECOMM-4_17: Display Original and Discounted Prices After Promo Code Application

* fix: clear cart bu using delete cart

* fix: deleting cart and actual catalog +-

* fix: review fixes

* feat: promo input validation

* feat: add quantity of product on the cart button

* Merge anonimous/sprint 4 (#186)

* feat: merge carts - in progress

* fix: merge, createCart change to createCustomerCart

* style: remove comments of code

* fix: indicator of quantity on cart icon doesn't change

* refactor: change messages position to left side

* style: remove commented code from scss-files

* refactor: refine styles in product-view

* fix: fix popup position in Catalog view

* style: refine code style

* fix: check correct promo before apply

* fix: Elena's biography

* refactor: Vladimir's contributions

* fix: name in about us

---------

Co-authored-by: surface74 <52540855+surface74@users.noreply.github.com>
Co-authored-by: Vladimir Sobolev <122258118+VladimirSobbolev@users.noreply.github.com>
Co-authored-by: surface74 <warwhisper@tut.by>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants