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.
- Overall Owner / Main Admin
- Site Owner/Site Admin
- Site Owner/Site Admin
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:
or (if OpenID enabled, not sure yet)
Notes: ./script/generate authenticated user
Notes: For feeds of orders, order status, etc.
Time Zone Plugin
Notes: For attachements
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
Acts as taggable
Notes: For tagging products, could be used as a “category” ?
Acts as ferret
Notes: Full text site searching
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.