I would like to write a short post about my old attempt to create new amazon and share this old and unfinished project with you.
6 or 7 years ago two friends decided that they need to create something. Of course you should never start small. We decided to have some kind of mini amazon for our little country. Amazon for sure is very complicated system so ours had to be too! You need to be scalable and have a lot of modules if you wanna be big don’t you? So we did. Just look at our open sourced version. So many modules before even starting. JSF and JEE was overshoot for our problem too. Jeez it took ages to get anything done. All this modify/redeploy cycle took way too much time and project was moving pretty slow. When you start something without any plan it seems that everything is possible, but after a while we started thinking about other issues like logistics, partners, payments etc. You know, stuff not related to programming. Soon it became clear that our start up won’t even start properly. So we cut our losses and moved on. Was I sorry? Not a bit. I learned a ton, had fun, and actually after putting project to sourceforge was able to transition to freelancing.
Main lessons learned – never over engineer and always have a plan. Also if you have bad situation you can still make something good out of it. I would say you should never be afraid of failing. The only way to learn is by making mistakes. If you make one – so fucking what? Sure you can read a book – “don’t do this, don’t do that”, but if you fail at something that leaves little scar somewhere inside your brain. That scar makes you superior to the ones who doesn’t have it. Now you KNOW and they just know. This means it is unlikely that you will repeat same mistake later while people with knowledge but without experience might (especially under stress). The younger you are the less costly your mistakes usually are the more of them you should do. That is my opinion.
I’ve spent few days and converted that old project to much simpler version with new JSF version and spring instead of EJB. It builds to a single jar and can be started up on tomcat in few seconds. I uploaded it to github here. Of course it is not finished, untested and have bugs (probably some more after migration) but if you are interested in e-commerce with spring and jsf it might be worth taking a look.
Here are few screenshots of the design we wanted to use created by our friend: