Si no se cuenta con la posibilidad de clonar el proyecto, también puedes probar la API utilizando Postman. Sigue los siguientes pasos:
-
Descarga e instala Postman: Descarga e instala Postman desde su sitio web oficial.
-
Abre Postman: Abre Postman en tu computadora.
-
Importa la colección de solicitudes: Haz clic en el botón "Importar" en la esquina superior izquierda de Postman. Selecciona la opción "Subir archivos" y selecciona el archivo de colección de solicitudes proporcionado.
-
Modifica la URL base: Una vez importada la colección, busca y selecciona la variable de entorno "BASE_URL". Modifica su valor para que coincida con la URL base del proyecto:
talentpitchassesment-production.up.railway.app
. -
Realiza las solicitudes: Ahora puedes realizar solicitudes a las diferentes rutas de la API utilizando las solicitudes predefinidas en la colección de Postman. Cada solicitud está configurada con los métodos y rutas correspondientes para interactuar con los diferentes recursos del sistema.
-
Visualiza y gestiona los resultados: Después de realizar cada solicitud, Postman mostrará la respuesta del servidor. Puedes visualizar y gestionar los resultados según sea necesario.
Siguiendo estos pasos, podrás probar y familiarizarte con la Prueba Técnica de Laravel utilizando Postman sin necesidad de clonar el proyecto.
- Tener instalado PHP8.2 o superior y Composer en su sistema.
- Acceso a una base de datos PostgreSQL.
- Conocimiento básico de Laravel y manejo de terminal.
-
Clonar el repositorio: Clona el repositorio de la Prueba Técnica de Laravel desde el dominio especificado:
git clone https://github.com/Nicodav28/TalentPitchAssesment.git
-
Configurar el entorno:
- Copia el contenido del archivo
.env.example
y pégalo en un nuevo archivo llamado.env
. - Modifica las variables del archivo
.env
para que coincidan con la configuración de tu base de datos PostgreSQL y otras configuraciones específicas del proyecto.
APP_NAME=Laravel APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug #En caso de no contar con una BDD PGSQL usar los datos de conexion que se encuentran a continuacion. DB_CONNECTION=pgsql DB_HOST=roundhouse.proxy.rlwy.net DB_PORT=35060 DB_DATABASE=TalentPitch DB_USERNAME=postgres DB_PASSWORD=f3e-3DbD5*GbBcfBFB5gbcBaAfC4e51a BROADCAST_DRIVER=log CACHE_DRIVER=file FILESYSTEM_DISK=local QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 OPEN_API_KEY="TU_API_KEY_AQUI" MAX_TOKENS_QUANTITY=3000
- Copia el contenido del archivo
-
Instalar dependencias: Ejecuta el siguiente comando para instalar todas las dependencias del proyecto:
composer install
-
Generar la clave de la aplicación: Ejecuta el siguiente comando para generar la clave de la aplicación:
php artisan key:generate
-
Ejecutar migraciones: Ejecuta el siguiente comando para migrar la base de datos y crear las tablas necesarias:
php artisan migrate
-
Iniciar el servidor: Puedes iniciar un servidor local ejecutando el siguiente comando:
php artisan serve
Una vez iniciado, puedes acceder al proyecto en
http://localhost:8000
.
La API proporciona las siguientes rutas para interactuar con los recursos del sistema:
-
Usuarios:
- Generar datos de usuarios:
GET /api/users/generate/{dataQuantity}
- Obtener todos los usuarios:
GET /api/users/fetch
- Obtener un usuario específico:
GET /api/users/{id}
- Actualizar un usuario:
PUT /api/users/{id}
- Solicitud JSON de actualización:
{ "name": "Nuevo nombre", "email": "[email protected]", "image_path": "nueva_ruta_de_imagen.jpg" }
- Eliminar un usuario:
DELETE /api/users/{id}
- Generar datos de usuarios:
-
Desafíos:
- Generar datos de desafíos:
GET /api/challenges/generate/{dataQuantity}
- Obtener todos los desafíos:
GET /api/challenges/fetch
- Obtener un desafío específico:
GET /api/challenges/{id}
- Actualizar un desafío:
PUT /api/challenges/{id}
- Solicitud JSON de actualización:
{ "title": "Nuevo título del desafío", "description": "Nueva descripción del desafío", "difficulty": 5, "user_id": 1 }
- Eliminar un desafío:
DELETE /api/challenges/{id}
- Generar datos de desafíos:
-
Empresas:
- Generar datos de empresas:
GET /api/companies/generate/{dataQuantity}
- Obtener todas las empresas:
GET /api/companies/fetch
- Obtener una empresa específica:
GET /api/companies/{id}
- Actualizar una empresa:
PUT /api/companies/{id}
- Solicitud JSON de actualización:
{ "name": "Nuevo nombre de la empresa", "image_path": "nueva_ruta_de_imagen_empresa.jpg", "location": "Nueva ubicación", "industry": "Nueva industria", "user_id": 1 }
- Eliminar una empresa:
DELETE /api/companies/{id}
- Generar datos de empresas:
-
Programas:
- Generar datos de programas:
GET /api/programs/generate/{dataQuantity}
- Obtener todos los programas:
GET /api/programs/fetch
- Obtener un programa específico:
GET /api/programs/{id}
- Actualizar un programa:
PUT /api/programs/{id}
- Solicitud JSON de actualización:
{ "title": "Nuevo título del programa", "description": "Nueva descripción del programa", "start_date": "2024-02-09", "end_date": "2024-02-16", "user_id": 1 }
- Eliminar un programa:
DELETE /api/programs/{id}
- Generar datos de programas:
-
Participantes del programa:
- Generar datos de participantes del programa:
GET /api/program-participants/generate/{dataQuantity}
- Obtener todos los participantes del programa:
GET /api/program-participants/fetch
- Obtener un participante del programa específico:
GET /api/program-participants/{id}
- Actualizar un participante del programa:
PUT /api/program-participants/{id}
- Solicitud JSON de actualización:
{ "program_id": 1, "entity_type": "user", "entity_id": 1 }
- Eliminar un participante del programa:
DELETE /api/program-participants/{id}
- Generar datos de participantes del programa:
Para ejecutar los test unitarios se debe ejecutar el siguiente comando en la terminal:
.vendor/bin/pest
En caso de haber instalado las dependencias de manera correcta, el comando deberia generar una salida como esta:
$ ./vendor/bin/pest
PASS Tests\Unit\CreateUserTest
✓ it performs the creation of 1 or more users acording to the generated data from GPT API 26.50s
✓ it throws an error due there's no parameter to specify the quantity of users wants to be created 2.55s
Tests: 2 passed (4 assertions)
Duration: 29.24s