I built a subwoofer for my GCSE technology project nearly 10 years ago. Still using it now, exactly as built. I've also rebuilt some vintage bookshelf speakers with new drivers. All of mine have been done from scratch, not using anyone else's designs. You need to use some software to plot the frequency response to stand any hope of doing it right. (I've used an old program called abacus, I've also used one called basta which is more sophisticated)
You need to know the basics for low end response as the cabinet you build needs to be the right volume for the driver (speaker) you are fitting. Infinite baffle speakers are technically the simplest as they are a sealed box. (need to be airtight) All my speakers have been in ported boxes which basically have a hole with a tube of specific length and diameter fitted to help improve bass response. The cabinet will also need to be stuffed with foam/wool/wadding etc to reduce problems with reflections and standing waves internally.
You can do it in two ways, choose the drivers and design the cabinet to suit (easier) or design the cabinet and then find a driver that suits the design. The drivers you choose need to be of decent quality. Companies like falcon acoustics, europe-audio and wilmslow audio are the ideal places to look for the parts. (remember that you are paying a per driver price so you need to buy two of everything)
The crossover is a network of frequency filtration components (capacitors and inductors) that filter out frequencies so that each speaker sees the frequencies that they are designed to handle. (i.e. removing bass frequencies from the signal going to the tweeter, known as a high pass filter) The easieset approach here is to buy some pre-made ones or a kit if you can solder that have crossover frequencies suited to the drivers you are using. The norm for a 2 way design (tweeter and midbass) is a crossover point around 3.5KHz. (I'm looking at getting some of
these for my bookshelf speakers.) There will be 3 pairs of connections on a normal 2 way crossover. +/- for the midbass, +/- for the tweeter and +/- for the input signal.