GithubHelp home page GithubHelp logo

dp2-1920-g1-15's Introduction

Spring PetClinic Sample Application

This is a fork of https://github.com/spring-projects/spring-petclinic to be used for the DP2 course. The main changes that have been performed were:

  • Trimming several parts of the application to keep the example low
  • Reorganize some parts of the code according to best practices introduced in the course

Understanding the Spring Petclinic application with a few diagrams

See the presentation here

Running petclinic locally

Petclinic is a Spring Boot application built using Maven. You can build a jar file and run it from the command line:

git clone https://github.com/gii-is-DP2/spring-petclinic.git
cd spring-petclinic
./mvnw package
java -jar target/*.jar

You can then access petclinic here: http://localhost:8080/

petclinic-screenshot

Or you can run it from Maven directly using the Spring Boot Maven plugin. If you do this it will pick up changes that you make in the project immediately (changes to Java source files require a compile as well - most people use an IDE for this):

./mvnw spring-boot:run

In case you find a bug/suggested improvement for Spring Petclinic

Our issue tracker is available here: https://github.com/gii-is-DP2/spring-petclinic/issues

Database configuration

In its default configuration, Petclinic uses an in-memory database (H2) which gets populated at startup with data. A similar setup is provided for MySql in case a persistent database configuration is needed. Note that whenever the database type is changed, the app needs to be run with a different profile: spring.profiles.active=mysql for MySql.

You could start MySql locally with whatever installer works for your OS, or with docker:

docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:5.7.8

Further documentation is provided here.

Working with Petclinic in your IDE

Prerequisites

The following items should be installed in your system:

Steps:

  1. On the command line
git clone https://github.com/gii-is-DP2/spring-petclinic.git
  1. Inside Eclipse or STS
File -> Import -> Maven -> Existing Maven project

Then either build on the command line ./mvnw generate-resources or using the Eclipse launcher (right click on project and Run As -> Maven install) to generate the css. Run the application main method by right clicking on it and choosing Run As -> Java Application.

  1. Inside IntelliJ IDEA

In the main menu, choose File -> Open and select the Petclinic pom.xml. Click on the Open button.

CSS files are generated from the Maven build. You can either build them on the command line ./mvnw generate-resources or right click on the spring-petclinic project then Maven -> Generates sources and Update Folders.

A run configuration named PetClinicApplication should have been created for you if you're using a recent Ultimate version. Otherwise, run the application by right clicking on the PetClinicApplication main class and choosing Run 'PetClinicApplication'.

  1. Navigate to Petclinic

Visit http://localhost:8080 in your browser.

Looking for something in particular?

Spring Boot Configuration Class or Java property files
The Main Class PetClinicApplication
Properties Files application.properties
Caching CacheConfiguration

Interesting Spring Petclinic branches and forks

The Spring Petclinic master branch in the main spring-projects GitHub org is the "canonical" implementation, currently based on Spring Boot and Thymeleaf. There are quite a few forks in a special GitHub org spring-petclinic. If you have a special interest in a different technology stack that could be used to implement the Pet Clinic then please join the community there.

Contributing

The issue tracker is the preferred channel for bug reports, features requests and submitting pull requests.

For pull requests, editor preferences are available in the editor config for easy use in common text editors. Read more and download plugins at https://editorconfig.org. If you have not previously done so, please fill out and submit the Contributor License Agreement.

License

The Spring PetClinic sample application is released under version 2.0 of the Apache License.

dp2-1920-g1-15's People

Contributors

flocorlop avatar abrahamsfc avatar davsotpon avatar angel-caballero avatar abemorcardc avatar javgranar avatar angcabdom avatar

Watchers

James Cloos avatar

dp2-1920-g1-15's Issues

Historia 9: Mecánico modifica avería

Como mecánico quiero modificar la avería de un vehículo para actualizar el estado de ésta.
Escenario positivo:
El mecánico modifica alguno de los atributos de una avería. Por ejemplo, modifica las piezas necesarias para la reparación.

Tests sprint4: C

85% de las historias de usuario implementadas
• Pruebas unitarias implementadas para todas esas historias de usuario
• Pruebas de integración implementadas
• 85% de las pruebas de interfaz de usuario implementadas

Historia 5: Cliente lista averías

Como cliente quiero poder listar las diversas averías que pueda tener mi vehículo, para poder saber cuántas son y cuales son.
Escenario positivo:
El cliente está interesado en ver las averías de su vehículo, y al listar las averías le salen

Tests sprint2 A

  • Desarrollo de pruebas de interfaz de usuario para al menos 9 de las historias de usuario definidas para el proyecto, cubriendo todos los escenarios definidos para ellas.

  • Desarrollo de pruebas end-to-end en los controladores de la aplicación.

  • Pruebas unitarias implementadas para todas esas historias de usuario

  • Pruebas de integración implementadas

  • 85% de las pruebas de interfaz de usuario implementadas

refactorizacion 1

Realizar al menos 3 refactorizaciones del código de la aplicación o de las
pruebas que mejoren la calidad de su diseño.

Pruebas de rendimiento

Se debe realizar al menos una prueba
de rendimiento por cada historia de usuario. Se debe asegurar que se añaden
temporizadores para simular una interacción humana en los casos en los que
la interacción es realizada por una persona. Además, se debe incluir un
informe en el que se analice el máximo rendimiento del sistema.

refactorizacion 3

Realizar al menos 3 refactorizaciones del código de la aplicación o de las
pruebas que mejoren la calidad de su diseño.

Historia 10: Mecánico crea avería

Como mecánico quiero crear una avería de un vehículo concretando el nombre, descripción, coste, tiempo, piezas necesarias, complejidad para saber qué tengo que arreglar del vehículo.
Escenario positivo:
Un mecánico revisa un vehículo en una cita y detecta una avería. Posteriormente pasa a introducir el nombre, descripción, coste, tiempo, piezas necesarias, complejidad de la avería en el ordenador.

Profiling 1

Realización de un profiling del código en, al menos, 3 historias de usuario
diferentes. Las historias a las que se les realiza el profiling se deben
seleccionar en base al análisis del rendimiento realizado previamente.

Tests sprint4: B

85% de las historias de usuario implementadas
• Pruebas unitarias implementadas para todas esas historias de usuario
• Pruebas de integración implementadas
• 85% de las pruebas de interfaz de usuario implementadas

refactorizacion 2

Realizar al menos 3 refactorizaciones del código de la aplicación o de las
pruebas que mejoren la calidad de su diseño.

Tests sprint2 C

  • Desarrollo de pruebas de interfaz de usuario para al menos 9 de las historias de usuario definidas para el proyecto, cubriendo todos los escenarios definidos para ellas.

  • Desarrollo de pruebas end-to-end en los controladores de la aplicación.

  • Pruebas unitarias implementadas para todas esas historias de usuario

  • Pruebas de integración implementadas

  • 85% de las pruebas de interfaz de usuario implementadas

Historia 6: Cliente muestra avería

El cliente está interesado en ver los detalles de una avería de su vehículo, y al mostrar la avería ve que el coste de arreglarla, el tiempo que se tardará en arreglarla, y que necesitan pedir una pieza para esa reparación, entre otros detalles.

Historia 8: Mecánico muestra avería

Como mecánico quiero poder ver en detalle una avería concreta de un vehículo para controlar el estado del vehículo.
Escenario positivo:
Se muestra una avería con descripción, estado de la reparación, cita donde se detectó, vehículo correspondiente y mecánico encargado.

Historia 7: Mecánico lista averías

Como mecánico quiero poder listar todas las averías de un vehículo detallando en
qué cita se detectó para conocer cuántos defectos tiene el vehículo.

Tests sprint4: A

85% de las historias de usuario implementadas
• Pruebas unitarias implementadas para todas esas historias de usuario
• Pruebas de integración implementadas
• 85% de las pruebas de interfaz de usuario implementadas

profiling 3

Realización de un profiling del código en, al menos, 3 historias de usuario
diferentes. Las historias a las que se les realiza el profiling se deben
seleccionar en base al análisis del rendimiento realizado previamente.

profiling 2

Realización de un profiling del código en, al menos, 3 historias de usuario
diferentes. Las historias a las que se les realiza el profiling se deben
seleccionar en base al análisis del rendimiento realizado previamente.

Historia 3: Cliente crea cita

Como cliente quiero poder crear citas, para poder ir al taller cierta fecha con la confianza de que habrá un mecánico disponible que me atenderá

Historia 4: Cliente cancela cita

Como cliente quiero poder cancelar una cita, para tener la posibilidad de anularla en caso de no poder asistir a la cita por algún imprevisto.

Historia 11 - Mecánico lista todas sus citas

Como mecánico quiero poder listar todas sus citas para conocer cuando tengo que atender una cita.
El mecánico quiere saber si tiene que atender una cita al día siguiente a una determinada hora y al listar, le sale todas las citas.

wiki

crear wiki con la descripcion del proyecto, historias, etc

Tests sprint2 B

  • Desarrollo de pruebas de interfaz de usuario para al menos 9 de las historias de usuario definidas para el proyecto, cubriendo todos los escenarios definidos para ellas.

  • Desarrollo de pruebas end-to-end en los controladores de la aplicación.

  • Pruebas unitarias implementadas para todas esas historias de usuario

  • Pruebas de integración implementadas

  • 85% de las pruebas de interfaz de usuario implementadas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.