Este es un micro-projecto para comenzar a conocernos. Habran futuros projectos y posible trabajo continuado por hora si este sale bien.
Debera estar familiarizado con systemas de desarrollo de software agil, systemas de version control, y dispuesto a notar el tiempo y hacer commits a la central del codigo frequentemente. Todo el codigo debera ser thread-safe y tener en cuenta la condiciones de que muchas conexiones al mismo tiempo pueden estar llamando al servico. Ademas debe crear un test harness y pruebas para verificar que los requisitos sean cumplidos.
Le daremos un repositorio de github y debera subir su codigo ahi frequentemente y estar dispuesto a repasos de codigo. Debera comentar bien el codigo.
El micro-projecto es bastance sencillo pero a la vez una funcion que necitamos en estas semanas. Debera se escrito en Python corriendo sobre Google App Engine y usuando el framework WebApp2 y la base de datos por ndb usando un modelo expando. La idea es sencilla, se llama a un url para agregar un conteo a un objeto con cierto id.
El objeto tiene un limite opcional y dos contador internos (count, waiting). Al llamar al url de agregar (add), el conteo (count) se incrementa. Si pasa del limite incrementa el segundo conteador (waiting) y se devuelve un error, osino se devuelve ok.
No tiene que preocuparse con authorization & authentication.
Crear un servicio rest con las funciones a siguiente:
url de llamada
/raiz/counter/id/setlimit
/raiz/counter/id/add
/raiz/counter/id/total
/raiz/contador/id/waiting
logica:
post /raiz/contador/id/setlimit
una llamada a este url le pone el limite al objecto #id. La information viene por json , {“limit” : ##} Si el limite es 0, entonces no hay limite.
POST /raiz/contador/id/add
una llamada a este url incrementa el contador por el numero de “count” si hay cupo en el objecto #id. La information viene por json , {“count” : ##}. La respuesta es 200 {“result” : “ok”} si hay cupo, o 400 si paso del maximo {“result” : “waiting”}
get /raiz/contador/id/total
una llamada a este url devuelve el total del contador “counter”
get /raiz/contador/id/waiting
una llamada a este url devuelve el total del contador “waiting”
para el trabajo por hora debera poder trabajar por lo menos 4 horas a la semana y no debe esperar trabajar mas que 20 horas a la semana como promedio para nosotros.
Sin embargo, le damos la flexibiliad de trabajar de noche, de dia, desde su casa en el monte, en una cueva de hielo, o sentado en la playa, con tal de que sea responsable, cumplido, y haga buen trabajo!
Dinos en su propuesta por que deberiamos trabajar con usted, y por favor llenar la encuesta en el link que esta aqui para poder mejor encontrar una buena concordancia para nuestras necidades y sus conocimientos. Llenar la encuesta indica que ud. Es capaz de leer cuidadosamente todos los requisitos que hay y que no hay un programa automatico enviandonos propuestas sin leer bien de este documento, por lo tanto llenar la encuesta es un requisito para consideracion a este trabajo.
http://www.surveymonkey.com/s/9P88KMJ
Plazo de Entrega: No definido