1. An electronic device, comprising: a storage system comprising a coupon database and a recipe database, wherein the coupon database stores a plurality of coupons, the recipe database stores a plurality of recipes, and each of the plurality of recipes comprises a list of ingredients; each of the plurality of coupons is associated with a category and each of the categories is associated with a weight value; the storage system further comprises a weight database storing the weight values for the categories; at least one processor; one or more programs being stored in the storage system and executable by the at least one processor, the one or more programs comprising: a coupon obtaining module adapted to obtain the plurality of coupons from the coupon database, group the plurality of coupons according to the categories of the plurality of coupons, retrieve the weight value of the categories from the weight database, sort the grouped plurality of coupons according to the weight values of the categories, display the sorted plurality of coupons on a display screen of the electronic device, and select at least one coupon from the displayed plurality of coupons according to a user selection in a user interface; the coupon obtaining module is further adapted to increase weight value(s) of category(s) associated with the at least one selected coupon and update the weight database with the increased weight value(s); a keyword generator adapted to generate one or more keywords according to the at least one selected coupon; a recipe obtaining module adapted to obtain one or more recipes by querying the recipe database using the one or more keywords; and a shopping list generator adapted to generate a shopping list of ingredients according to the one or more obtained recipes.