While we love showing off our work on the Solutions page of our website, not every project gets its chance to shine. This can be for any number of reasons; for instance, we recently completed work on an online events calendar with LinkedIn integration. This was a great little project, but we couldn’t share it because the nature of the integration prevents access by anonymous visitors. It was, however, a lot of fun; it provided us with insight that we wanted to share, which is why I am writing about it here.
The events calendar is fairly standard - a fully responsive Wordpress site consisting of homepage, event detail page, location detail page, organizer detail page, and form pages for managing events. The homepage of the site features the calendar listing color-coded events (color-coding is based on logged-in user’s RSVP response, or lack thereof, to each event being displayed), displaying title and timeframe. When you click an event, a lightbox displays containing summary information about the event--title, date, time, event cover image, location, organizer, etc. Clicking within the lightbox then navigates the visitor to an event detail page, with additional information. Additionally, there is an RSVP action with the comment field, and an avatar listing of those who have already RSVPed. Finally, there is a comments section where users can discuss the event.
The LinkedIn integration acts as the sole method to log in to the calendar site. The way it works is, only users who are members of a particular LinkedIn group are permitted to log in. Registration is not permitted, but logging in for the first time with your LinkedIn account automatically creates the site user account and ties it to the LinkedIn user account, populating name, email address, and profile image on the site with the corresponding LinkedIn user profile.
This site was relatively easy to put together, due to the Wordpress plugins available--for the calendar, I purchased a license for Calendarize-It ($28), as well as a couple of addons--RSVP addon ($15) and Community Events addon ($25). Minimal code customization was required, although it should be noted that there were some rather serious bugs in the Community Events addon that I addressed. Happily, the developers of the Calendarize-it plugin were responsive to my support requests and happy to integrate my fixes with future releases of their product, to preserve those fixes even if the plugin is updated on the site.
The other plugin I employed was Wordpress Social Login (free), which brought the ability to log in with the a LinkedIn account. For this plugin, I added an wsl_process_login_update_wsl_user_data_start action which checks if the user logging in via the LinkedIn login is a member of the LinkedIn group. Just a note about Wordpress Social Login, it was impressive how many hooks they had set up with their plugin. Can’t recommend this plugin for social logins enough!
Other customizations included a basic notification system for event organizers and admins, tied to new event creation and publishing of said events (admins are the only roles permitted to publish events; new events are automatically put into pending when they are created by non-admins).
All-in-all, this was a fairly easy site to set up, despite the complexity of the events calendar requirements. Calendarize-it handled the bulk of my requirements out-of-the-box, for cheap. Ultimately, I was disappointed with the Community Events addon, which contained several serious bugs and did not deliver everything I felt it should have. For one, out-of-the-box, the event creation template was missing a critical closing DIV that prevented it from being styled correctly and the scripting from processing. Which meant that it did not function at all, until I located and fixed the problem. Also, the purpose of the Community Events addon is to permit creation of events from the frontend of the site, instead of the backend. However, it only offers this for the events themselves, and not the locations or organizers, which are part of most events. A major oversight, in my opinion. But don’t let this dissuade you from purchasing the core plugin and other addons--they are a great value and deliver a ton of functionality and customization options.
I tried a few different social login plugins, before settling on Wordpress Social Login. I liked it best due to the sheer number of hooks it provided, and the ease of setup. And, while I only wanted the Linkedin authentication, it offers a nice stack of authentication providers (even github and stackOverflow!).
Finally, for the responsive theme I went with Bones--it is free, fully responsive, and, as a bonus, it is set up for SASS. It worked out quite well, and I have no complaints.
All in all, it took me a couple of weeks to build out and test the site; Alexis implemented the styling in parallel, and Feld performed his meticulous QA to catch some edge cases that I had to correct for. It was a nice, short project that didn’t require creating a full Wordpress plugin or Drupal module from scratch. I enjoy my custom development, in general, but its nice to take a break from deep development to whip up something quick and (relatively) easy.