Git Product home page Git Product logo

camp-trello-clone's Introduction

Coders camp project - module 2

Trello clone

Setup

Install all packages by using yarn.

inside frontend package create .env file with following variable SKIP_PREFLIGHT_CHECK=true.

Start development with yarn start.

Figma

project

Mantine

documentation

Conventional commits

documentation

  • feat - new functionality
  • fix - amendment to existing functionality
  • docs - changes only in documentation
  • chore - changes that do not affect the source code or test content (e.g. package updates)
  • refactor - changes that are not both fixes and new functionalities
  • tests - everything connected with tests (adding, editing)
  • perf - changes in code that improve performance,
  • styles - all kinds of code formatting, white space, commas or missing - semicolons
  • ci - changes for CI purposes (configs, scripts),
  • build - changes affecting the build process,
  • revert - revert the last changes

Docker

To run MongoDB on docker container go to ./docker path and use:

docker-compose up -d

to stop docker container use:

docker-compose down

To restart the data to init state use:

docker volume rm docker_TC_mongo_data

If you have some problems with removing old containers use:

yes | docker-compose rm

Postman

Import files

  • From menu bar choose: File -> import.. or ctrl + o
  • import 2 files from directory /postman :
    • camp-trello-clone.postman_collection.json
    • camp-trello-clone.postman_environment.json

set PORT in environment variables

  • in sidebar click Environments
  • change Initial value to port on which your backend works (default: 8800)
  • In camp-trello-clone envionment click on three dots(...) and set as active environment

New request

instead of using explicit port number use {{PORT}} variable, for example: http://localhost:{{PORT}}/v1/

Export collection

Click on three dots(...) in collection and Export file. Use recommending setting: Collection v2.1

More info: Managing environments Importing and exporting data

camp-trello-clone's People

Contributors

arssin avatar dawid-dwk avatar emilmalanczak avatar kacper-cyra avatar kamack38 avatar karol-wolski avatar krygacz avatar mcwiekala avatar ryszard-s avatar trgted avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

camp-trello-clone's Issues

UI | Image Picker

  • Should receive: image size (one of provided by unsplash API), on image selected handler which accepts URL to image in selected size.
  • Should fetch images by search string from unsplash API
  • Should display 12 images as thumbnails
  • Should trigger on image selected handler when one of images gets clicked
  • After user stops inserting input should fetch new images (see)

image

UI | Dashboards page

  • Should be placed inside "pages" directory
  • Should get all boards from global state and display them
  • When one of items gets clicked should navigate to new page with this board "/board/:id"
  • Should implement onBoardAdded which updates global state with new value

Blocked

image

UI | Task modal

  • Should receive: task object (members, comments, attachments, description, tittle, image (optional), on close handler (on close handler receives updated task object), isOpened.
  • Should store task data as state
  • Should implement logic for handling values change (example: onDescriptionSaved, onCommentAdded etc.)

image

UI | Dashboard page

  • Should be placed inside "pages" directory
  • Should get board object (columns (which contains tasks), users, status (private or public), title, createdOn) from global state.
  • Should implement on column added handler
  • Should implement drag & drop mechanics to enable movement of tasks between columns
  • Should allow toggling dashboard menu drawer
  • When task gets clicked, should open modal with task details

image

Logic | Get initial columns

Should return 4 columns with initial titles:

  • Backlog
  • To do
  • In progress
  • Done

Column data structure:

  • title
  • issues

UI | Action button

  • Should receive: text, icon, on click handler
  • Should trigger on click handler when clicked

image

UI | Description

  • Should receive: text, on text saved handler
  • Should store passed text
  • Save button should trigger on text saved handler and pass new text

Nice to have:

  • Should allow rich formatting

Initial state:
image

Edition state:
image

Logic | Create router

Create React Router with two empty routes (or routes with just a text):

  • for dashboards path "dashboards"
  • for a specific dashboard - "dashboard/:id"

UI | Dashboard Drawer

  • Should receive: title, users, description, on description changed handler, on user removed handler
  • Should display dashboard creator - an admin
  • Should display description
  • Should display team members

image

UI | Members list

  • Should receive: list of users, is deletable flag, on delete handler;
  • If is deletable is true than next to each user should be displayed remove button or "Admin" if user is an admin
  • Remove button should trigger on delete handler

image
image

UI | Add member card

  • Should receive: list of users, on add user handler
  • Should filter users by string
  • Should filter users that are already assign to task
  • Invite button should pass user id and trigger on add user handler

image

Logic | Generate attachment

  • Should generate either image URL or file URL (file shouldn't be downloadable)
  • Should generate title, date
  • Should return generated attachment

UI | Create dashboard modal

  • Should receive: on created handler, on modal closed
  • Should allow for choosing cover from image picker
  • Should allow for inserting title
  • Should allow toggling between private and public mode
  • Should trigger on created handler after user interaction with create button, and pass to it dashboard object with contains: title, cover image url, dashboard status (private or public)
  • Should trigger on modal closed after user chooses to cancel or close modal

image

Logic | Generate task

  • Should receive: list of users
  • Should generate title, description faker.js
  • Should generate attachment using already prepared function
  • Should select a few of users as task members

Blockers: #22

UI | User icon list

Figma: https://www.figma.com/file/UOqXCGxVb1fjY7pWUzvI8K/Thullo---Trello-Clone?node-id=1%3A301

  • Should receive: list of users, isAppendable, on append handler, icon limit
  • If user has no profile image should display first letter of name and surname
  • If isAppendable is true should display additional element with plus sign and trigger append handler if it gets clicked
  • if number of users is greater than a limit it should display icons for first X users and than display '+ Y others', where Y is a number
    of not displayed users

image
image

UI | Task

Figma: https://www.figma.com/file/UOqXCGxVb1fjY7pWUzvI8K/Thullo---Trello-Clone?node-id=1%3A15 , https://www.figma.com/file/UOqXCGxVb1fjY7pWUzvI8K/Thullo---Trello-Clone?node-id=1%3A2911

  • Should receive: title, image cover (optional), assigned users, click event handler, number of comments, number of attachments, on create task handler
  • If initialized without data should have text input for title and save button
  • Should display image cover if passed to component
  • Should run click event handler on click
  • Should display users icons for passed users
  • Should display passed title

image

Blockers: #10

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.