Git Product home page Git Product logo

customer-task-list's People

Contributors

kensodemann avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

customer-task-list's Issues

Can navigate to areas when logged out

Be on wide device.
Log out.

Notice that menu still shows tasks, customers.

two parts to fix:

  • hide the tasks, customers if not logged in
  • add auth guard to redirect nav to login if trying to nav to tasks or customers

Make a Note List component

The note list code is close to identical in the task detail and customer detail screen. It seems that this could easily be abstracted into a component.

Edit / View of Note

Handled via click in component with event passed back to task or customer details page.

Push Notifications

Ideas on when:

  • non-closed task is due today
  • non-closed repeating task is scheduled for today
  • non-closed task has been open for more than X days and there has been no notification for Y days

Better feedback required for login

The login process can take a couple of seconds before actual results show up, especially now that we have the auth-guard in place.

A loading indicator should be started before the login is sent and then needs to be stopped in the following cases:

1 - the login fails
2 - the login succeeds and the user observable has fired

It is not clear to me yet where the second case most cleanly belongs. The auth-guard seems like the wrong place, and it certainly does not belong in each and every page. This may take some thought.

Repeating Tasks

Currently, there is no way to schedule a repeating task.

  • make it a checkbox separate from the status
  • add some simple scheduling:
    • time should be held consistent
    • repeating options:
      • daily
      • weekly - same day each week
      • bi-weekly - same day and time, every other week
      • monthly - same day, time, and week
      • quarterly - same day, time, and week of month
      • annually - same day, time, and week of month

For the "week of month" bit, there is an issue if it starts on the fifth week. In that case, make it the forth.

A server function will likely be required to go and periodically schedule out these tasks.

It could also be an option at the time the schedule is created, and then could be something to review periodically.

Note Modal

Used to add and update notes

  • add mode - pass in the itemID
  • edit mode - pass in the ID (that is, the note ID)

Edit mode shall also be used to view the full text of the note.

Deleting Note freezes sliders

I believe this has to do with not closing the sliders like we do when we respond to and updated tasks subscription. At least try implementing that first.

Deleting Task does not delete notes

If you delete a task that has notes associated with it, the notes will remain in the database in the notes collection never to be seen again and never to be cleaned up.

Update the notes service to have a method to remove all notes for an item.
Update the task service to call that method when removing a task.
Clean up the database as it exists today.

Add new note

via a plus button probably in the notes list header

Add default date to due date

Add a default value to the due date. Use today, which may be an extreme due date, but at least it is a good start, rather than the start of the current year.

Notes Service

Following Methods:

  • allFor - all notes for a given item
  • get
  • add
  • update
  • delete

Move End Date with Begin Date

When changing the begin date, keep the end date in sync based on the number of days between the two before the move.

This implies that the only way to change the duration of the task is via the end date.

This also implies a need for a private variable that tracks the duration of the task.

Make it easy to close

Make the slide on the task have two options:

  • delete
  • done

Closing is a common thing to do, and it should be super easy. Not the multi-tap process that it currently is. Leave the setting of statuses in the editor, but add the "done" button to the sliding.

Order Tasks

The tasks within a status are currently ordered in whatever order they come back, which is fine for closed tasks, but for current tasks (open and on-hold) order them as such:

priority (high first)
begin date
date entered

Propagate Customer Name Change

Tasks have the customerName stamped on them. Changes to the customer's name should be propagated to the tasks for that customer.

Task Details Page

Just the page with the basic information. Here is what it will have:

Name: some name
Description:
A description will be written here...

Customer: customer name
Status: current status
Type: a type
Priority: the priority
Date Entered: date
Due: date (only if there is one)


Edit
Delete

The Edit bit is some sort of button that will open the customer in the editor. I have not decided exactly what that will be, but it may be a toolbar button with the "create" icon.

The delete button is similar with delete.

With this functionality here, the same functionality is to be removed from the list page.

There will be no notes * functionality with this release * There will be no customer task list functionality with this release

Improve Larger Form Factor

The tabs don't work well on larger devices such as tablets in landscape mode or on the desktop.

Experiment with using a split-pane for that and just having the tabs in the smaller form factors.

Ideally, keep the routing the same and only change how the navigation is presented.

Add max date to due date

Currently, as you get to the end of the year, you cannot schedule things into the future. Make the max date something reasonable that would never be used, like three years out

Notes

TODO: Need to design out how notes should work, and document it here, then create a list of tasks.

Add e2e Tests

Add end-to-end tests now that there is a test/dev backend.

In any case that involves creating new data, the data items should be removed as part of the test.
In any case that involves changing the data, the data should be changed back as part of the test.

Start with just a navigation script that does a login and some nav then a logout.

Design Multi-User

Initial ideas:

  • profile page for setting name and some simple options
  • tasks could be marked as personal or shared
  • shared tasks could be "takable" in that they would stay shared, but someone could "take" it, meaning that they are going to handle it

List notes

Two pages:

  • customer detail
  • task detail

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.