Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
fatman1683
Jan 8, 2004
.
I'm not sure if this qualifies as a 'tiny app', but I'm not finding any commercial software that just does this thing, so maybe someone here can put something together, or knows of an existing piece of software that will do it:

I need to schedule blocks of time for different events. I know how long each event takes, and what I'd really like is some kind of drag-and-drop calendar situation so I can arrange the schedule. Events range in duration from 2-20 hours or so, and need to be able to roll over between days on the calendar. I also need the ability to schedule on an arbitrary number of multiple parallel tracks.

Some nice-to-have features would be:
The ability to define some stock events and drag and drop copies of them onto the schedule.
Configurable constraints on when a particular predefined event can be scheduled, i.e. must start after/end before x time, cannot start less than x minutes before/after another copy of the same event
Configurable constraints on how many copies of a particular predefined event can be scheduled to start on a given day

The pipe-dream feature would be a function that optimizes the schedule based on the above constraints, but I'm pretty sure that's unrealistic for anything less than ERP software or something similar.

Anyway, I have no idea how 'tiny' this actually is, but maybe someone has something similar they can tweak, or can recommend a commercial product that will do this. Thanks.

Adbot
ADBOT LOVES YOU

fatman1683
Jan 8, 2004
.

pseudorandom posted:

For now, I doubt I'll have time to help, but I'm still curious and want to ask for clarification:

1. When you say roll over, that just means that the entire duration can span two days, right? Like, a two hour event starting at 11pm and ending 1am? Not a two hour event starting at 4pm, pausing at 5pm, and resuming the next day from 9am to 10am, right?

2. An event would NOT be constrained by the "cannot start less than x minutes before/after another copy of the same event" requirement for second a parallel event?

1. That's correct. All the events are considered continuous for whatever their duration is. The important thing is that I need to be able to schedule a known duration, rather than scheduling start and end times. I need the software to help me figure out when the events should start and end.

2. It should be constrained for any copy of that event on any track, up to whatever the constraint count is. Imagine that you need a specific piece of equipment to do a job, but you only need it for the first 20 minutes of that job, and then someone else can use it to start that same job somewhere else. I'm trying to parallelize tasks while deconflicting limited resources.

I appreciate your help, I know this is stretching the definition of 'tiny' but I'm very grateful.

fatman1683
Jan 8, 2004
.

Volguus posted:

That sounds like what Gantt charts in project management and planning applications do, doesn't it? Now, optimization and automatic event scheduling may require some programming in that software, whatever that may be, but that's all that it seems to be. Am I missing anything?

It is basically a Gantt chart, but every Gantt charting software I can find is designed around the project management function and works in terms of days. I need something that works in terms of minutes and hours. It is very similar to a Gantt chart in principle, though.

e: Also Gantt charts are typically built around creating a task flow and then assigning resources to tasks. What I'm trying to do is assign tasks to resources.

fatman1683 fucked around with this message at 03:14 on Apr 25, 2021

fatman1683
Jan 8, 2004
.

Volguus posted:

Aha, that makes sense. So your resources are called tracks, right? And your tasks are called events?

With that vocabulary, let me see if I understand the requirements:

- You have several tracks, a known number (presumably can be added/removed)
- You have a bunch of events (dozens?), predefined (you called them stock events)
- An event has a name, a duration and a set of constraints
- You have a start time for the entire operation (Let's say Monday, April 26, 15:00:00)
- You add events (or have the software add them) to each track, in whatever order you want
- Maybe have a button for the software to add them based on constraints, after which they can be further manipulated by you.
- Then each event, while on the track, will have a start time and an end time.

Does that sound right?

This is correct.

Volguus posted:

When you say "cannot start less than x minutes before/after another copy of the same event", will that be for a particular track or for any of the tracks? How do you define an event to be equal with another event? Same name? Some origin (same stock event they were copied from)?

Copied from the same event, as the constraints only apply if they're copies, and must apply across all tracks.

Volguus posted:

Again, "how many copies" would that apply to any defined track currently on the schedule? And, how is a day defined? From 0:00-23:59? What do you do when daylight savings comes around? Or goes away? (You lose or gain one hour) How should that be handled? Again, this presumes you're working in local time, not UTC (UTC would make DST not apply for example).

Correct, total copies across all tracks. I'm fine with doing everything in UTC with a configurable offset. The system this is going into isn't DST-aware on its own and uses the same UTC+offset approach.

Volguus posted:

Would this be an application that would handle a rolling timeline of these events? Or would it require for the schedule to be saved/loaded from a file (a document)? That is, every time you come to work and you open the application, you always see the same thing, whatever you have scheduled previously, maybe then start to delete the events and plan a new one? Or would you require to open an existing document with these events scheduled or create a new one, etc. ?

A continuous timeline isn't necessary, it can be done in blocks. I'm normally scheduling a week (7 days) at a time, but events can hypothetically roll over from the end of one week to the start of the next, so being able to see the week plus a day or two on either end would be helpful. It isn't necessary for the software to be aware of rollovers on adjacent weeks, it doesn't happen often enough to be much of a hassle to account for it manually.

I would want the ability to save a particular schedule to file and create new ones, as I currently keep copies of my spreadsheet from each week.

e: Some additional context: Ideally, I'd have the ability to create templates, each consisting of a set of events from which I can create the schedule. Right now I only do the one weekly schedule this way, but it's likely that I will be doing multiple parallel schedules in the future, each with separate events, resources, and constraints.

Volguus posted:

What happens with the schedule? Exported somewhere (if yes, what format)? Printed? Or ... nothing, you just look at it and make decisions based on the information presented?

Right now it gets handjammed into a legacy scheduling system that doesn't have an API or anything, so 'nothing' would be an acceptable answer here, but printing it could conceivably be useful at some point.

Volguus posted:

This may or may not be a tiny app, depending on the answers, but I think it would be good to flesh out the requirements as much as possible, regardless how this will get done (and it does look like a program would help you in you job here).

Oh, and another thing, presumably you'd want a desktop application right? Or on some other platform (mobile, web?)? And by desktop would mean Windows?

A desktop application would be fine. A web application would also be acceptable if that's easier to create, but I can't imagine needing or wanting this on mobile. Windows is my primary platform, but I also have access to Linux machines if that makes it simpler.

I really appreciate all your help, hopefully this answers your questions.

fatman1683 fucked around with this message at 08:37 on Apr 26, 2021

fatman1683
Jan 8, 2004
.

Volguus posted:

It is surprising though that all these mega-expensive project scheduling and management tools have such limitations that they cannot be used for minute/hour/week long tasks. Oh well.

Yeah, this is really more of a manufacturing/ERP type problem than a project management problem. But software for that is even more mega-expensive. I appreciate your efforts, though!

fatman1683
Jan 8, 2004
.

nielsm posted:

Have you looked at room or conference planning software?

I looked at a few when I was exploring scheduling software in general, but the ones I found seem to be mostly focused on space planning and management, ticketing/attendance tracking, etc. Some of them said they have an agenda function but didn't show any screenshots or examples of how it works. I agree that some sort of conference/educational software might work, as I envisioned scheduling 'classes' in multiple 'rooms', but I have yet to find one that gives a good description or example of how it handles this.

Adbot
ADBOT LOVES YOU

fatman1683
Jan 8, 2004
.

nielsm posted:

Actually, can't you more or less do it with MS Outlook, having multiple calendars (one per track) open in week or schedule view? You can drag appointments around within a calendar and between calendars there.

With the old version I happen to have installed:


This only works if you know when each event is supposed to start and stop. I know how long each event takes, but I need the software to help me figure out start and stop times based on utilization.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply