Five months ago, I was recruited by the Schwartz Communication Institute as a “Presidential Intern,” through a program originated by President Stan Altman. The Presidential Leadership Program was designed to provide students with hands-on experience contributing to substantive projects for the College.
My work was to begin rebuilding the Institute’s website. The new website was going to run on WordPress, and I would need to write a plugin as well. Sounded like a lot of fun, but for someone who barely knew WordPress, it also sounded like a challenge.
My name is Florian Chauvin. I am an exchange student from France (Lyon), enrolled in the MBA program in Finance, at Baruch. Five years ago, when I first went to College, in France, I decided to learn how to build websites in order to make a little money. I liked the idea of learning something that was probably going to help me in the future instead of going to work for McDonald’s as many French students do. Looks that I was right. The Schwartz Communication Institute sounded more interested in a web designer/programmer than in a Big Mac expert.
Therefore, even though I am a self-learner, I would consider my knowledge of php at the time I started to work for the Institute as fairly advanced. This background helped me quickly learn how to use WordPress and how to develop a plugin.
WordPress is pretty easy to work with. I was once told that if code could be thought as poetry, then parts of the WordPress code were lousy poetry. I have to say that I didn’t really have the opportunity to evaluate the accuracy of this statement since you can write a plugin pretty much without having anything to do with the core code of WordPress itself. This turned out to be a great point.
The major critique that I could address to WordPress’ plugin system is the small amount of documentation available out there. It is sometimes hard to find information about functions that are not among the most popular. As soon as you want to do something a bit more complicated than just using a predefined hook, you can end up spending hours on Google, forums and the codex before coming up with an answer. For example, it took me quite a while to figure out how to implement AJAX functionality on the front-end while keeping it reasonably clean. It is usually just a matter of time before getting things to work and a few trial and errors do the trick just fine, even though the process can be somewhat frustrating.
The first part of this Internship has been to write a room reservation calendar plugin that would allow the Institute to effectively manage the rooms used by Fellows to meet with students. The challenge was to be able to represent the different rooms in the same calendar so that it could be seen at a glance, which ones were booked at what time, by whom. We would therefore need to have a representation of the time, the day and the room in a 2 dimensional area. Squaring the circle basically. We thus compromised and decided that seeing a lot of days at the same time was less important than seeing all the rooms.
Despite all the great calendar plugins out there, we couldn’t find one that could be customized enough to do what we wanted, so I wrote a new plugin. I probably spent about 200 hours on this plugin and tried to make the code as flexible as possible, even though I am sure it would still look amateurish to a professional.
I spent the rest of my time rebuilding the website, not only to make it look more appealing and modern but also to implement some social networking features that would contribute to making it a hub around which the Institute’s online life would revolve. For that matter, the WordPress plugin Buddypress is the ideal solution. It allows members to interact, create groups, forums, personalize their profiles and so on.
My main job here was to create a visual theme for the Institute. The easiest way was to adapt the Buddypress default theme to our needs. Nothing more than a little CSS, HTML and a few other plugins were necessary to complete the project.
- Buddypress – Social networking functionalities
- Custom Profile Filters For Buddypress – Turns personalized words into links in members profiles
- Peter’s Login Redirect – Redirect users after they log in, depending on their class
- Exclude Pages – Makes specified pages visible only for logged-in members in the top navigation. (The plugin has been slightly modified)
- Member Access – Makes specified pages accessible only to logged-in members
- Redirect – Adds the possibility to turn specific menu links into external links
- List-Members – Generates a list of members for staff directory
- mCal – Online reservation calendar used for the rooms management
- Contact Form 7 – Contact form
On a more personal note, this Internship has been a great opportunity to meet a lot of people and explore new horizons. Being a Finance major willing to work in the Corporate Finance department of a major entertainment company, acquiring an extensive knowledge of WordPress (used by a growing number of businesses) will undoubtedly make my profile more valuable and attractive. I believe that in many aspects, this internship was one of the most rewarding educational experiences that I’ve had.
Also, I would like to thank everybody at the Institute who helped me, inspired me and believed in me. I just wish I had had more time to improve the website and develop new features that would have made it even better. Maybe a job for a future intern.