Skip to content

Latest commit

 

History

History
333 lines (263 loc) · 12.5 KB

todo.md

File metadata and controls

333 lines (263 loc) · 12.5 KB

V2.0.0:

A drag and drop todo app with visually adjustable time slots to fill an 8 hour day.

  • Backend

    • Configuration

      • Setup

        • Install laravel + React scaffolding
        • webpack.mix.js
        • package.json
          • remove module for webpack mix
        • Allow src mapping for debug
        • Setup database
        • config build
    • API

      • Data structure
      • User tables relationships and retrieval
      • Seeder
        • Generate some dummy data
      • Define routes (additional)
      • Commit Minimum build
      • Soft delete
      • Fetch boxes by day

  • Front End

    • Wireframe HTML

      • Responsive fluiid header
      • Layout Mobile
      • Layout Tablet
      • Layout Desktop
      • Center col-8 on login and register
    • Router

      • [] Demo
      • Login
      • Registr
      • Profile
      • Signup
    • Header

      - [x] Login button when logged out
        - [x] Icons profile
        - [x] Icons logout
        - [x] Center calendar icon or add drop down menu on right icon
      - [x] Home icon logic
      
    • Box App

      • BUG [x] Check and fix, Item id hack for prod
    • Demo Page or Swtich

      • Route / as TimeboxDemoController if not authed
        • used proxy controller but better use middleware
      • Route
      • First time welcome and notification
    • New Box

      • Should be plus icon (tick is confussing)
      • Close
      • Center Button
      • Submit validation
      • Empty slot on click
      • Duration
      • Start is based on todays day
      • Adjust start time on drop addBox / or prevent drag ? its related to seems to default to current day
      • Start needs to retain its value in form
      • Duration Can be reduced to 30mins
      • requires passing up duration and recalculate height before dispatching.
      • Dispatch only on submit Same for status color
        • Status:
          • Test statuses x4 Doing: - Blue Todo: - Future Amber, - Current Blue - Past: Red
          • Done
            • green,
      • Rag status styling basic func
    • Update Box

      • Form inputs squashed

      • BUG [x] Duration being set to null and or not on delete

      • BUG [x] start undefined on box 16

        • Add box second from last make it 1 hour
        • Repro Steps:
          • Create a box second to last as 2 hours then increase or reduce.
      • Update text button press

      • ~~on keypress sleep ? ~~

      • BUG [ ] Reducing box size seems to add a new box in between next placeholder

      • Remember:

        • that when in this update flow its unlikeyl many api call will be required (levarage this)
      • Center height color text size so its not jumping around

        • Auto updating here is only required to adjust height and color
      • Update text area and form in general a bit squashed (minimix duration input width)

      • Style select s height affecting duration on select ? In all scenarios ?

      • BUG [x] Is height affecting duration on select ? In all scenarios ?

      • Update Funcionality for duration and status

      • BUG [x] Interactions here are the only way of updating next freePlaceholders. If we update another element the duration options are not updated

      • Start needs to retain its value in form

      • Need to adjust heights of boxes x30,x60,x90,x120

      • Sanitization on duration

      • Manage placeholders splice pattern over the difference in duration - / + loop

      • Cannot read properties of start

        • Todo item must not overlap next todo item
          • Next free slots util()
          • Its possible a feature would be to replace a free slot at some other point in the day (less intuitive & more complex)
        • Duration can be reduced to 30mins
        • Dont allow todo box to extend beyond the end of the day
      • Reset time on drop

      • Time allocation logic

      • Http client

      • If box height > 60 then move txt area down to occupie all that space

    • Box Tab

      • Duration tap Feature
      • Status tap Feature
    • Select nHours

      • [] Store nHours redux
    • Select Day

      • Needs to redirect to /
      • BUG [x] Moving back and forward (after an item creation) reutrns same key, 5. Keys should be unique Solved by removing setDate dispatch on, also solved by adjusting boxes begore managing
    • Select Calendar

      • Hover on select calendar

      • BUG [x] Select calendar when choosing in future defaults to 00:00

      • Center this button

      • Calendar should match design

      • BUG [x] Doesnt retain highlighted correct date

      • Could do with finger hover .5

      • BUG [x] Start time not merging correctly

        • removed setStartDate() dispatch
      • Date picker

      • Set current date only

      • Calendar Select Component

    • Select Hour

      • Set start hour just always do boxes of 8
      • Select duration of day
    • Redux

      • Do batch update
      • lastTotalToRemove: this needs to be grouped by day ? stack ?
      • lastUpdatedIndex: this needs to be updated
      • Basic crud slice methods
      • Get Id back from createBox api
      • Dispatch settIntialBoxes and set state in redux!
      • After fetch will require a mergeBoxes
      • Empty placeholder click needs to add
      • On duration reduction need to add back placeholders based on next placeholders
      • Check box is on 30 min intervals no 35mins
    • Overview Daily List

      • BUG [x] Dragging to top will cause all times to reset from dragged start point

      • Boxes should be uniform cmponent or markup getting too many differing results

      • RAG Status testing

      • BUG [x] Two children same key

        • removed startDate Dispatch
        • Add box on p2 p3 causes issues could not create
      • BUG [x] Add box after drag creates two new items (one in place and anothre at its original index)

        • Pass index to addBox
      • Old todo should be red

      • Fresh after laravel seed placeholders seems to add extra as if last total to remove is not being respected ?

      • Manage placeholders removes too many boxes if theres no next todo item 60 mins

      • manage placeholders and its order

      • 30 min interavals daily background

      • BUG [x] : when moving a box the time updates but does not respect the day

      • Moving box time does not correctly update the number of boxes

      • BUG [X] when theres an empty element at the start of the day ?

      • Simply remove outline on empty boxes its not necesary

        • To give the illusion of a large free box
      • Duration of an item needs to affect the number of boxes

      • Needs to run on everytime duration changes, new and update and read

      • on change startTime / startDate order the boxes

      • Fix front end input to Y-m-d H:i:s for placeholders

      • Send / Receieve a start time

      • startDateTime / dueDateTime db

      • Set start time by index

      • Leaner addToStack

      • [] refactor: stack.boxes.box ()

      • Need a way to close a box incase you accidentally open it which is likely to happen for new users

      • CSS Basic for debug 30 mins / 4 hrs

      • Fix overtime line

      • Generic Time handling utils

      • Box tab - Collapsed tab allows, Provides an over view but is made to be dragged and dropped

      • Sort timeline by hour rather than order

      • Separate timeline day

      • Adding two items of 1.5 + 2hrs limits the total number of boxes but too much ?

      • Add Box duration options need to implement sanitization

      • BUG [x] Adding item and end then begging increases the number of slots

      • BUG [x] Adding an item thats start is beyond the end of the day seemingly box is not created but removed

      • Adjust start times on delete of all replaced

      • Height of box is based on duration

      • 100% height divided by 16 ?

      • refactor time-utils to generic function taking format as param

      • Apply a height as duration

    • Box Utils

      • Generic single add box instead of initializing a whole array
    • Profile

      - [x] hello msg
      - [x] Delete with 2 step confirm
      
    • Delete Button

      • Removing item must add a placeholder
      • BUG [x] Resets times to 00:00 on remove first item ?
    • Auth

      • 2fa
      • Delete ACC
      • Delete acc 2 step
      • Forgot password
      • Logout needs t refresh home page to demo
      • Confirmed password
      • Refresh form reset.form() on auth form switch
      • Confirmed password nicer feedback ux
      • Container cmp for box to avoid nesting
    • ReDesign Markup

      -   [x] Branch of timeline-ui bootstrap
      -   Design Elements
      -   [x] Box Card group with a shadow
      -   [x] Empty Box card
      -   [x] icons x4
      -   [x] Weekly ? or Alternative design for select day ? ulitmately
      -   [x] empty boxes (Removal of outline on )
      -   [x] Update Funcionality
          -   Popup sticky modal for editing ?
      -   [x] new branch of timeline-ui
      -   [x] Daily Timeline wrapper ? Shorten
      -   [x] Design Route for static dev switch
      
      -   [x] Mix Setup
      -   [x] Scss mix live integration test
      -   [x] 7 - 1 styleheet
      
      • bs implementation

        • list group

        • Step 1: User research. Todo lists / Calendars / Jira /

        • Step 3: Wireframing.

      • [] 15 / Placeholders mins

    • Static Home or demo

      • Can i use something thats not index.html for seo results ?
      • Do a static blade template for about
      • [] Sync Server
      • Make dummy data more fun or relatable
      • Feedback generic warning or freeze certain controls ?
        • or better yet fix more bugs sigh
        • BUG [x] id in demo
        • BUG [x] Update / Destroy methods expecting different types proxy
    • Notifications to ui

      • Success
      • Error
      • Warning

Testing

  • [] Unit

  • [] Feature

  • [] Integration

    Mocks:

    • [] Select day -> returns 16 boxes
    • [] Add a box -> returns updated box
    • Add box [duration] -> 90 mins 13 boxes
    • [] Update duration removes placeholders of next neighbour boxes
    • [] Drag and drop updates start time
    • [] Drag and drop does not add or remove boxes
  • [] Acceptance


Bugs

  • Your requirements could not be resolved to an installable set of packages.
    • To enable extensions, verify that they are enabled in your .ini files:
      • Enable fileinfo
  • peer vite@"^3.0.0" from @vitejs/plugin-react@2.2.0 - npm install vite@3
  • Multiple boxes rendering after login
    • Needed to reset last removed from state
  • There is a strictmode fix !! see original logrocket blog
    Adding Drag and Drop Functionality with React Beautiful DND

Milestones

  • Core Concept
  • 2.0 Features
  • Demo Web
  • User funcionality and full launch
  • [] Testing and user feedback