Find Jobs
Hire Freelancers

Aplicación en NodeJS

N/A

Closed
Posted about 9 years ago

N/A

Paid on delivery
IMPORTANTE: - Leer atentamente la propuesta. - No contestar con respuestas pre hechas. A los pre-seleccionados se les pasará una documentación más extendida. <em><strong>Resumen</strong></em>: Se debe desarrollar una aplicación utilizando las tecnologías NodeJS y MongoDB el cual llamaremos “Planificador” (de Trabajos). El “Planificador” obtiene desde una base de datos “Trabajos” existentes y debe insertar en otra base de datos “Ordenes de ejecución de Trabajos”, en base a la configuración de momento de ejecución de cada “Trabajo”. Esto es la misma idea que el “Programador de Tareas” de Windows o el “cron” de Unix. <em><strong>Extendido</strong></em>: Al iniciarse el “Planificador” obtiene desde una base de datos todos los “Trabajos” existentes.  Cada “Trabajo” obtenido de la base de datos tendrá, entre otros campos: - _id: ObjectID. Identificador único del Trabajo - nombre: String. Nombre del Trabajo - fechaMod: Date. Ultima fecha en la cual fue modificado - planificaciones: [String]. Una o más configuraciones de cron tipo unix Es muy importante el campo “planificaciones”. Cada “Trabajo” se debe ejecutar cada determinado tiempo este está especificado en una o más configuraciones que se encuentran en la propiedad “planificaciones”. Ejemplo - _id:  - nombre : “Tomar Cafe” - fechaMod: - planificaciones: [‘/30 10-18 * * *’,”0 22 * * 6,7”] Entonces el Planificador al ver esto deberá entender que el Trabajo “Tomar Cafe” se debe ejecutar “cada 30 minutos entre las 10 y las 18 horas todos los días de la semana” y “ a las 22 horas los sábados y domingos”. X cantidad de minutos antes del momento de ejecución, deberá agregar a otra base de datos la “Orden de ejecución de Trabajo”. La “Orden de Ejecución de Trabajo” tiene las siguientes propiedades: - _id: ObjectID - - tra: {Object}. Información del trabajo - - _id: ObjectID. Identificador del trabajo - - fecMod: Date. Fecha de modificación del trabajo - fecPla: Date. Fecha en la cual se debe ejecutar el trabajo. Además deberá agregar en una base de datos, colección “Ordenes_ya_planificadas” un documento el cual tendrá el identificador del trabajo y la última fecha de planificación generada para el trabajo. <em><strong>NO duplicar las Ordenes de Ejecución de Trabajo</strong></em> Cuando el Planificador se inicia, obtiene los trabajos y resuelve los próximos momentos en los cuales se debe ejecutar cada uno de ellos, no se deben generar Órdenes de Ejecución de Trabajo para aquellos momentos en los cuales ya se agregó una orden. Debido a esto la existencia de la base de datos “Ordenes_ya_planificadas”. Imaginemos esta situación: El planificador genera órdenes de trabajo y por un motivo se cierra inesperadamente. Lo dicho anteriormente es útil para estos casos. <strong><em>Pruebas</em></strong>. El trabajo también incluye la realización de tests para confirmar que la app funciona correctamente. Los test deben ser realizados con Mocha. <em><strong>A tener en cuenta al momento de desarrollar la aplicación</strong></em> • En NPM ya hay módulos existentes que pueden interpretar configuraciones de cron, se deberá investigar y elegir el mejor que se adapte a la necesidad de la aplicación.  • Los comentarios, los nombres de objetos, variables, funciones, etc deben ser descriptivos y estar en español. • Todas las métodos deben tener un header en el cual se explique cuál es la tarea del método, los parámetros que recibe y en caso de corresponder, la respuesta. También cada archivo .js debe tener un header el cual explica cuáles son las responsabilidades del módulo. • Se debe utilizar el módulo para logs. • Se debe utilizar el módulo para los archivos de configuración (se deben escribir en YAMP). No debe haber constantes en la aplicación que no se carguen desde el archivo de configuración. • Se debe utilizar el driver nativo de MongoDB. Ya que no se justifica el uso de algún framework como mongoose.
Project ID: 12388617

About the project

1 proposal
Remote project
Active 9 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
1 freelancer is bidding on average $250 ARS for this job
User Avatar
Hola, Antes que nada, quiero comentar que me gusta el proyecto porque parece un lindo desafió y me interesa saber para que se lo requiere. No soy un experto con Node, pero programo hace mas de 15 años. Cual es el plazo de entrega? Comentario: Según lo que entiendo de la especifica, no es necesaria la “Ordenes_ya_planificadas”, _id + fecPla deberían ser únicos en “Orden de ejecución de Trabajo” y por lo tanto debería poder validarse antes de insertar el nuevo documento. Saludos
$250 ARS in 10 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of ARGENTINA
Capital Federal, Argentina
5.0
2
Payment method verified
Member since Feb 21, 2015

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.