How to make a site like Amazon - ebay

Hey Guys
I am a web designer on a hard(very, very hard) quest to make a similar site to Amazon/ebay.

I have been looking it up and i realise how hard it is going to be, but one way or another i have to do it.
I will be making it using PHP, MySQL. I am pretty good with HTML and CSS. I have little experience with PHP.

Right now i am reading and applying methods from - Build Your Own Database Driven Web Site Using PHP & MySQL
I aim to make an ecommerce site first and then carry on with that.

I am not expecting all of my answers from one source.
However, i am willing to bring all the bits and pieces together and make this happen.

I need all the help i can get! Thanks!!

I’d learn to walk before you can run.

The biggest issue with a site the size of Amazon/ebay is just that - the sheer size of the things. Writing a website that can scale to the number of users who are simultaneously connecting to the site is a major technical challenge in its own right. On top of that you’ll need to know how to write code that can scale in terms of being able to add new features without breaking stuff etc…

To do something on the scale of Amazon would take a large team of very skilled and very experienced programmers a long time and a lot of money to make.

In terms of the basic functionality and not taking scaling into account, some of the functionality itself could be mirrored to an extent, but realistically if you’re just starting out you want to be setting your target far lower to learn the basics first.

Ok, makes sense.

What would you recommend i start with?

In terms of a project to work with? Hard to say - perhaps think of something you’re interested in and make something around that?

I started by making a site (no longer online as this was 6/7 years ago now) that allowed people to play leagues on an online football game. It required user registration, user login, and automatically updated the football tables depending on the scores people posted. I did that because I enjoyed the game. Is there anything you can think of in a similar vein that might be interesting for you?

If not then I’d suggest at least making a site that has user registration + user login, as that’d teach you about sessions and stuff like that. Then I dunno, think about stuff you find interesting. Perhaps do a to-do list that allows you to login, set dates for things and will email you to remind you about upcoming things or something like that?

Don’t do anything massively complicated as you’re just learning for now. The stuff I’ve mentioned above will teach you plenty to get going :slight_smile:

I really want to be able to make an ecommerce site. Where i sell items, and users log in, i can save their details if they like.
Basically a fully functioning ecommerce site.

May seem like something really complicated but this is where i would like to start off.

Perhaps start here: http://net.tutsplus.com/tutorials/tools-and-tips/so-you-want-to-accept-credit-cards-online/

I am not just gonna jump in and try to master an ecommerce site.
I would just like to know what i need to learn and which languages i will be using

The above link provides you with a means to actually handle money - you definitely won’t be writing code that will actually process money yourself (you’ll always be using a third party service of some variety for that).

You can do this all in php and html/css/javascript. You’ll need to know how to do things like sessions in php and how to read/write to and from a database.

I would actually recommend creating a user login area that restricts what users who are logged in can and can’t see first, and then take it from there. That will teach you about sessions and stuff like that.

In terms of learning php itself, there’s loads of resources online. Nettuts is good.

Here’s a couple of good articles on there:

Avoid w3schools btw. People keep recommending it on here, and it’s crap.

So, basically you want to learn to create a website starting with the Amazon website.
I have to say it: you’re doing it wrong! :slight_smile:

First question: how did you get this “quest to make a similar site to Amazon/ebay”?
Why do you need this? Is it a personal challenge, a company test or what?
(I doubt a serious company could give you such a task, without mocking you)

Second Q: You say you’re a web-designer. Why do you want to change your path?
First, being a programmer is way different than being a designer.
Second, you cannot do both. You have to focus on something.

Update // The signature of aaarrrggh - http://www.phptherightway.com - is a great resource to check what you should learn.

Thanks aarghh i will be checking them out!

@vectorialpx. I have some really good ideas for business and i need to put them into practice.

I really want to learn developing as well.
I realise that i may have to do a few websites during the proccess however i am willing to do so.

During my research i was recommended a few different “paths”

1.from scratch
2. Php framework
3. Php scripts

I have some idea of what these are.
However i am not too sure of the advantages and disadvantages of them. Especially for what i am aiming to do…
Any help?

Thanks a lot for the answers guys!

Ow yes i have used w3schools before. Weren’t too happy with them.
But why would you say they are “crap” ?

Php scripts will be entire libraries or even blocks of functionality that you can (in theory) use. I wouldn’t recommend going down this route unless you know what you’re doing, because there are far more poorly written scripts out there than good ones. You’ll end up with an incoherent mess quite quickly if you just attempt to stick a bunch of scripts together.

From scratch is obvious - just write stuff yourself from the ground up.

Frameworks are a different thing altogether - there are many frameworks, but generally the principle is the same - they tend to have lots of (usually well written) code that helps you from having to re-write stuff that happens a lot in general web applications, and leave you to write only the code that is unique to your application. So for example, you may use some of their code to deal with user permissions and user authentication, without having to re-invent the wheel and write it all from scratch yourself.

However, with Frameworks comes a learning difficulty (all frameworks are different, although most generally follow what is called the MVC (model view controller) pattern. You will also generally need to know how to write Object Oriented code before you really start working with a framework.

So generally, I’d recommend starting by writing from scratch to get the hang of the language. You will make mistakes. You will find your code becomes hard to change over time and stuff may stop working. You’ll find sometimes you’ll change something somewhere and it’ll break something somewhere else that you hadn’t anticipated. All this stuff is good for you though because you’ll start to learn what things work well and what don’t, and over time I’d recommend THEN moving to a modern framework such as the Zend Framework or Symfony 2.

Don’t expect to get rich by making your first website. You’ll make mistakes on your first site and you’ll almost certainly scrap it in the future when you start to get better (if you persevere).

As Victorialpx mentioned above, a good resource is http://www.phptherightway.com take a look at that for some good advice and starting points too.

Easier to just send you here: http://w3fools.com/

It’s easily possible for one person to create all of the code required to run a site like Amazon. That’s the beauty of dynamic web content. In essence you’re just writing a set of rules and tools that connect to data in a database which is managed by the user base. This is very common place on web forums such as Sitepoint. Make no mistake about the amount of work that it is, but it’s definitely doable and don’t let anyone out there tell you that it can’t be done. However one valid point is that when a site gets as big as Amazon or Facebook cheap and easy web hosting solutions simply can’t keep up. But if you ever make a website that is so big and busy that you can’t power it on a $100/month hosting package chances are that you are making enough money to pay server experts to manage the server/hardware/cloud aspect of it for you.

I suggest you write your own PHP based forum software. That will teach you how to let users create their own accounts and the kind of issues that arise from allowing the public to access your database. Plus if you ever make it to the point where you are doing Ecommerce then you will need some kind of ticket support based system anyways, in which case you’ll already have your own custom support forums already built.

I’ve actually built a website very similar to Facebook in functionality a few years ago, it took me about 6 months but it had all of the same features minus the “app” system. With enough determination and time I’m confident you could pull it off.

It can’t be done. You don’t know what you’re talking about.

Easy? No!
Posible? Yes… by your own, assuming you are a good programmer, in 1 or 2 years.
It’s not about the code, it’s about the concept, specifications, details.
Some teams take one month or more to talk about a single feature.
Assuming that you will copy the entire concept, by then, Amazon will change so much you will not even know what you’re doing :slight_smile:

Well, I don’t want to discourage you but, being a designer, you could handle the design and take a coder friend to help you with the PHP part. You don’t have to learn PHP just to accomplish one project.

Now, if you insist to change your path, noone can stop you :slight_smile: just do it.
Install a WAMP server and start typing code.

  1. create something from scratch (a simple website, a simple database connection) to understand the code.
  2. read about OOP (read the manual and examples) and start your own class
  3. read about MySql and create some JOINS
  4. create your own framework - you will understand concepts
  5. use a framework (like Zend or CodeIgniter) and play with a simple project
  6. Start your main project.

Good luck!

Please, go on. Why couldn’t it be done?

Well just to clarify, I’m assuming the OP doesn’t want to copy Amazon verbatim. But he wants a site similar to it. Obviously there will be challenges both on the coding front as well on the design and layout of how all the components work but it is “EASY” in the sense that it’s not like he’s inventing anything new. Creating a site that is “like” another site is just re-inventing the wheel. It’s just about time and follow through.

[font=verdana]Sorry to inject a note of sanity in here, but don’t forget that for Amazon, their website accounts for probably less than 1% of their workload. Setting up and running the website is trivially easy in comparison with sourcing the products for sale and distributing them!

If what you’re looking for is more along the Amazon Marketplace model, that’s going to be quite a different proposition, and is a whole lot more technically and legally challenging, although obviously you won’t have the same infrastructure needs.[/font]

Amazon, as far as I understand is a lot like ebay in the sense that Amazon doesn’t source much if any products at all. Instead they permit people like you or I to list products of our own in their database, and they act as the big digital market middle man, just like Ebay minus the auctioning. But if that’s not how Amazon works, then you would be quite correct that the real work load of Amazon is the inventory management, but that’s not what the user is asking about, he’s just asking about creating a website that functions similar to Amazon, which I personally don’t believe is a “massive” challenge, it’s a lot of work, I’m not denying that, but it’s certainly doable by one person who is determined.