This is a utility tool I wrote for a local mechanical engineering business. They have dozens of concurrent projects, each with multiple upcoming deadlines. They wanted a way to see all their deadlines in one convenient place, so I made them this!
I wrote it in Processing, which is basically Java with a convenient rendering layer on top. First, it grabs data from the company's Teamwork API. It initially finds all upcoming deadlines, then analyzes the returned json information to make additional HTTP requests to find all future deadlines for each project.
A custom config file in the program's directory allows the user to add different project managers (PMs) and their preferred display colors. The program then matches those names with the descriptions of the downloaded projects, and sorts all the information into a format ready for drawing.
Full-length screenshot
Rendering is done in several passes: 1) a dummy pass to calculate the spacing that all of the text will take when rendered, 2) the PMs and horizontal lines, 3) the vertical lines plus a wider white line to look like it's above the horizontal lines, and the dots, 4) the milestone names plus a white backdrop, 5) the colored PM backgrounds, 6) the transparent vertical rectangles showing the current day and employee absences.
After rendering, the program can create the full image by repeatedly panning to different rectangular sections of the image and saving the drawn pixels to the correct positions in a file.
I set up an AutoHotKey script to automatically launch this tool (with window rendering disabled) at 8am each morning, save the result to an image file, and email it out to a configurable list of people. It's been chugging away for 4 years now with no issues!
~1 year's worth of images