Professional Documents
Culture Documents
Designer Wall - Latest
Designer Wall - Latest
Designer Wall - Latest
Technologies to use:
React JS
Redux Saga
D3js & KonvaJs (Please suggest if you have any other way)
Designer Wall:
Wall Canvas: Grid
1. This the grid layout area with 15 equal sized columns (Fixed number) that occupied
the entire width of the section. Rows should be dynamic. Initial rows should be 15
and they will be dynamically increase upon adding the items to the wall. There
should always be maintained 15 unused rows. (Explained in detail in below points)
2. The grid cells are squares (use same height as the width of the column).
3. User can drag items from the instances section to the any of the grid cell.
Grid Rules:
4. When an item is added to any of the grid cell on the Designer Wall, the grid rows will
be appended to the wall to maintain 15 unused rows. Please find the calculation of
adding grid rows below
a. If an icon/item is added to the row-1 (can be any column in that row), 1 more
row will be added to maintain 15 available rows. That means 21 st row will be
added.
b. If the icon/item is added to the row-10 then 10 rows to be added at the
bottom of the grid.
c. If a new Item is added to the row that is not unused row then no rows will be
added.
d. It always look at the last occupied row and maintain 15 more rows
underneath the last occupied row.
e. Similarly, it should remove the rows if all the items from last occupied row
are removed. And check with the next last occupied row.
Gestures:
5. The items are also draggable and droppable within the wall.
6. The items can be deleted by selecting the item.
7. The above 2 points are applicable on Multiple items. Multiple items can be selected,
and they can be moved across the wall also they can be deleted.
8. While dropping the items on any cell that is already occupied should not be allowed
to drop.
9. If an item is added to a grid cell on the wall, then the adjacent cells should become
disabled for dropping.
Nodes:
OnHover As
a. Join:
i. Once click on this icon this icon will stick to the mouse pointer (follow
the mouse pointer) and follows until left-click on the desired item to
join the data.
ii. Once clicked on the desired item, a new Join item will stick to the
mouse (follow the mouse pointer) allowing user to place the new item
at the empty grid cell on the wall.
iii. This item contains two input connectors and an output connectors.
Each input connector is connected to one parent item with a
Colours:
1. All the icons/connecters/links are SVGs.
2. We are using HSL colour values to assign the colour value to any icon.
a. Hue: This is the actual colour value. Hue is a degree on the colour wheel from
00 to 3600. 0 is red, 120 is green, 240 is blue.
b. Saturation: Saturation is a percentage value; 0% means a shade of grey and
100% is the full colour.
c. Lightness: Lightness is also a percentage. 0% means black and 100% is white.
3. By considering this information, we need to assign a random angle for H value, a
random percentage value for S and a fixed calculated percentage value for L (Last 2
digits of [L value of background colour + 50] )
a. H: A random angle
b. S: A random percentage
c. L: Last 2 digits of [L value of background colour + 50]
4. All these colour values are applicable to the source items.
5. Colour for the derived/child items are inherited from their immediate parents as the
below calculation
a. H: H value of Parent item1 + H value of Parent item2 + a random number 0 –
360.
b. S: S value of Parent item1 + S value of Parent item2 + a random number 0 –
100.
c. L: no change (L value of any one of the parent items)
6. These colours are applicable to the Item Icon, output connecter, Link and the input
connecter of its child item (If any)