Giter VIP home page Giter VIP logo

day-task's Introduction

daytask : A simple Trello clone

What is daytask ?

daytask is a single page application that replicate basic trello features. It is composed of two projects :

The back end (location)

The back end is a REST API made with Node JS and Express which is linked to a MongoDB database.

The communication between the API and the database is handled by Mongoose.

This REST API is divided in 3 services :

  • AuthService : Authenticate users using a Json Web Token
  • BoardService : Manage boards
  • InviteService : Manage invitation to boards

The front end

The front end is a single page application made in HTML5, CSS3 and Javascript using Vue JS framework.

The application uses Vue X to share states between pages and Vue Router to handle the front end routing.

The front end also uses SASS preprocessor in order to create more maintainable styles for the user interface.


Please note that the current version of daytask is just a minimal viable product created by Damien BOURGEOIS in 8 days.

Some features will be added in the future and improvements will be made to make the project more maintainable and more efficient.


Features

Manage your boards

board-crud99354acec70ff359.gif

Invite other users on your boards

board-create-invite7f0746ab86d26f27.gif

Accept board invitation from an invite link

board-accept-invite7b0de6ed841525a2.gif

Manage columns inside a Board

column-crudd8aff6b0a480c8cb.gif

column-reorder2e8406c5faf0b092.gif

Manage tasks inside a Board

task-crud1246f829e54c1934.gif

task-move840498dbf1f90073.gif

Requirements

In order to run this application you will need to have the following programs installed on your machine :

  • Node JS
  • MongoDB
  • Yarn or NPM

Configuration

In /api/config add two files :

  • production.json
  • development.json

Those files should contain the following keys :

{
  "connectionString": "YOUR_MONGO_DB_CONNECTION_STRING",
  "JWT_SECRET": "THE_SECRET_OF_YOUR_CHOICE_TO_SIGN_TOKENS"
}

Initialize project

In order to download the project dependencies, in both /app and /api folders you need to run :

yarn install

or

npm install

Run application

To run the front end application go in /app folder and run :

yarn serve

or

npm serve

To run the front end application go in /api folder run :

node index.js

day-task's People

Contributors

damienbrgeois avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

meisolated

day-task's Issues

Fix : BoardColumn style

  • BoardColumn component's "more" icon position change slightly when the column is being renamed (editableText component's "isEditModeEnabled" property is set to true)
  • The column name should be at the exact same place whether we are in edit mode or not
  • Column name and more icon should have an hover style to let the user know they are interactive
  • Remove scale animation when the user go hover a task
  • Reduce font size
  • Reduce padding to free some space
  • Enforce uppercase for column name in order to have a clear hierarchy

Rework Dropdown component position

  • Fix DropdownMenu component's position (no longer exact after fixing BoardColumn Style in #2 and Board style in #19)
  • Use only one DropdownMenu component for the entire application
  • Allow multiple alignements

Fix : Board style

  • Use CSS Grid
  • Fix "more icon" position
  • Add style to "more icon" on hover to indicate to the user it's interactive

Disable drag on column's input

Prevent the BoardColumn component's drag event on it's EditableText input.

This will allow the user to select freely the input's text.

Correct README

Change "Minimal Valuable Product" to "Minimum Valuable Product"

Refactor UI

  • Rename classes using BEM methodology to improve CSS maintainability
  • Use SCSS "&" instead of repeating the block's name when nesting element classes in block classes
  • Order SCSS properties with a "Concentric" approach (cf : https://9elements.com/css-rule-order/)
  • Use grid instead of flexbox when it's more relevant
  • Implement Refactoring UI principles to ensure pleasant, structured and clear design
  • Use the most relevant HTML tags for better SEO
  • Define an order for vue object properties (data, props, methods...etc) and reorder every components properties accordingly
  • Events naming convention

Fix : EditableText component doesn't reset on wrong value

When the user wants to edit the text and he doesn't set any value (empty string or spaces), EditableText component doesn't reset it's "editedText" property to the orginal value.

The original value is contained in EditableText component's "text" property which is initialized on mount with the v-model value.

Minimum Viable Product

  • Login & Register with JWT authentification
  • CRUD boards
  • CRUD columns
  • CRUD tasks
  • Move columns inside a board (drag n drop)
  • Move tasks inside a column (drag n drop)
  • Move tasks between columns (drag n drop)
  • Enable / Disable board sharing with a link
  • Share boards with unique link

EditableText hover cursor is on the wrong element

In EditableText component the pointer cursor appear even when the user is not directly hover the text because the CSS property is set on the wrong element.
It must be on element with class "editable-text__text" instead of the container div of the component.

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.