Sobre este proyecto
it-programming / desktop-apps
Abierto
Agente que correra como servicio en PCs Windows y que empujara archivos alojados en una carpeta al un servidor Web a traves de una API.
Parametros del servicio:
ActivationDate
Minute
RetryDays
ScanFolder
FileMask
LocationID
ErrLogHistory
HostURL
User
Password
Al inicializarse el servicio debera setear <Minute> en un valor random de 0 a 59, indicando en que minuto de la hora intentara enviar archivos al host.
A cada hora el servicio debera, cuando el reloj de el valor de minutos indicado, revisar si hay algun archivo disponible en <ScanFolder> que coincida con <FileMask> generado con fecha superior al <ActivationDate> dentro de los ultimos <retryDays>, pero aun no enviado al server. En caso que lo hubiera, se conectara al servidor al <HostURL>:<Port> (debera soportar Http y Https), se autenticara, y enviara los archivos pendientes, asi como el ultimo errorlog. Los archivos se enviaran siempre con el prefijo LocationID#YYMMDDHHMMSS#Filename, incluyendo el error log en caso necesario (ver adelante).
La lista de los archivos enviados debera ser almacenada en un archivo "file sent history" durante un periodo de <RetryDays> para no ser reenviados, pero deberan ser borrados del mismo pasado este periodo para que el archivo no crezca indefinidamente. Una vez que los archivos y logs de errores hayan sido enviados con exito, todos los logs de errores deberan ser borrados. Solo se mantendra el log de la ultima conexion para troubleshooting.
En caso de errores de envio, el servicio almacenara un log del proceso en una carpeta temporal. El archivo ErrLog ira creciendo para comunicar los problemas de envio al servidor. El errorLog se separara por dias, teniendo un nombre de archivo que contenga la fecha.
En caso de que los errorres de envio duren mas de ErrLogHistory days, entonces solo los logs de errores de los ultimos dias seran enviados al servidor, de esta forma se evitara que crezca indefinidamente. Reinicio del servicio se carga en el error log. El formato del Error log debera ser de tipo CSV con los datos informativos del proceso ejecutado.
En caso de errores de envio, la app reintentara a cada hora reenviar todo lo pendiente.
Se debera entragar el codigo fuente del servicio.
Temas a considerar durante el QA:
Estabilidad del servicio.
No modificacion de datos en el <ScanFolder>
Depuracion de los logs de errores
Depuracion del historico de envios
No reenvio de un archivo ya enviado
No reenvio del log de errores
Legibilidad del codigo.
Categoría Programación y Tecnología
Subcategoría Aplicaciones de escritorio
¿Cuál es el alcance del proyecto? Crear una aplicación nueva
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Integraciones de API Otros (Otras APIs)
Plataformas requeridas Windows
Plazo de Entrega: No definido
Habilidades necesarias