joreilly / Confetti

KMP GraphQL based conference project with Jetpack Compose Android, Compose for Wear and SwiftUI iOS clients along with GraphQL backend.
Apache License 2.0
759 stars 88 forks source link

DevFestNantes - Opening, break and lunch sessions should not specify a room #108

Closed RobinCaroff closed 1 year ago

RobinCaroff commented 1 year ago

Opening, break and lunch sessions currently specify the room Belem but they should not indicate any room.

RobinCaroff commented 1 year ago

cc @martinbonnin 🎁🙂

joreilly commented 1 year ago

Assume some updates in back end data needed for this initially.....but I can update UI then I guess in case we still try to show some text there for those slots (in the actual Confetti apps that is....just remembered there were other apps using this same backend :) )

RobinCaroff commented 1 year ago

Yes Session used to have only the room attribute which probably forced @martinbonnin to provide a default value. But Session's room has since been deprecated and replaced by rooms:[Room] which is more flexible and can be empty.

RobinCaroff commented 1 year ago

Btw many thanks for sharing Confetti's backend ! We're very grateful to you guys for the help provided to the DevFest Nantes!

martinbonnin commented 1 year ago

So that's an interesting question... At the moment, I believe breaks indicate all the rooms they apply to:

    {
          "id": "day-1-pause-1",
          "startInstant": "2022-10-20T07:40:00Z",
          "endInstant": "2022-10-20T08:00:00Z",
          "title": "Break",
          "language": "fr-FR",
          "tags": [],
          "rooms": [
            {
              "id": "Belem"
            },
            {
              "id": "Hangar"
            },
            {
              "id": "Jules Verne"
            },
            {
              "id": "L'Atelier"
            },
            {
              "id": "Les Machines"
            },
            {
              "id": "Titan"
            },
            {
              "id": "Tour de Bretagne"
            }
          ],

This is because not all sessions are the same duration and longer workshop do not have the same breaks as regular sessions. Having this information allows a 2D-matrix UI (like on web) to only display the breaks where they actually happen. Now I agree that when using a 1D-linear UI (like on mobile), it doesn't really make sense. So not sure what the best fix is. I would like going forward to support 2D UI moving forward. The more I'm thinking about this, the more I believe we either:

  1. need different "views" fields for the same underlying data
  2. or do this on the client (but that'd duplicate some logic)
  3. not support 2D UI for the Devfest Nantes and remove all rooms

My preferred solution would be 1. but I'm not super keen on changing this 2weeks from the event (+ taking into consideration Google Play review times, etc...) so I'll remove the rooms from the backend for this specific event. For other events, I'll work on adding new "views" for more use cases 🚀

PS: I'm always amazed how difficult the problem of displaying an agenda is 😅 . That could be a talk in itself lol.

martinbonnin commented 1 year ago

Rooms are removed

RobinCaroff commented 1 year ago

@martinbonnin thanks for the quick fix. This is actually a very interesting issue and I hadn't thought of all the subtleties 🤔. Let's keep that in mind for future events. Surely there is something smart to do.