The world is becoming more and more technology driven, with more reliance and dependence on computers by all age groups. Increased computation allows different service providers the opportunity for better resource allocation for their clients whilst simultaneously enabling clients to better adjust variable factors to suit their lifestyle or needs. Areas of application include the smart grid which allows more fine grained control over electricity distribution including local energy exchanges as well as electric vehicle charging; and the allocation and pricing of parking spaces. Despite their differences in service and circumstance, these problems exhibit similar challenges with optimal resource distribution. In this project, we will apply mechanism design and find mechanisms that allow efficient allocation of resources whilst taking into account the rational behaviour of participants as well as other potential uncertainties. Hence, we aim to improve system usage and efficacy by designing algorithms that not only ensure good distribution of resources, but also work robustly under uncertainty and guarantee that all users can confidently utilise the system without the risk of selfish behaviour costing their use of the system.