Módulo de gestión y carga de incidencias (equipo de prácticas @Arquisoft/course1718_e3b2).
Este proyecto ha sido desarrollado como práctica de la asignatura Arquitectura del Software perteneciente al tercer curso del Grado en Ingeniería Informática del Software impartido en la Escuela de Ingenieria Informática (EII) de la Universidad de Oviedo durante el curso 2017/2018. La práctica consiste en la implementación de un sistema informático de análisis de incidencias (Incidence System_e3b) cuya estructura ha sido dividida en los siguientes módulos:
- Módulo de carga de usuarios: Loader_e3b.
- Módulo de consulta y gestión de agentes: Agents_e3b.
- Módulo de gestión y carga de incidencias: InciManager_e3b.
- Módulo de análisis y cuadro de mandos: InciDashboard_e3b.
- Descripción del proyecto
- Como instalar el proyecto
- Como ejecutar el proyecto
- Como probar el proyecto
- Como contribuir al proyecto
- Creditos del proyecto
- Licencia del proyecto
- Máquina virtual de Java: OpenJDK (versión: >= 1.6).
- Sistema de control de versiones: GIT (versión: >= 2.16).
- Herramienta de construcción de proyectos: Apache Maven (versión: >= 3.5).
Descarga la última versión del codigo fuente desde el repositorio oficial del proyecto:
git clone https://github.com/Arquisoft/InciManager_e3b.git
Situarse en el directorio de descarga del código fuente y ejecutar:
mvn clean install
En caso de ser necesario es posible purgar el repositorio local con las dependencias del proyecto ejecutando:
mvn dependency:purge-local-repository clean install -U
Captura de pantalla de la página de login (ver más sobre el diseño web en esta wiki):
- Apache Maven (versión: >= 3.5).
- Apache Kafka (versión: >= 1.0).
- Módulo Agents (versión: = e3b).
Configurar los párametros necesarios en el fichero: resources/application.properties
### Service port (default: 8091):
server.port = 8091
### Comma-separated list of brokers to which the Kafka binder will connect
### (default: localhost:9092):
spring.cloud.stream.kafka.binder.brokers=localhost:9092
### Comma-separated list of ZooKeeper nodes to which the Kafka binder can connect
### (default: localhost:2181):
spring.cloud.stream.kafka.binder.zkNodes=localhost:2181
### Kafka topic for incidences (default: incidences):
kafka.topic = incidences
### Data source configuration:
spring.datasource.url = jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=changeit
spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.driverClassName=org.postgresql.Driver
Si no se dispone de una instancia de Apache Kafka en ejecución, es posible descargar una versión ya compilada para Java desde su página oficial y lanzar el servicio manualmente (la distribución binaria de Apache Kafka requiere a su vez iniciar su propia instancia de Apache Zookeeper).
Ejecutar el fichero: 'doc/examples/incimanager-kafka-server-start.bat'
REM Start Apache Zookeeper server:
start "ZooKeeper" /D ".\bin\windows\" "zookeeper-server-start.bat" "..\..\config\zookeeper.properties"
REM Wait 10 seconds:
timeout 10
REM Start Apache Kafka server:
start "Kafka" /D ".\bin\windows\" "kafka-server-start.bat" "..\..\config\server.properties"
Ejecutar el fichero: 'doc/examples/incimanager-kafka-server-start.sh'
# Start Apache Zookeeper server:
nohup bash -c "bin/zookeeper-server-start.sh config/zookeeper.properties &"
# Wait 10 seconds:
sleep 10
# Start Apache Kafka server:
nohup bash -c "bin/kafka-server-start.sh config/server.properties &"
Situarse en el directorio de instalación y ejecutar:
mvn spring-boot:run
Una vez iniciado el servicio ya es posible acceder a través del navegador en la dirección: http://localhost:8091
Para ejecutar toda la bateria de pruebas:
mvn test
Para ejecutar una única prueba:
mvn -Dtest=InciManagerApplicationTests#testAgentModel test
Name | Password | Location | Ident | Kind | |
---|---|---|---|---|---|
Paco González | 123456 | [email protected] | paco | Person | |
Pepe Fernandez | 123456 | [email protected] | pepe | Person | |
Sensor_123 2018 | 123456 | 43.361368, -5.853591 | [email protected] | sensor_123 | Sensor |
Ministerio medioambiente | 123456 | 43.359486, -5.846986 | [email protected] | medioambiente | Entity |
Space X sensor model A | 123456 | 33.921209, -118.327940 | [email protected] | spacex | Sensor |
Disponible en el fichero: 'doc/examples/example-incidence.json'
{
"username": "[email protected]",
"password": "123456",
"kind": "Person",
"incidenceName": "Incidencia de prueba",
"description": "Descripción de la incidencia de prueba",
"location": "43.3582617,-5.8531647",
"labels": [ "prueba", "sensor" ],
"others": [ "file:///image.png", "file:///video.mkv"],
"fields": { "temperatura": "21", "humedad": "75" },
"status": "ABIERTA",
"comments": [ "Primer comentario", "Segundo Comentario" ],
"expiration": "2018-03-25T00:00:00+01:00",
"cacheable": "true"
}
curl -i -X POST -H "Content-type: application/json;charset=UTF-8" http://localhost:8091/addIncidence -d @example-incidence.json
La incidencias enviadas mediante Kafka pueden ser consultadas utilizando la consola del consumidor por defecto que viene incluido en la instalación de Apache Kafka:
REM Start Apache Kafka Consumer:
start "Kafka Consumer" /D ".\bin\windows\" "kafka-console-consumer.bat" "--bootstrap-server" "localhost:9092" "--topic" "incidences" "--from-beginning"
La información completa sobre como contribuir al proyecto: código de conducta, flujo de trabajo, etc, puede consultarse en el fichero CONTRIBUTING.md.
- Equipo de prácticas 2017/2018 E3B2 [@Arquisoft/course1718_e3b2]:
- Miguel Martínez Serrano <[email protected]> [@miguelms95]
- José Antonio Marín Álvarez <[email protected]> [@TonyMarin]
- Daniel Martínez Valerinao <[email protected]> [@Gemeto]
- Andrés Ángel González Granda <[email protected]> [@AndresAngelGG]
- Kilian Pérez González <[email protected]> [@kilianpg]
- Equipo docente de la asignatura Arquitectura del Software:
- Jose Emilio Labra Gayo <[email protected]> [@labra].
- Aquilino Adolfo Juan Fuente <[email protected]>
- Juan Luis Mateo Cerdan <[email protected]>
- Herminio García González [@herminiogg].
El contenido completo de este proyecto esta licenciado bajo los terminos de la licencia: Unlicense. Los detalles completos de la licencia pueden consultarse en el fichero: LICENSE.