We introduce a general model of resource allocation with customer choice. In this model, there are multiple resources that are available over a finite horizon. The resources are non-replenishable and perishable. Each unit of a resource can be instantly made into one of several products. There are multiple customer types arriving randomly over time. An assortment of products must be offered to each arriving customer, depending on the type of the customer, the time of arrival, and the remaining inventory. From this assortment, the customer selects a product according to a general choice model. The selection generates a product-dependent and customer-type-dependent reward. The objective of the system is to maximize the total expected reward earned over the horizon. The above problem has a number of applications, including personalized assortment optimization, revenue management of parallel flights, and web- and mobile-based appointment scheduling. We derive online algorithms that are asymptotically optimal and achieve the best constant relative performance guarantees for this class of problems.