https://github.com/nayracoop/cidem-back
Search engine for services offered by UNTREF (Universidad Nacional de Tres de Febrero)
https://github.com/nayracoop/cidem-back
backend laravel5 rest-api
Last synced: 5 months ago
JSON representation
Search engine for services offered by UNTREF (Universidad Nacional de Tres de Febrero)
- Host: GitHub
- URL: https://github.com/nayracoop/cidem-back
- Owner: nayracoop
- Created: 2020-02-27T21:41:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T02:07:02.000Z (over 3 years ago)
- Last Synced: 2025-01-10T01:36:17.899Z (over 1 year ago)
- Topics: backend, laravel5, rest-api
- Language: PHP
- Homepage:
- Size: 2.44 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 23
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# CIDEM UNTREF - Buscador de servicios
[https://projects.nayra.coop/browse/CIDEM]
## Descripción de tecnologías
* REST API
* Laravel 5.6
* MySql (MariaDB)
* Passport (API Authentication)
* VUEjs (Frontend)
* bootstrap 4
## Estandares
Estandar de repuesta API json 1.0 http://jsonapi.org/format/
El mismo está implementado en laravel https://laravel.com/docs/5.6/eloquent-resources
---
*En redacción - a partir de aquí nada es definido*
## Requerimientos
**Tipo de Servicio**: Análisis, Asistencia técnica, Calibración, Calificación, Certificación/Homologación/Regímenes Especiales, Control ambiental/Medio ambiental, Control de calidad, Desarrollo de procesos, Desarrollo de productos, Diseño de producto, Ensayo, Formación de RRHH, Peritaje, Programación y desarrollo software, Tecnología de Gestión, Otros.
**Sector al que está destinado el servicio**: Alimentos y bebidas, Química y petroquímica, Metalmecánica, Automotriz, Minería, Agricultura, Ganadería, Construcción (incl. materiales), Salud humana y animal, Cuero, Papel, Madera, Textil, Biotecnología, Nanotecnología, Tics, Diseño, Energía, Sistema científico tecnológico, Electrónica, Industria cultural, Transporte, Educación, Sociedad civil/Economía social/Asociativismo/cooperativas, Comunidad, Organismos públicos, Sector privado en general, Organismos No Gubernamentales, Otros
## Modelos
### Service
|Atributo|Descripción | Tipo|
|--------|------------|-----|
|id | |unsigned integer|
slug | | string
name | Nombre del servicio| string
description | descripción de servicio | text
website | | string
icon | imagen png | string
### Filter
para crear categorias entre elementos. Para ser aplicados como filtros
|Atributo|Descripción | Tipo|
|--------|------------|-----|
|id | |unsigned integer|
|type_id | id asociado al tipo de filtro | foreign key |
|slug | nombre de uso interno| string (sin espacios)|
|name | nombre público |string |
| description| |text |
|icon | ruta a imagen png |string|
|parent | filtro padre (ej: unidad es padre subunidad)|unsigned integer - foreign key |
### FilteType
|Atributo|Descripción | Tipo|
|--------|------------|-----|
|id | |unsigned integer|
|type | nombre de uso interno| string (sin espacios)|
|name | nombre público |string |
| description| |text |
|icon | ruta a imagen png |string|
|parent | filtro padre (ej: unidad es padre subunidad)|unsigned integer - foreign key |
### Provider
|Atributo|Descripción | Tipo|
|--------|------------|-----|
|id | |unsigned integer|
|slug | |string
|name |nombre del proveedor| string|
|first_name| nombre responsable | string|
|last_name | apellido responsable | string |
| email | email proveedor | string |
| phone1 | telefono proveedor | string |
| phone2 | telefono proveedor |string |
| address1 | dirección proveedor |string |
| address2 | dirección proveedor |string |
| website | sitio web proveedor |string|
### Message (formulario contacto)
|Atributo|Descripción | Tipo|
|--------|------------|-----|
|id | |unsigned integer|
|subject| asunto contacto |string|
|email| email del solicitante| string|
|message| mensaje |text|
---
# API REST
```
Los endpoints DELETE implementarán siempre un *soft delete*.
En principio no implementamnos verbo **PATCH**.
Se listan los endpoints para interactuar con la API con ejemplos.
```
## Endpoints
### Services
```
```
* GET api/services
* POST api/services
* GET api/services/{id}
* UPDATE api/services/{id}
* DELETE api/services/{id}
* POST api/services/import
* GET api/services/{id}/filters
* UPDATE api/services/{id}/filters/{id}
```
POST y DELETE no los implementaríamos porque son "fijos"
```
### Filters Types
API para tipos de filtro (FilterType).
El usuario ADMIN puede definir que entidadespodrán ser utilizadas como filtro.
Habrá configurados por defecto 4 tipos:
Unidad, Subunidad, Tipo de servicio, Sector del Servicio
* GET api/filters
* POST api/filters
* GET api/filters/{id}
* UPDATE api/filters/{id}
* DELETE api/filters/{id}
### Filter
*ver Services*
### Provider
* GET api/providers
* POST api/providers
* GET api/providers/{id}
* UPDATE api/providers/{id}
* DELETE api/providers/{id}
### Messages
* GET api/messages
* GET api/message/{id}
* DELETE api/message/{id}
---
## Descripción de los endpoints
### GET api/services
```javascript
HTTP/1.1 200
Content-Type: application/json
{
"data": [
{
"id": 1,
"slug": "aliquam-repellendus-et-dolore-ad-inventore-et",
"name": "Dolore delectus omnis sapiente iste eligendi aliquam.",
"summary": "Fully-configurable high-level pricingstructure",
"description": "Explicabo distinctio dolore odio sed. Quidem expedita commodi modi sed repellendus. Accusantium placeat quis deserunt quis.",
"website": "cruz.org",
"icon": "https://lorempixel.com/200/200/food/?34483",
"created_at": "2018-08-08 15:24:09",
"updated_at": "2018-08-08 15:24:09"
},
.
.
.
],
"links": {
"first": "http://resource-api.nayra/api/services?page=1",
"last": "http://resource-api.nayra/api/services?page=10",
"prev": null,
"next": "http://resource-api.nayra/api/services?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 10,
"path": "http://resource-api.nayra/api/services",
"per_page": 3,
"to": 3,
"total": 30
}
}
```
### POST api/services
### GET api/services/{id}
```javascript
HTTP/1.1 200
Content-Type: application/json
{
"id":12,
"title": "Cómputo de estadísticas",
"description" : "El servicio ofrece....",
"website": "https://eyetracker.ito",
"filters": [
{
"id":"1",
"key":"type",
"name":"Consultoría tecnológica",
"description":"Se desarrollan aplicaciones ...."
},
{...}
],
"tags":{"estadística", "Big Data"},
"contact":{
"id":"2",
"first_name":"",
"last_name" :"",
"provider_name" : "",
"phones": [{...}],
}
}
```
### UPDATE api/services/{id}
### PATCH api/services/{id}
### DELETE api/services/{id}
---
## Perfiles de Usuario
### Usuario Anónimo - Invitado
Se comunica con la API a traves de un access token provisto por passport
### Usuario Administrador
Se comunica con la API a traves de un access token provisto por passport (password grant token)