Working on a Ruby on Rails Project and Some Tips

Posted on the May 19th, 2007 under programming,Rails Ecommerce Project,Ruby on Rails by John

I figured I’d update you all on what I am doing, and will be doing over the next few weeks during my “free” time. I am currently spec’ing out a new Ruby on Rails project, and hope to begin coding right after this post. I figured this would be a good chance for me to blog a bit about rails as well as my project progress. I created a new category just for this project (Rails Ecommerce Project), so if you wish to follow it book mark this link: http://burm.net/category/rails-ecommerce-project/ or via the RSS feed http://burm.net/category/rails-ecommerce-project/feed

Also, any and all suggestions is appreciated (plugins, related links, etc). I can not give the specifics of the project, however I’ll explain the core. The project is a complete ecommerce solution where there will be a backed to control multiple websites. The back end will control all the products / prices / order processing / commissions / sales reports for all the sites from once central location.

Each site will have its own markup / pricing structure, set of products, categories, etc. The back end will also need to support multiple companies, meaning a site might be owned by Joe Blow, so when Joe or his employee’s login, they will only be able to see and access the info for their own site. In addition, there will be different roles for each person on each site. To add to the complexity, there will be also multiple order fulfillment companies that handle the orders once they are received. The choice for the fulfillment company will be made by the overall owner, not the individual site owner. However, I must keep in mind that each site owner must check the order, and process the order, then auto notifying the main owner of the new order for further processing (perhaps by adding a column in the DB flagging the order as being ready for final processing). Sorry if this is confusing, I am using this post to remind my self of the logic.

User Structure:

  • Overall Owner / Main Admin
    • Site Owner/Site Admin
      • Employees

I chose to build the back end of the sites and the front ends as separate rails projects. Why? Because of the complexity and the multiple site factor. I think that building it separately will allow for more flexibility and ease of maintenance. I will also have a complete REST based API on the back end to eventually allow the building of other apps to interact with the RoR app.

Back end notes: Email notification, AIM / Gtalk notification, RSS Feeds

The front end will be resemble a someone regular shopping experience. Shopping cart, Checkout, PayPal, user registration, order status, etc. Non standard stuff: Custom order generator, order status details w/ RSS feeds, customer communication, email notification, and Instant Messaging notification.

Overall the project will be built mostly utilizing REST / RESTful dev, and will attempt to utilize plugins where it would make sense. Plugins that I will be using right off the bat:

Restful Authentication
http://agilewebdevelopment.com/plugins/restful_authentication
or (if OpenID enabled, not sure yet)
http://identity.eastmedia.com/identity/show/Restful+OpenID+Authentication
Notes: ./script/generate authenticated user

RSS Plugin
http://agilewebdevelopment.com/plugins/simple_rss
Notes: For feeds of orders, order status, etc.

Time Zone Plugin
http://agilewebdevelopment.com/plugins/tzinfo_timezone

Notes:

Attachment_FU
http://agilewebdevelopment.com/plugins/attachment_fu
Notes: For attachements

Acts as commentable
http://agilewebdevelopment.com/plugins/acts_as_commentable
Notes: Debating this one… Not sure if I want to use this or code my own – Need to read more on the documentation.

Acts as textiled
http://agilewebdevelopment.com/plugins/acts_as_textiled
Notes:

Acts as taggable
http://agilewebdevelopment.com/plugins/acts_as_taggable
Notes: For tagging products, could be used as a “category” ?

Acts as ferret
http://agilewebdevelopment.com/plugins/acts_as_ferret
Notes: Full text site searching

Globalize
http://agilewebdevelopment.com/plugins/globalize
Notes: localization / globalization

As I was just browsing the web, found a nice little site with a few quick simple Rails cheat sheets: http://www.red91.com/archives/downloads/

Thats its for now, I’ll be sure to post the progress, updates, and my notes along the way. I have quite a challenge ahead, I better get to work.

Similar Posts:

Be Sociable, Share!

Leave a Reply




XHTML::
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>