bethlakshmi / gbe-divio-djangocms-python2.7

3rd try is the charm - Divio Cloud, Django CMS, Python 3.x, Django 3.x
Apache License 2.0
6 stars 1 forks source link

Scheduling stuff needs help #278

Closed bethlakshmi closed 1 year ago

bethlakshmi commented 3 years ago

Witnessed from the expo:

1 - it takes WAY too much clicking around to get to what you want to schedule. Move from the big filter that we currently use, to the calendar views we have. Put the "Create" button there, and make an "edit" button for existing events.

2 - remove "schedule" from the Special menu. "Expo Dates" can go under manage. Maybe have a special link to the calendars, in case we don't have active links to something at the moment.

3 - When editing an event:

bethlakshmi commented 2 years ago

I'm considering this one as my first big piece of work. Scratch pointed out that it would be better if our scheduling tool worked more like just about every common calendar app on the internet. And I agree.

The trick is, most great calendar apps (google, outlook, iOS) - are written by top notch front end engineers.

Which I am not.

Sexy stuff like drag and drop uses elements of browser manipulation that are new to me, and even some of the stuff that seems explainable using 1998 web technology (let's face it, 1998 is where I was hot shit JS coder), still takes some really clever nuanced front end thinking/UX design that I'm unlikely to be able to replicate manually.

So.... Open source to the rescue.

I'm planning to port our front end to an open source library and then put web-based APIs underneath it. We're actually not far from an API interface layer here - in an attempt to abstract the horror that is our scheduling backend, I put an isolation layer on top of it, which should be pretty straight forward to turn into a legit JSON or other schema API.

And for the Front End - my personal goal is to use React (a modern way of doing browser side coding - it all boils down to JS, but it's a way of doing some cool stuff with some level of sanity). That's what my day-job team uses, so getting smarter is a good investment for me, professionally.

Next step = look for React based open source calendar front ends that seem to give us the stuff we want as both schedulers and in the public app view.

Key requirements (check me on this @burlexpo ):

Scheduler stuff:

The public view stuff can be optional - IMO - because we don't have code sharing right now between the schedule building side and the public view side - so if we port the ugly scheduling side and don't port the public view, the public won't be hurt by that. But it's a nice to have as eliminating code is always nice.

bethlakshmi commented 2 years ago

One idea: https://jquense.github.io/react-big-calendar/examples/index.html?path=/story/examples--example-3

Pros:

Cons:

bethlakshmi commented 2 years ago

Another one: https://fullcalendar.io/demos

Has a very immediately noticeable market presence with quite a few knock offs. May be worth me looking at the knock offs for a better feature vs. price point.

Pros:

Cons:

Admittedly, I would not turn down a year of being able to ask a bunch of stupid React questions. There's only so much I can tap my work team for.

bethlakshmi commented 2 years ago

Interesting data:
https://npmtrends.com/@fullcalendar/react-vs-calendar-vs-fullcalendar-vs-react-big-calendar-vs-react-calendar-events-vs-react-event-calendar

I gave a look at the other options and I don't think anything else on this list is worth a tradeoff - the others include - variations on my first two items, with nuances that shouldn't matter from a biz point of view. And one or two options documented so poorly that I'm not excited about working with them (can't tell if they are React, either)

bethlakshmi commented 1 year ago

closing - Luna did a great job of fixing what we have. Leaving the rest be.