En estas soluciones doy por hecho que por lo menos hasta donde resuelve la aplicación lo habéis hecho ya, las explicaciones son a partir de ese momento, y están el el orden que las voy encontrando yo, es posible que haya otras, si se utilizara otra haría cambiar todas las demás, como se puede ver en algún post, con lo que los pasos a seguir podrían ser diferentes.