Assign task to a team, REST API, and Custom logos

94 views
Skip to first unread message

Michelle Ricci

unread,
Jan 20, 2021, 1:59:57 PM1/20/21
to TaskJuggler Users
Hi,

I was hoping you could answer if TaskJuggler has the following features:
  • the ability to assign a task to a team and it resolves to a specific user
  • REST API
  • Customizable UI for the logo and colors
Thank you!

jsch...@gmail.com

unread,
Jan 20, 2021, 3:00:17 PM1/20/21
to TaskJuggler Users
Hi,

Are you aware of that TaskJuggler is "source code-driven" and the generated reports are static (not interactive)?

You can assign tasks to teams OR users. Teams can consist of many users. But I don't think it resolves to a specific user. It rather plans for users in that team who are available at the time.

I don't think the TaskJuggler project has a REST API, but looks like there is https://github.com/TJRest
Maybe you find more by web search. TaskJuggler has an Ruby API: https://taskjuggler.org/tj3/doc/table_of_contents.html#classes

The generated HTML reports can be customized with CSS and you can also customize the HTML and maybe customize the template. But I'd say you need a programmer for that.

Regards, Jakob

John Carey

unread,
Jan 21, 2021, 1:11:14 PM1/21/21
to TaskJuggler Users
Hi,

This may be redundant with respect to Jakob's answer or it may be a clarification, but in any case, it is definitely an expansion.

So, in inverse order:
  • Customizable UI for the logo and colors
    • Everything in TaskJuggler is customization in some sense.
    • The following are listed in descending order of ease and increasing order of risk.  (The easiest and least risky suggestion is first.)
      • There is a level of customization available using TaskJuggler's domain specific language.
      • TaskJuggler supports a Wiki-type markup syntax that you can use to modify reports.
      • You can modify TaskJuggler reports at the HTML/CSS/Javascript/icon level.  (See auxdir in the TaskJuggler Manual)
      • Since TaskJuggler is open source, you can customize it at the source code level.
        • Note: If you do this, you are fully responsible for maintaining your patch and when things don't work with respect to a later release, you will have to try something else or freeze at the level where your patch does work.  I would consider this a last resort unless you intend to send Chris a pull request and get your change integrated into the main branch.
  • REST API
    • TaskJuggler doesn't have a formal REST API per se, but it does have a daemon version (tj3d) which allows for some level of interactive reports to be generated on the fly.
      • I have found this useful in the past, but probably not for what you are considering due to the following restrictions: 
        • For security purposes, it only allows connections from local host (127.0.0.0) which limits its usefulness of this as a stand alone tool, but it does work.
        • On projects of non-trivial scope, it can take a fairly long time to generate a report.
        • To interact directly with tj3d you must use the TaskJuggler client application tj3client
    • TaskJuggler includes a web server called tj3webd as part of its distribution.
      • Full disclosure -- I use this a lot and find it a useful way to distribute reports, early in my consulting engagements, but I have always (I think) replaced it over time with some other reporting solution.
        • This is a lightweight, custom webserver designed to generate and serve reports on demand.
          • The reports themselves are generated by tj3d,  (see above)
            • tj3d has to be running on the same machine as tj3webd.
    • So, there is no rest API but there are solutions for interactive reporting and you can generate intermediate data and roll your own.
  • the ability to assign a task to a team and it resolves to a specific user
    • This may be a bit didactic, but in classic project management resources are assigned to tasks, not the other way around.
    • That is also the way TaskJuggler operates.  You allocate a resource to a task using the allocate keyword.
      • A resource in this case can be many things.  It can be a person, a team or some other physical, non-human resource (meeting rooms, machines in a plant, etc.) or group of non-human resources.
    • The TaskJuggler scheduling engine assigns resources to tasks based on a set of constraints and schedules those tasks, also based on a set of constraints to produce a project plan.
    • When you allocate a resource to a task, depending  on how the task or the team are configured in the TaskJuggler resource, project and task definitions, assuming all defined constraints can be satisfied, one or more resources will be allocated to that task in the schedule.
I would suggest that you just jump in and start doing some simple test projects to learn how TaskJuggler works.

All the best,

John
Reply all
Reply to author
Forward
0 new messages