To implement this feature, you could use a combination of technologies such as: