This sounds remarkably similar in feature-set to the Hours module I
wrote for our CMS (Silverstripe) for our recent website upgrade. We
defined Academic Terms first (name, startdate, enddate), and then could
associate Regular Hours (start time, end time and optional textual
description for each of Sunday - Saturday) and Hours Exceptions with
each term on a per-Location basis. Locations can be nested within
others, inheriting hours as needed. iCal feeds are available for
integration into the campus mobile portal, and clever use of the URL
structure can get hours for all kinds of different time periods.
I'm currently reworking this a little, as Locations had originally been
tied to Pages in the CMS, but this began to break as the website page
hierarchy no longer matched the Location hours hierarchy. Better to
keep Locations as a separate data object, and just associate a Page with it.
Cheers,
-Ian
On 07/01/2015 11:35 AM, Chris Beer wrote:
> Hi Ken,
>
> We’ve recently been working on rebuilding an application for managing our hours. It’s Ruby on Rails, not-yet-in-production, full of rough edges, and has some Stanford-specific business logic, but it’s relatively simple and (probably) works for us:
>
> https://github.com/sul-dlss/library_hours_rails/releases/tag/v0.0.1 <https://github.com/sul-dlss/library_hours_rails/releases/tag/v0.0.1>
>
> Currently, it’s envisioned as a backend service for staff to add and manage hours, with downstream consumers using the API to present the hours as appropriate. Our initial consumers include the main library website, our library catalog, and some other business process applications. We’ve also started thinking about embeddable HTML views of the hours to replace some of the clunky processing we’re currently doing in Drupal, but haven’t pursued that yet.
>
> Interesting features include:
>
> - JSON-API view of a location’s hours; (what I assume is a bespoke..) Drupal calendar feed; import and export for spreadsheets of hours;
> - multiple library (and location-within-a-library) support;
> - granular access control for updating hours; we have the notion of global hours administrators, but expect to also support library- and location-specific authorization, allowing library managers to set and update the hours for a subset of our locations [1];
> - support for setting operating hours for a term and/or exceptions for particular days (e.g. holidays and the like) using an in-place editor;
> - we have a notion of location-specific messages associated with exceptions to the normal schedule (e.g. the Art library is closed this week for Y), which can be reflected in applications that consume the library hours
>
> Most of the rough edges are around some of the one-time administrative actions like setting up new libraries, locations, and term schedules, although there’s also some UI improvements in our near future.
>
>
> Thanks,
> Chris Beer
> Digital Library Systems and Services
> Stanford University Libraries
>
>
> [1] Although I’m more interested in allowing any staff member to update the hours, and provide better notifications when a location’s hours change; that said, strong access control is much easier to reason about and codify..
>
>> On Jul 1, 2015, at 6:01 AM, Ken Irwin <[log in to unmask]> wrote:
>>
>> Hi folks,
>>
>> I'm hoping to find some sort of web-based app that can manage the library's hours of operations, including:
>>
>> * Displaying today's hours
>>
>> * Displaying an upcoming schedule of hours
>>
>> * Updatable though a GUI interface by non-techy library staff
>>
>> * Able to update our Google Places account hours (which, I note, currently lists our school-year hours as our open hours today), perhaps on a daily basis
>>
>> * Preferably a stand-alone thing that can provide data on an ad hoc basis (as opposed to a CMS-specific thing like a WP plugin or a Drupal module)
>>
>> * PHP preferred but not necessary
>>
>> * OSS / free preferred but not necessary
>>
>> I feel certain that someone else has already wanted this enough to create it. Anyone have a solution they're happy with?
>>
>> Thanks
>> Ken
|