Amplifying DC signal via BJT
The trick that isn't mentioned yet is that your LED may show you 700mV with your voltmeter, but that's because your voltmeter is a crazy high input impedance (like 10Meg probably).  The LED can't source much current - Maybe nano-to-microamps at best.  In other words, it has a very high output impedance.  If attached to a load much smaller (say, the 10k base resistor of a BJT amplifier) is not going to have the current drive needed.  Your 0-700mV signal will disappear.  BJT's are current-devices, not voltage.  This would be way easier if you had MOSFETs handy, because those ARE voltage controlled (nearly infinite input impedance).  But you don't - You have BJT's - so you gotta deal with currents instead of voltages. 

TO simulate the LED, a 0-700mV-0 variable voltage source and a 10MEG resistor are connected to the base of the first transistor.  This resistor is NOT part of the circuit you'd build!!!!    It represents the output impedance of the LED.   (i.e. your LED is simulated by the voltage source AND the 10Meg resistor)  I don't know what the impedance actually is, but it's gotta be in the 1-10M range at least.  Note you DO need the 100k resistor here.  

Since all you have are BJTs, the first stage should be a voltage follower.  LIke your voltmeter, and like a good JFET OPAMP, this circuit has a high input impedance, so it'll buffer the LED current.  You don't get voltage gain here - You get current gain.  That'll let us drive the next stage.

The rest of the circuit is simple, just a couple typical common emitter amplifiers.  The diode in stage 1 lifts the output high enough to forward bias the base of stage 2.

Three pics.  First two are the circuit.  One clean one so you can read it easily, the second shows all the initial bias voltages &amp; currents  (this is when LED current = 0) to help your understanding and troubleshooting.

Third pic is plot of voltages. Note the blue trace showing LED action.  It shows the LED source going from 0V->0.7V->0V, but you see it as 3.3V->2.6V->3.3V.   DOn't be fooled by that. It's VCC referenced, not GND referenced, so you see the voltage as a subtraction...

Each trace is plotted at locations shown by arrows in the first pic.   The yellow trace is the output of the last transistor - This is what you're interested in.  You'll note my voltage rail is 3.3V, and that the output nearly goes the full requested 0-3.3V  (Not quite, but hey - You're not paying me here  ;) Seriously, it would be very very difficult to achieve True rail-to-rail - You're not getting that with a practical discrete transistor circuit -  

This won't work exactly as is because it'll be dependent on each transistors Beta, but you can definitely tweak it.   Build it a stage at a time, and reference the voltages shown.  Tweak resistors to get those points to closely match.