Giter VIP home page Giter VIP logo

clearboard's People

Contributors

tomekstaszkiewicz avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

clearboard's Issues

Selecting card

Add logic for selecting cards


Requirements

  1. Use the selection indicator component when a card is clicked
  2. Store the selected card in mobX store

Selection indicator

Create a React component - with tests and stories for the selection indicator component.


Design

Screenshot 2021-05-26 at 12 05 34


Requirements

  1. The indicator wraps all the children
  2. The indicator receives a callback, that should be called when one of the corner buttons is clicked

LeftSidePanel component

Create a React component - with tests and stories for the left side panel component.


Design

Selection_060
Selection_064

Requirements

  1. The component receives a list of objects. Object shape is:
type LeftSidePanelItem = {
    onClick?: () => void;
    icon: React.ComponentType;
    hoverElement: React.ComponentType;
}
  1. The panel's position is close to the left edge of the screen(always)
  2. If onClick is defined then clicking on element triggers this action
  3. When hovering over element, the additional panel shows up(and hides on mouse leave)

Handle authentication

Handle authentication


Requirements

  1. Use existing login and register components
  2. Use Axios to send a request to the backend
  3. Store received token in localStorage
  4. Store information about auth in mobX store
  5. Create unit tests - use MSW(Mock Service Worker)

Login and register design

Create a React component - with tests and stories for the register and login components.


Design

Screenshot 2021-05-26 at 14 04 31


Requirements

  1. Login has redirect link to register
  2. In this task we create only the UI part, no integration with backend yet

Floating menu for card

Create a React component - with tests and stories for the floating menu component


Design

Selection_065


Requirements

  1. Floating menu is moving with the card
  2. Floating menu receives a list of buttons
  3. Floating menu is visible only when a card is selected

Moving card

Create a React component for the board and handle moving card


Requirements

  1. Create a board container
  2. Board should render a list of cards(from store)
  3. Add logic to move card inside the board container(event listeners, update x and y value of card)
  4. The moving logic should be outside of the card
  5. Card is a dumb component, that has only some display logic
  6. The card will probably need to forwardRef

Create zoom component

Create a React component - with tests and stories for the zoom component.


Design

Selection_062


Requirements

  1. The user is able to add and delete the zoom value with buttons.
  2. The user is able to input a value from keyboard
  3. Min value is 50, max value is 200

Card

Create a React component - with tests and stories for the card component.


Design

Screenshot 2021-05-26 at 13 10 18


Requirements

  1. The card receives following props:
type CardProps = {
  author: string;
  text: string;
  numberOfVotes: number;
  coordinates: { x: number; y: number; };
  onVoteUp: () => void;
  onVoteDown: () => void;
  color: string;
  size: { width: number; height: number; };
}
  1. The card is a simple div, that has the position set to absolute and is moved based on x and y from props. The div's size is based on size props.
  2. The color from props defines the background color of the card

Adding cards

Create logic for storing cards


Requirements

  1. Add an icon to the left side panel
  2. Store list of cards in mobX store(for now we do not want to integrate with the backend)
  3. The icon in the left side panel should create a new card on click - create some default values
  4. The card is pushed to the list of cards in the store

Board view

Create board view.

Screenshot 2021-05-27 at 12 44 56

Requirements:

  1. The board receives boardId
  2. The board displays a list of cards passed as an array
  3. For now the board is full size(except for the go back button
  4. The go back button redirects to dashboard(need to create some basic dashboard view

Clock component

Create a React component - with tests and stories for the clock component.


Design

Selection_068


Requirements

  1. The user is able to add and delete seconds. The increment value equals 10.
  2. The user is not able to set a negative value
  3. Seconds are converted to minutes when > 60.

AppBar

Create a React component - with tests and stories for the App bar component.


Design

Screenshot 2021-05-26 at 13 03 41

Screenshot 2021-05-26 at 13 04 22


Requirements

  1. The component is always on top of the page
  2. The component receives the following props:
type AppBarProps = {
    languages: Array<{name: string; id: string;}>;
    onChangeLanguage: (id: string) => void;
    username: string;
}
  1. The component has a dropdown with a list of options

Dashboard menu

Create a React component - with tests and stories for the dashboard menu component.


Design

Screenshot 2021-05-26 at 15 09 47


Requirements

  1. Dashboard receives props:
type PageGroup = {
    groupName: string;
    pages: Array<{
        pageId: string;
        name: string;
    }>;
}

type DashboardProps = {
    onChangePage: (pageId: string) => void;
    currentPage: string;
    pages: Array<PageGroup>;
}
  1. Dashboard renders a list of pages
  2. When a page is clicked the onChangePage function is called
  3. The grey arrow indicates the current page

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.