Debido a que el usuario
@Senpai19899 me ha amenazado con votarme negativamente y muy posiblemente entremos en un conflicto, voy a pasar a dejar constancia de todo por aquí para una posible mediación por parte de un tercero:
1. Indica que no hice el pago completo del 50% inicial.
Realicé el pago al principio del 50% por paypal:
En ningún momento Senpai me indicó que por motivos de comisiones no había recibido los $25 usd.
De todas formas, le acabo de hacer ahora mismo otro PayPal de $5 para cubrir esas posibles comisiones:
2. Me pide que le realice el pago del 50% final cuando la entrega ha sido parcial, y la principal funcionalidad no ha sido desarrollada
El briefing que le envié al principio era este:
Hola,
Necesito que me programes una API con Slim a la que se pueda dar acceso a una tabla de una base de datos.
La tabla sería la siguiente:
Y los endpoints de la API serían:
/auth
Se le pasa:
Devuelve:
- token
/getAntennas
Se le pasa (para filtrar resultados):
- código (opcional)
- operadora (opcional)
- latitud (opcional)
- longitud (opcional)
- radio (opcional)
- dirección (opcional)
- número de resultados (por defecto 20, máximo 500)
Devuelve:
- codigo
- nombre
- operadora
- lat
- lng
- dirección
- tipo
- etiqueta
- banda
- tecnologias
En caso de que no se le pase nada para filtrar, devuelve resultados aleatorios.
¿Qué me costaría?
Gracias
Partiendo de este briefing, el programador entrega un proyecto que no lo cumple:
3. El programador se niega a programar parámetros porque argumenta que son opcionales
Comenta lo siguiente:
lo de los parámetros colocaste opcional y estas dando un ejemplo de pasar varios parámetros por url con funcionamiento de sql sacando un radio y cosas extras no pautadas al iniciar, ya te explique que esos parámetros con coordenadas y direcciones no funcionara con 1 tabla sin relaciones
No sé si el programador es junior, pero normalmente en un briefing, cuando en los parámetros se marcan como opcional, no indica que sea opcional su programación, sino que en el uso de un endpoint, ese parámetro puede ser opcional en una consulta. Es decir, que no hace falta utilizar todos los parámetros a la vez en una consulta.
Como ChatGPT es más imparcial que nosotros, dejo que lo explique mejor:
Por lo tanto, para que la entrega sea completa, estos parámetros deben ser programados para poder ser utilizados en una consulta, aunque sean opcionales en la consulta.
4. El programador indica que debería cambiar la estructura de la base de datos para poder implementar dichos filtros
El programador me hace las siguientes indicaciones:
varios parámetros por url con funcionamiento de sql sacando un radio y cosas extras no pautadas al iniciar, ya te explique que esos parámetros con coordenadas y direcciones no funcionara con 1 tabla sin relaciones
También así:
como te mencione las coordenadas y direcciones, no funciona mucho la idea como parámetros o filtros, cuando diseñen diferente las tablas de mysql pueden seguir el ejemplo y agregar esa funcionalidad
Tengo la suerte de ser programador senior, y sé perfectamente que para implementar los parámetros que se solicitan en el briefing no hace falta cambiar absolutamente nada de la base de datos o la tabla.
Voy a poner unos ejemplos que deberían funcionar según el briefing:
/getAntennas?operadora=orange&resultados=1
Como se observa, no limita los resultados a 1 o al número que indico. Observo en el código entregado por el programador que el número de resultados está hardcodeado a 200:
/getAntennas?lat=40.078208&lng=-2.13015&radio=10
Esta consulta debería devolver todas las antenas a un radio de 10 kilómetros de las coordenadas indicadas. El programador me comenta que eso no se puede hacer sin modificar la estructura de la base de datos, sin embargo, con una simple consulta SQL se saca:
Y aquí el resultado (98 resultados en una tabla con más de 77.000 entreadas):
5. Resumen
En mi opinión, el programador no entendió el briefing, se limitó a decirme un precio y luego no me indicó que no podía realizar el trabajo, me entregó algo incompleto, y con mucho código comentado de otros proyectos:
Pese a que posteriormente me entregó de nuevo el código habiendo limpiado todos los comentarios de otros proyectos, la funcionalidad principal sigue sin estar desarrollada.
En ningún momento me indicó que había entendido mal el briefing, y que por $50 no podía añadir las funcionalidades que se solicitaron desde un inicio. En ningún momento quiso renegociar el precio, o devolverme el dinero al no poder cumplir el briefing.
Se limitó a decir que el encargo estaba terminado y que le abone el 50% final.
Le vuelvo a pedir que porfavor, acabe el proyecto para poder utilizar los filtros, y le reitero la no necesidad de modificar la tabla para implementar dichos filtros.
Gracias.