ePartment54 Version 5.0

ePartment54 on Rails

Comment3 Comments TimeBy Damon on Dec 31 in Website.

Pop the cork on the bottle of Korbel champagne, raise your glasses in the air, and drink up because we are not only celebrating the new year, but also a brand new version of the website. That's right, the site is back in full force unleashing all types of new features for your eyes to browse. Packed full of aesthetically pleasing graphics and a fair share of Web 2.0 functionality, I hope you have Javascript turned on because you are going to need it. You might be wondering where we've been for a little over a year. That's a bedtime story for the kids, but let me give you the abridged version and a short summary of what the site has to offer now a days.

What happened?

Well, a little over a year ago the system that hosted the content for the previous version of the website died a slow and agonizing death. Hard disk went on vacation, files were not backed up, and I was using language that would make a priest blush seven shades of red. Surprisingly enough, I saw it as an opportunity to embark on a new project to produce the next iteration of the site.

Planning and Design

After purchasing the new hardware, it was time to make some decisions about technologies. This time around, I decided to use a LAMP infrastructure. That's Linux, Apache, MySQL, and PHP for you non-techs. When designing the site, I chose to use a different approach. I first designed everything in Adobe Photoshop. This includes all images, logos, and practically every pixel of detail on each page. Some of my buddies will agree with me in that I bugged the daylights out of them asking for their suggestions and feedback about the design. They were quite a help in designing the end product so thanks again to Ittersum, Rafail, McCormick, Pepper, and Dormann! Looking at my graphics folder, I have a total of 2.13GB of design images which were used to sort out the look and feel of the site. Looking back, it's hard to imagine all the work that went into the initial design.

Design to Reality

Once the look and feel were pretty good, I transitioned what were previously images into HTML and CSS. That's no job for the faint at heart, it took literally weeks to sort out the mess which is browser compatibility. For the most part, Firefox and Safari were compliant, but Internet Explorer was more painful than getting a cavity filled without novacaine. For more details, just read Dying for Internet Explorer 7.0, Truth about designing websites, and Peek-a-bitch.

With the entire site now in some form of code, it was time to spice things up a little bit and make the content dynamic.

Choosing a programming language

I've been doing website development for over 10 years and have familiarized myself with a handful of languages including ASP, ASP.NET, Java, Perl, HTML, PHP, CSS, Javascript, and plenty of others. Thus, I wasn't too worried about the language I chose as long as it got the job done. At the time, I selected PHP as my programming language of choice of the site. It was free, well-documented, strong developer community, and integrated well into my infrastructure.

I managed to develop the entire registration section in about 1,000 or so lines of PHP code and it even worked. At the time, I set aside the website for a bit and when I came back, oh what a mess. I couldn't translate the code I had written only a few weeks ago, there was no easy way for me to conduct any testing other than point and clicking my way through the registration, and worse yet, I hated developing in PHP. It was boring, tedious, repetitive, and didn't help me learn anything new. I needed a new language with some character to it. Enter Ruby on Rails.

Ruby on Rails

Most of my life, my web development was done in no methodical or organized manner. The sites worked, but the amount of effort that went into checking stability after re-factoring or just translating my code after the fact was outrageous and cumbersome at best. I had heard rumor of some new magical programming framework called Ruby on Rails, but that's about it. Since I tend to embrace new technology quickly, I figured I'd give it a whirl. Quoting Wikipedia…

Ruby on Rails, often called RoR, or just Rails, is an open source web application framework written in Ruby that closely follows the Model-View-Controller (MVC) architecture.

Yeah, I had no clue what that meant, but the demo videos looked quite promising. About a week into development in RoR I had the entire registration section functional in about 300 lines of code. At this point, I took the idea of PHP, crumpled it into a little ball of binary code, and chucked it out the window onto the streets of Shadyside. Rails was going to be my programming language of choice for the site. It had a full-stack web framework, helped me separate business logic from presentation and testing was baked right in…what more could I ask for. With all this in mind and to keep my opinion of Rails grounded a bit, I certainly explored other similar frameworks (e.g., Django, CakePHP, etc). I stuck with Rails because I enjoyed programming in Ruby and it made sense to me. It's not the holy grail, it's just a tool and it was the perfect one for me on this particular project.

Developers, developers, developers

I had one of them and that was me. However, I often combined forces with those more intellectually inclined than myself to produce desirable results. Take for instance the music section, a few friends from work helped me programatically assess the popularity of songs and albums as well as suggest approaches for making the queries as optimal as possible. Thanks to Hal, Allen, Brad, and Rhoton for all your help!

While we are on the topic of developing, let's talk code. Right now I'm approaching the 5-digit mark with 9,458 lines test code and about half that with production code stumbling in at a whopping 5,077 lines. That's about a 1.9 ratio meaning for every 10 lines of production code, I write about 9 lines of test code. Not bad considering the fact that I'm only doing unit and functional testing at the current time. I haven't done much integration or presentation testing, however I plan on doing so after the initial release.

What's included in the initial release?

I'm glad you asked because there are plenty of nifty features for you to play with while sitting comfortably in front of your computer screen.

Story Section Stories – First and foremost, we have stories. Heck, we always have only this time someone other than me can create and publish them. Stories differ from blogs in that these entries tend to be longer in nature and can be used to summarize something like an event in your life (e.g, vacation, night out on the town, etc). They typically contain a handful of images from the occasion and the story interface itself is designed to be more friendly for these images by providing a slideshow feature.

Blog Section Blogs – Short, sweet, and to the point, blogs aren't meant to convey long, drawn out stories that are rich with images. In fact, pictures aren't even necessary with blogs. Want to complain about Sienna Miller's comment about Pittsburgh, blog about it. It's just a quick "diary" entry about something that interests, irritates, or compels you for whatever reason. If you take the time to browse the site a bit, you'll notice that there are plenty of blogs by me. That's because for the last year I've been developing the site and blogging along the way.

Music Section Music – Totally re-vamped this section is probably one of my favorites. Here's the idea. Whenever I play something from iTunes, the information about the track I'm listening to is recorded on the website courtesy of the Now Playing plugin for iTunes. This section also integrates with Amazon and the iTunes store so that you can conveniently purchase the music through either site. There are playlists, billboards, and plenty more features that allow you to tune into my musical tastes.

Media Section Media – Wallpapers, humorous pictures, live footage…this site comes fully equipped for you to upload and share your favorite images and videos accumulated over time. It supports most major formats including jpg, png, gif, mov, wmv, avi, and mpg. As you might have noticed already, I've uploaded plenty of videos and images to get things started. All I ask is that you be responsible and kind when uploading, no explicit material please.

Webcam Section Webcam – This section started out simple and got somewhat out of control in a good way. Before you could only view the current webcam image given a moment in history. Time for an upgrade. Now the webcam section supports time lapse video, well, to some degree. At the top of every hour, the webcam takes a snapshot of what's going on and stores it. You can view a slideshow of the entire day if you so wish. Wanna see what was happening on December 22, 2006, go ahead? And let us not forget about the live webcam with a refresh button.

User Profile Section User profiles – After registering for an account you then have a user profile. Others can view your profile. It also provides convenient access to all your stories, blogs, and media that you've submitted. Want to add your own profile image? No problem, you don't even have to resize it yourself, using some nifty Javascript (inspired by Digg.com) you can crop your image right on the website.

XML Feeds XML feeds – Smells like chicken, tastes like XML. We have plenty of feeds if you are hungry, both RSS and Atom. This way you can always keep an eye out for new content on the site. You can even customize them to meet your needs. With these you should be able to keep informed of any updates to the site no matter what.

Anything else?

Of course, but you'll have to explore the site yourself Dr. Jones. I've mentioned some of the major features included in this initial release. Over the upcoming months I plan on making additional updates based on feedback and to incorporate some of the features that I didn't have time for in this version.

In closing…

Four score and over a year ago I started this project. Since then I've been hounded, questioned, and otherwise harassed about when everyone could expect the website to be up and running again. Well, today, December 31, 2006 marks the initial release of ePartment54 Version 5.0. Thanks to everyone that contributed their time to providing feedback, making suggestions, and helping me develop the site. It was quite a rewarding experience and I hope you all enjoy using the site as much as I did developing it.

As always, I welcome feedback and suggestions. There is a feedback section online so please feel free to let me know what you think. I'll be keeping an eye out for bugs and other issues so I can resolve them as quickly as possible. Happy Near Year!!!

Slideshow Images

  • Infrastructure Gone Wild
  • Frustration Mounts
  • Servers Get an Upgrade
  • Books + Code
  • Initial Design in Photoshop
  • Final Design in Code
  • Lines of Code in Initial Release
  • Version 1.0
  • Version 2.0
  • Version 3.0
  • Version 4.0

Current Rating: 5.0 rating from 1 vote

  • Current rating is 5
  •  
  •  
  •  
  •  
  •  

3 Responses to "ePartment54 on Rails"

Default_avatar_thumb

adh

December 30, 2006 at 11:10 pm

Congratulations! Your “beta” ended faster than most Google services do! :-)

Default_avatar_thumb

ghana tim

January 04, 2007 at 02:16 pm

bout f’n time geek….jesus….i’ve had 3 jobs (at the same company) in the time in took you to finish this f’n thing

263147_thumb

Damon

January 04, 2007 at 06:50 pm

Oh, what’s this, comments from the cheap seats in Africa? Hey, at least maybe now you can blog about what the heck is going on down there.

Comments are Closed

Name: (Required)
Website:
Comment:
Remember my info