I had an internship with the Suny Albany RNA Institute. This was my second internship with them, and surrounded the completion of my work on the RNA Modification Database (the abstract provides enough information, though the link it provides does not link to my work).
I needed to Expand the search functionality to include non-naturally occurring Modifications. I also needed to create a way for contributors to add modifications, Reviewers to review them, and an administrator to publish them. I was originally going to do all of this using the CMS Drupal, but the information for the Modifications had been recently added to a MySQL database, and the relationships were not structured in a way suitable for Drupal. As a result, about half the site is in Drupal, and the other half uses CakePHP.
The first step was to create a new design for the site. I started this process in Photoshop, went through several drafts and finally came up with a design. I then had the design approved, and was able to begin the next step: turning it into a Drupal sub-theme.
Turning a design into a sub-theme (in my experience) is a two-step process. First, convert the design to HTML and CSS, and then, turn everything you have into a sub-theme. This means adapting your markup to work with Drupal code. It also generally means altering the base theme you’re using, and possibly creating new templates, depending on your sites requirements.
After completing the basic work on the site, I began the most important part of the project: working with the RNA modifications. I won’t go into too much detail here, except to say I have never created and styled so many forms in my life.
As I had said, the Modifications were previously transferred to a MySQL database. This meant I could work with a well-structured database, instead of 109 files. Unfortunately, the database was constructed in a way that caused a few problems. Most of the problems were fairly insignificant, and were as easy to fix as copying, or adding some tables. One problem, however, required a more in-depth knowledge of the MySQL database, meaning I had to get some help from the person who created it (Andy Wright), who also happens to be my boyfriend, making working with him much more convenient. I played “middle-man” for awhile and managed to get him the little bit of information he needed to restructure it.
Some things worth noting:
No one was to blame for any “problems” I encountered with the database, which was something I knew, but I appreciated Dr. Fabris (the faculty member in change of my internship), telling me he didn’t want to play the “blame game”. This is great attitude to have and I’m hoping I encounter it more in the future.
I learned the value of the “middle-man”, or basically, the person who can speak enough of the developers language to get the information across. I can safely say, this would have taken at least 10 times longer if it weren’t for Will Cantara. He’s a bio-chemist who fooled me into believing he was a computer scientist. We once had a meeting that began without him, and everyone around me might have well have been speaking Swahili. Will walked in the room, and suddenly words were translated into something I understood. I can only imagine everyone felt this way.
You always want someone around who knows more than you. Andy thought of using CakePHP, and helped me any time I had questions, making working with the framework much easier. When it came to Drupal, I had no one to go to for help, so it mostly came down to trial and error, and tons or internet research.
Get to know your network administrators, and learn just enough about networking to be able to communicate with them. I got lucky with the research IT group. They know what they’re doing, and they put up with me stopping by to ask questions.
Overall, it was a great experience, and I can only hope I find a job working with people as smart, nice and hard-working as those I encountered here.