A system is described. The system comprises: a battery pack that comprises one or more portions; one or more contact points for connecting a charging cable to the battery pack; and a processor communicatively coupled to the battery pack, wherein the processor is operable to: receive a user preference that comprises a first charging level and a first discharging level from a user; perform at least one of charging and discharging one or more first portions among one or more portions based on the user preference; monitor one or more battery parameters of the one or more first portions in real time; and communicate a message that comprises a recommendation of at least one of a second charging level and a second discharging level for the one or more first portions to perform at least one of charging and discharging based on the one or more battery parameters.