Your Development & Design Resource
Public Build: Event Calendar - Technology and UI Considerations
12/30/2008 11:18 AM by Chris Toohey
So we have the basics of the Events Calendar established, so we quickly get started on the next phase of the build: technology and UI/visual considerations.
Again, we'll be staying away from the Domino Designer client, as this phase is more about research and making sure that you're bringing the right tools to the jobsite.
Quickly reviewing what we already know:
- Event Admins want to control the posted events in the Lotus Notes client.
- Attendees - since this includes warehouse staff and other "user will be using a walk-up kiosk" usage scenarios - will be viewing the Events Calendar and creating reservations via a Web Browser client.
- Event Coordinators will be using the event and reservation info to schedule Meetings in a shared Mail Database - which will do the Calendaring & Scheduling heavy lifting for us.
So we absolutely know that we will have a Lotus Notes client UI to handle event management, Internet Explorer (their corporate browser of choice) to handle the walk-up kiosks, and we'll want to build a data "fetcher" in the shared Mail Database. After chatting with the project champion, we've come up with the following:
The Event Admin will open the Events Calendar from the Lotus Notes client, and select "New Event". They will be presented with a wizard, asking them information about the event, including start and end date and times, repeat controls that will generate multi-day events, and the location/venue. When they click "Generate Event" - which is the final step in the wizard - the event NotesDocuments will be created in the EC NotesDatabase. From there, the Event Admin can modify individual event NotesDocuments from both a flat meetings-type NotesView or a calendar-type NotesView.
The Attendee will open EC from the Web Browser client, and see an Events Calendar user interface displaying meetings. They can open a meeting for more information, and simply click a "Reserve your spot!" button, which will create a response reservation NotesDocument to the given event NotesDocument.
The Event Coordinator will - when creating a scheduled meeting for a particular event - click on a new button on the Appointment Form Design Element, which will prompt them to select an event from a list of those for which a scheduled meeting has yet to be created. Once selected, the location, title, description, date, time, and even reservation information will be pulled in from the selected event and used to populate their corresponding field in the scheduled meeting entry. From there, the Event Coordinator will manage the event like any other calendar entry - allowing Attendees to accept the invites and book out their own time.
The Lotus Notes client stuff is pretty simple here - calendar-style NotesViews are easy to create, and the step-by-step wizard is already done. I'll be jumpstarting the Notes Client UI development with my No-View NotesDocument Lookups, UNID Logic, and Environment Variables - Example Application. Modification of the Appointment will be pretty simple too.
So we're onto the web technologies that we'll use to render our calendar UI.
With every JS toolkit out there having their own calendar UI, you've got some options. Now, if you talked to me a year ago, I would have told you to pick your own poison and go nuts. However, with the inclusion and heavy usage of Dojo in Domino 8.5 - specifically with XPages - if you're planning on keeping this application in Domino (which we are), I can't recommend anything but Dojo for this... as you can move away from using (what will be) a Dojo library NotesDatabase and onto the Dojo libraries that magically show up when you upgrade your Domino servers to 8.5 (possibly with some tweaks, but you're still moving forward!).
Thankfully we can stand on the shoulders of giants for this one, as Victor Krantz wrote Creating a Dojo Calendar way back in March 2007!
So, we have our plan. We've gotten sign-off from the customer that the application that we've presented to them - via a lot of whiteboard sketching, usage scenario write-ups, and other up-front work - is the one that they wanted in the first place... and we're finally ready for the build.
... which is coming up in the next post!