It's portable so it obviously has a battery. The Pi takes quite a bit of power so it needed to be rechargeable and include a charger. Adafruit make a great device called the PowerBoost 1000C which takes care of the core charging and power supply functions. But I really wanted my project to work like my phone does:
I couldn't find anything that provided all the functionality I wanted - so I built my own
pi_power consists of fairly straightforward circuitry that links the PowerBoost to the Pi in conjunction with two python scripts that run in the background and monitor the battery voltage.
If you are building a portable RasPi project then you might want to take a look