API REST con Express y MongoDB.
Para probar el proyecto local debes instalar Node.js y MongoDB. A continuación, debes seguir los siguientes pasos:
- Clona el repositorio.
- Accede a la carpeta config y crea un archivo llamado
config.env. Edita el archivo y coloca lo siguiente:
PORT = 3000
MONGO_URI = mongodb://127.0.0.1:27017/homecare
STRIPE_SK = <SECRET_KEY>
STRIPE_PK = <PUBLISHABLE_KEY>
- Guarda el archivo.
- Situate en la carpeta raíz del proyecto y abre la terminal. Ejecuta el comando
npm i. - Finalmente, para iniciar el servidor web ejecuta el comando
npm run start.
URL local: http://localhost:3000
URL Vercel: https://homecareplus.vercel.app
/api/registrar-usuario(POST): Registrar un usuario. Funciona tanto para clientes como para prestadores de servicios. Por body recibe los campos:nombretelefonosexo: Femenino: 1, Masculino: 2tipoUsuario: Cliente: 1, Prestador: 2imagen(en base64)callenumerocpcoloniamunicipioestado
Y en caso de ser prestador de servicios, el campo profesion.
/api/login(POST): Iniciar sesión. Funciona tanto para clientes como para prestadores de servicios./api/usuarios(GET): Listar todos los usuarios (prestadores y clientes)./api/usuario/:idUsuario(GET): Obtener un usuario por su ID (sustituir :idUsuario por el ID correspondiente)./api/usuario/:idUsuario/editar(PATCH): Editar un usuario por su ID (sustituir :idUsuario por el ID correspondiente). Recibe los campos:nombretelefonosexo: Femenino: 1, Masculino: 2imagen(en base64)callenumerocpcoloniamunicipioestado
Y en caso de ser prestador de servicios, el campo profesion. NOTA: No actualiza email ni contraseña.
/api/usuario/:idUsuario/eliminar(DELETE): Eliminar un suario por su ID (sustituir :idUsuario por el ID correspondiente).
/api/prestador/:idPrestador/registrar-servicio(POST): Registrar un servicio usando el ID de un prestador de servicios (sustituir :idPrestador por el ID correspondiente). Recibe los campos:titulodescripcioncategoria: Recibe en string alguno de los siguientes valores:Niños: Servicios para niños.Adultos: Servicios para adultos mayores.General: Servicios para el público en general.
imagen(en base64)precio
/api/prestador/:idPrestador/servicios(GET): Listar los servicios publicados por un determinado prestador de servicios, dado por su ID (sustituir :idPrestador por el ID correspondiente)./api/servicios(GET): Listar todos los servicios./api/servicio/:id(GET): Consultar un servicio dado por su ID (sustituir :id por el ID correspondiente). Obtiene la información del servicio y del prestador de servicio que lo proporciona./api/servicio/:idServicio/editar(PATCH): Editar un servicio dado por su ID (sustituir :idServicio por el ID correspondiente). Recibe los campos:titulodescripcioncategoriaRecibe en string alguno de los siguientes valores:Niños: Servicios para niños.Adultos: Servicios para adultos mayores.General: Servicios para el público en general.
imagen(en base64)precio
/api/prestador/:idPrestador/servicio/:idServicio/eliminar(DELETE): Elimina un servicio dado por su ID (sustituir :idPrestador y :idServicio por el ID correspondiente al servicio y el prestador del mismo).
/api/cliente/:idCliente/pagar/:idServicio(POST): Pagar un servicio. Recibe por la URL el ID del cliente (:idCliente) que contratará el servicio y el ID de este (:idServicio). No recibe parámetros por body./api/cliente/:idCliente/solicitar/:idServicio(POST): Solicitar un servicio. Recibe por la URL el ID del cliente (:idCliente) y el ID del servicio a contratar (:idServicio). Por body recibe solo la fecha y hora (string) en que se realizará el servicio, con formatoYYYY/MM/DD HH:MM:SS. El nombre de dicho parámetro esfechaServicio./api/pedido/:idPedido(GET): Muestra la información completa de un pedido. Funciona tanto para clientes como para prestadores de servicios. La información estará en una Activity./api/cliente/:idCliente/pedidos(GET): Lista todos los servicios contratados de un cliente dado por su ID (:idCliente). Esta información se mostrará en un Recycler View./api/prestador/:idPrestador/pedidos(GET): Lista todos los servicios prestador de un prestador de servicios dado por su ID (:idPrestador). Esta información se mostrará en un Recycler View./api/pedido/:idPedido/editar(PATCH): Actualiza el estado de un servicio. Recibe por body el parámetroestado, con alguno de los siguientes valores (en string):canceladorechazadoen_procesofinalizado
/api/pedido/:idPedido/editar/fecha(PATCH): Actualiza la fecha en que se proporcionará un servicio, dado por su ID (:idPedido). Por body recibe el parámetrofechaServicio, con la fecha y hora (string) en que se realizará el servicio, con formatoYYYY/MM/DD HH:MM:SS./api/pedidos(GET): Obtiene todos los pedidos. Solo para proceso de desarrollo.
- Solicitado: El cliente ha solicitado el servicio (default).
- Cancelado: Servicio cancelado por el cliente.
- Rechazado: Rechazado por el prestador de servicios.
- En proceso: El servicio esta siendo proporcionado en este momento.
- Finalizado: El servicio ha sido completado.
-
/api/cliente/:idCliente/calificar/:idPrestador(PATCH): A través de la URL recibe el ID del cliente (:idCliente) y el ID del prestador a calificar (:idPrestador). Recibe a través del body los parámetros:calificacion: Un número entero del 1 al 5.comentario(opcional): Una cadena de texto con el comentario dirigido al prestador.
-
/api/prestador/:idPrestador(GET): Ver las reviews de un prestador de servicios, así como su información más general.
/api/buscar(GET): Buscar servicios dados por su categoría. Se le envía el parámetrocat, con alguno de los siguientes valores (string):NiñosAdultosGeneral
/api/prestador/:idPrestador/validar(PATCH): Cambia el campo 'validado' de false (valor por defecto al registrar un usuario prestador) a true. No recibe ningún parámetro.