Giter Site home page Giter Site logo

Comments (13)

drvinceknight avatar drvinceknight commented on June 15, 2024 1

duration - only scheduling events in slots with a matching duration

I'll pick this up next.

suitability - not scheduling events in rooms which are unsuitable for that type of event

I think this is covered: we can mark an event as unavailable for a given slot. We can pre process whether or not a given event is suitable for a given slot when we get the data in (and just add that to the event unavailability).

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024 1

duration - only scheduling events in slots with a matching duration

Actually, come to think of it: that's also already covered by the same logic: we can simply include this all in a data input validation:

  • If an event has duration 30 mins then all the slots with duration < 30 mins should be marked as an unavailability for that event.
  • If an event has a particular type then all the slots that cannot cater for that type should be marked as an unavailability for that event.

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024

I'll pick this up. Will start with the tags constraint: so talks cannot be scheduled in the same session unless they share a tag.

from conferencescheduler.

meatballs avatar meatballs commented on June 15, 2024

including no tag? i.e. Any untagged talks can be scheduled in the same session.

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024

Yup. I'm thinking we can handle that generically: no tag is a tag.

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024

@meatballs currently the unavailability maps speakers to slots. Would you be averse to changing that to map from events to slots?

So this would have:

 21 class Event(NamedTuple):                                                                                                                          
 22     name: str                                                                                                                                     
 23     event_type: EventType                                                                                                                         
 24     duration: int                                                                                                                                 
 25     roles: Dict[Role, Person]                                                                                                                     
 26     tags: List[str]  
 27     unavailability: List[Slot] 

The unavailability list for any given event would by default be empty.

This would just make things a little bit more generic and also addresses our chat that unavailability for an event in a given slot need not be about the speaker (as a committee we could decide that we don't want a particular event to happen in a particular room).

from conferencescheduler.

meatballs avatar meatballs commented on June 15, 2024

we don't want a particular event to happen in a particular room

I think that's a separate issue

The main issue to deal with for unavailability is that we will straight away have speakers telling us that they cannot be at the conference for particular days. That's what I mean by 'unavailability.'

from conferencescheduler.

meatballs avatar meatballs commented on June 15, 2024

So, I don't see how it could be mapped to an Event - anyone who can't make Friday still won't be able to make Friday regardless of what we've scheduled that day.

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024

This is just about how the data is stored and doesn't actually change anything.

The main issue to deal with for unavailability is that we will straight away have speakers telling us that they cannot be at the conference for particular days. That's what I mean by 'unavailability.'

When speakers say they are unavailable for a given day that in effect translates to the events that "belong" to that speaker being unavailable on the slots on a given day. So this doesn't change anything from that point of view.

By allowing for events to be more generically unavailable on a given slot it just makes things a bit more flexible.

This branch has those changes and the availability constraint programmed in: https://github.com/drvinceknight/ConferenceScheduler/tree/2-availability

(It's forked off my work on #5, will wait for that to go in before opening the PR)

from conferencescheduler.

meatballs avatar meatballs commented on June 15, 2024

When speakers say they are unavailable for a given day that in effect translates to the events that "belong" to that speaker being unavailable on the slots on a given day.

It also translates to sessions that they might chair, speakers they might be mentoring, workshops they might be assisting at and other things we haven't even thought of.

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024

from conferencescheduler.

meatballs avatar meatballs commented on June 15, 2024

True and similarly we can have events that the committee doesn't want to
schedule in a given slot even if the speaker is available

But that's a different issue - one that I think should be covered by an ad-hoc constraint in the 'script' for that year. Here, we're just trying to deal with the built-in availability constraints.

from conferencescheduler.

drvinceknight avatar drvinceknight commented on June 15, 2024

from conferencescheduler.

Related Issues (20)

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.