El sistema de software a desarrollar es una aplicación que pueda ejecutarse en MacOS. La aplicación debe guardar registro de la actividad del usuario en el dispositivo en que se instaló. Cada registro consiste en una fecha, hora, duración, nombre de la aplicación y título de la ventana. También es deseable que se registre la cantidad de clics/toques y la cantidad de teclas ingresadas (sólo la cantidad, no se debe discriminar qué tecla se presiona). Cada usuario puede estar vinculado a uno o más proyectos, cuando la aplicación está activa se debe poder elegir en qué proyecto se está trabajando, el identificador del proyecto deberá ser incluido en los registros.
Periódicamente la aplicación debe enviar los registros capturados al servidor, cuando no haya una conexión a Internet disponible los mismos deben ser almacenados hasta que se puedan enviar.
El usuario debe tener la posibilidad de registrar tiempo “Privado”, en la interfaz de la aplicación deberá haber un botón mediante el cuál el usuario pueda entrar y salir de este estado. Mientras se encuentre en estado “Privado” no se deben registrar el nombre de la aplicación, título de la ventana y número de clics/toques y teclas presionadas, sólo quedará registro del inicio, final y duración del periodo privado. De manera similar la aplicación deberá registrar el estado “Inactivo” que se debe iniciar automáticamente después de un periodo de tiempo en el que no se haya detectado actividad por parte del usuario.
Ante el servidor cada usuario se identifica con un usuario (su correo electrónico) y una contraseña, el software debe permitir al usuario especificar estas credenciales, las cuáles deben almacenarse hasta que el usuario elija utilizar otras distintas.
Estimado
Tengo mas de 4 años de experiencia en iOS y Mac OS, espero me puedas dar la oportunidad de trabajar contigo en este proyecto tan interesante.
Recientemente asistí al WWDC 2014 y tengo mucha experiencia en la arquitectura, diseño y consumo de APIs REST.
Saludos