Giter Site home page Giter Site logo

alkesst / go4me Goto Github PK

View Code? Open in Web Editor NEW
11.0 7.0 1.0 17.51 MB

web application prototype for handicapped and lazy people

Java 54.51% HTML 42.27% CSS 3.22%
java spring-boot spring web-app web-application-framework thymeleaf thymeleaf-template-engine spring-mvc mvc-pattern software-development

go4me's Introduction

Hello there

Music 🎸

spotify

Stats 📊

Alejandro's github stats

go4me's People

Contributors

alexmm98 avatar alkesst avatar daxnex avatar jesuspa98 avatar manuelveredas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

devsinpyjamas

go4me's Issues

Mejoras en documento de entrevista v1.0

  • Índice no actualizado
  • Faltan casos de uso (diagramas y descripción textual de cada caso de uso)
  • Los autores aparecen divididos en varias páginas (¿Está hecho a propósito?)
  • Indicar que los requisitos que habeis identificado en este documento son "requisitos de usuario". Estos requisitos también tienen que ir identificados de forma única. Verificar que todos los requisitos que aparecen en este documento se cubren en al menos 1 requisito del sistema
  • En la sección requisitos preliminares hay una errata "analizados:t"
  • Los requisitos de usuario tambien tienen que dividirse en funcionales y no funcionales (teneis que identificar al menos un par de requisitos no funcionales)

Order requires a timeout method

When the maxTime has run out, the order must return the cost to the buyer and the order won't be verified.

Some ideas:

  • Add a timeout attribute in Order.
  • The timeout method must set the timeout attribute to false.
  • How to make the method calls itself automatically?

Subir docx tambien

He visto que habeis subido los documentos en pdf. Podeis dejar tambien los docx de forma que todo el mundo tenga acceso a ello. Os comente que subierais los documentos en pdf, a lo mejor no quedó claro pero me referia a que dejarais tambien los docx y de forma general que dejeis todos los documentos que vais a tocar en grupo.

Mejoras en documento de entrevista v1.7

  • Figura 2: El caso de uso add users no incluye authenticate?
  • Figura 3 y figura 5: El caso de uso incluye hacer una publicación? queda extraño. Si quereis decir que es una precondicion es suficiente con ponerlo en la descripción textual del caso de uso
  • Figura 4: Public publishment o "publish publishment"?

Date class bad implementation

La clase no está correctamente implementada. Ver comentario de la issue #27

Es mejor usar el compareTo, e implementarlo heredando de Comparator (creo que era así). Hay una issue abierta ya (#27) hablando de esto.
public class BookInventory implements Comparable es un ejemplo. Luego se redefine el compareTo().

Parse Address to latitude and longitude

In the Location constructor is required to parse an address into latitude and longitud. We could use this example to make private methods.

Why parsing the address to Latitude and longitude?
Is required because of the need to filter the users by proximity when searching them.

Planificación y sprint 3

  • Esto es simplemente un recordatorio de que vuestro sprint 2 acaba en breve asi que teneis que volver a planificar e incluir un nuevo sprint en la documentación

Registering new users

Once you created your go4me account, you are not able to log in because of magics.

Try to find the error and fix it.

Mejoras en documento de entrevista (casos de uso) v1.6

  • En la figura 1 el caso de uso incluido es el de "New publishment". ¿Es eso lo que realmente quereis expresar? Ahora mismo se describe que dentro del caso de uso login se hace "new publishment"
  • En la figura 3 "make a purchase" incluye "cancel purchase". ¿Cada vez que se hace una compra se cancela una? Algo parecido ocurre en la figura 5
  • Falta la descripción textual de los casos de uso

JUnit test configuration problems with spring and gradle

He montado el proyecto en eclipse y he hecho las siguientes modificaciones:

  • Mover los archivos de test a la carpeta src/test/java/<paquete de vuestra clase de test>/UserTesting.java. Por ejemplo en mi prueba lo he movido a src/test/java/com/go4me/prototype/model/UserTesting.java. Consultad la primera tabla de este enlace para ver que organización se suele usar para los tests. https://docs.gradle.org/current/userguide/java_plugin.html

  • Dejar la anotación del test como "@SpringBootTest" (sin nada despues)

Al ejecutar el test da un excepción "object references an unsaved transient instance - save the transient instance before flushing : com.go4me.prototype.model.OrderRequest.publishedBy -> com.go4me.prototype.model.User". Realizad las modificaciones que os comento y probad la aplicación y confirmadme que este es el error original que teniais o era otro

Mejoras en el documento de modelado y patrones v1.0

  • En el índice "diagramas de secuencia(s)". Hay que quitar la s de secuencias
  • En el diagrama de clases añadid nombres a algunas de las asociaciones que hay para dejar claro que esta modelando cada asociación
  • Explicar brevemente que está modelando el diagrama de secuencia para que quede claro para que sirven cada una de las partes del diagrama (chat, ads, order).
  • Incluir alguna figura para explicar el patrón MVC y describirlo un poco más a nivel técnico (que quede claro quien hace de modelo, vista y controlador)

Mejoras en documento de modelado y patrones v1.2

  • ¿Un mensaje contiene chats? Cuidado a la hora de expresar asociaciones. Veo que confundís donde va cada extremo de la misma
  • La cardinalidad entre chat-buyer y chat-seller no es la misma (la cardinalidad de cada extremo esta invertida).

Mejoras en propuesta de proyecto v1.4

  • Extender un poco más la última sección del documento, dejando claro que parte del proyecto pretendéis tener completado para final de curso. En esta sección se establecen los límites del sistema. Por ejemplo si veis que la idea es muy ambiciosa y no os da tiempo a completarla entera

Publish method

En la clase user es necesario el método para publicar un anuncio, o un pedido

Mejoras en documento de entrevista (casos de uso) v1.5

Los casos de uso están mejor pero siguen teniendo diversos errores

  • Figura 1: ¿Que significa la linea continua que une login con new publishment?
  • Figura 2: ¿Que significa el caso de uso admin y por que esta en una figura que se titula "identificarse en la pagina"? El include que hay entre login y admin no lo entiendo
  • Figura 3: La figura se llama cancelar pedido y el caso de uso principal se llama "make a purchase". ¿Que estais modelando exactamente con el include que aparece?. El actor es mejor que se llame user y no user1.
  • Figura 4: la herencia esta mal expresada. ¿Que significa la asociación en linea continua que hay entre public purchase y verify y entre get a publishment y verify?
  • Figura 5: Mejor poner user y no user1. ¿Que significa la asociación en linea continua que hay entre make purchase y public on twitter?
  • Figura 6: ¿El include está expresado al reves? El actor user debería ir a search publishment y no a login
  • Figura 7: igual que figura 6

Hay dudas que me da a entender que no terminais de saber como expresar los casos de uso. Preguntadme en clase si no os queda claro

Herramienta de búsqueda

Para esta herramienta tendremos que implementar lo siguiente:

  • implementar buscador
  • filtro por distancia
  • filtro por valoración

Modelado y diseño (sin versión todavía)

  • Crear la primera versión del documento de modelado (Ya deberíais tener una primera versión)
  • Añadir diagrama de clases conceptual
  • Añadir diagrama de secuencia
  • Explicar el patron MVC, las ventajas que tiene y como se ha aplicado al proyecto (más detalles de lo que se pide los podeis encontrar en la documentación)

Mejoras en documento de planificación v1.0

  • El estilo entre documentos diferentes (entrevista, planificación) no llega a ser el mismo. Aqui aparecen los nombres en la misma linea, en otros se ponen nombres en páginas diferentes, etc.
  • Teneis que añadir las planificaciones al documento de planificación como imágenes (no vale con enlazar a algun fichero externo).
  • Detallad que sistema habeis seguido para estimar y planificar las tareas (por votación, etc). La idea es que yo me entere de que sistema habeis usado o como os habeis organizado.
  • El documento ha quedado un poco escueto. Intentad explicar con algo más detalle los procesos de planificación que habeis seguido. Tambien teneis que añadir una sección por cada sprint que lleveis a cabo dodne aparezca el diagrama de Gantt y una breve explicación del sprint

Requisitos en doc entrevista v1.0 y doc requisitos v1.0

Entiendo que todavía estais trabajando en estos documentos pero os dejo algunos comentarios para que quede constancia

  • En el documento de entrevista se tiene que incluir casos de uso y requisitos de usuario identificados

  • El documento de requisitos tienen que seguir la estructura indicado en la documentación

  • Requisito 01 es muy genérico. "La aplicación te permite encontrar usuarios cercanos dispuestos a hacer recados". Sería mejor descomponer este requisito en otros requisitos más simples y claros. Por ejemplo uno donde el usuario se registre si quiere que le hagan un recado, otro para registar al que quiere hacer los recados, uno para la busqueda entre estos dos tipos de usuarios ya registrados, etc. De esta forma es más facil despues verificar requisitos concretos.

  • Requisito 03 y 08 no están bien redactados

  • Requisito 04 abarca demasiado (descomponer en otros requisitos)

  • Requisito 10: ¿que significa que la aplicación verifique la entrega?

  • Añadir registro y login de usuarios como requisitos

  • Requisitos 12 y 13: ¿Que signfica pagos en físico? Ambigüedad en los requisitos implica posibles problemas con el cliente de la aplicación y dificultad para la prueba y verificación. Redactar mejor estos dos requisitos

  • Requisito 15: El requisito no es de la aplicación web. ¿Existe forma de verificar este requisito?

  • Requisito 16: Ver comentario acerca del requisito 10

Imaginaros que el documento lo lee alguien con unos conocimientos medios de informática que se quiere enterar del proyecto. Tendría dudas acerca de muchos requisitos. Se que es imposible especificarlos todo de forma concisa pero en la medida de lo posible deberiais evitar ambigüedades.

Propuesta de proyecto v1.3

Intentad detallar un poco más la sección de organización para que me quede claro como os vais a organizar, si todos vais a contribuir en todo, etc.
Cambiad los títulos de las secciones para que simule que sea un documento para un cliente real y no un trabajo entregable de una asignatura. Tenéis que imaginaros que vais a darle el documento al cliente para que el entienda que se va hacer con su encargo.
Completad también las dos últimas secciones

Mejoras en documento de requisitos v1.1

  • En el índice "requisito no funcional" debería ir en plural para guardar la consistencia con el resto de secciones
  • Si el pago de recados se hace en metálico, ¿Como se lleva a cabo la recaudación de la comisión que se lleva la aplicación?
  • Identificar algún requisito no funcional adicional
  • Tratar de hacer más hincapié en la funcionaliad que proporciona el sistema a la hora de describir los requisitos. Expresadlos de una forma un poco más concreta. Por ejemplo el Req 01 es demasiado genérico y ambiguo. Sería mejor expresadlo como: "La aplicación proporcionará funcionalidad para crear recados. Un recado es...."
  • Revisad todos los requisitos para que cumplan con lo expuesto en el punto anterior.
  • Req 02 podría ser no funcional (restricción sobre una funcionalidad existente)
  • Req 03. Usar un formato común para describir el requisito. Ej: el sistema....
  • Req 07. Aclarar un poco más. La aplicación proporcionará una pantalla en la cual tanto el usuario que pide el recado como el que lo realiza pueden configurar el tiempo...." Intentar extender más la descripción de requisitos que por si solos no se entienda bien
  • Req 08. ¿Que pasa si se ha pagado en metálico?
  • Req 15. Escribidlo mejor de la forma: El sistema permitirá....
  • Req 12. Lo mismo que en comentarios anteriores. Reescribir mejor de la forma: La aplicación permitirá...
  • Añadid algun requisito no funcional más

JPA type problems

JPA no puede almacenar tipos como List<User>, User y Localization.

Crear una referencia a una ID de ese objeto para referenciarlos y guardarlos en JPA.

Traza de error:


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not determine type for: java.util.List, at table: user, for columns: [org.hibernate.mapping.Column(blocked_users)]

Spoiler:
Ahora sí que inicia el framework. El problema es el tipo de datos que vamos a introducir en la base de datos, que JPA no soporta guardar ese tipo de datos.

Aunque hayamos aprobado bases de datos aquí un pequeño recordatorio!
para referencias a una única tabla: FK UNIQUE
para referencias multiples a una tabla: FK

Spoiler 2:
No se requiere hacer referencias a otras tablas con las id's.
Podemos usar esto. Metodología usada por el profesor.

Spoiler 3:
Nuevos errores ;)

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "DROP TABLE ORDER[*] IF EXISTS "; expected "identifier"; SQL statement:
drop table order if exists [42001-197]
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE ORDER[*] (ID BIGINT NOT NULL, DESCRIPTION VARCHAR(255) NOT NULL, MAX_COST DOUBLE NOT NULL, MAX_TIME TIMESTAMP NOT NULL, TIMEOUT DECIMAL(1,0) DEFAULT '0' NOT NULL, VERIFIED_BY_BUYER INTEGER NOT NULL, VERIFIED_BY_SELLER INTEGER NOT NULL, BUYER_ID BIGINT, PUBLISHED_BY_ID BIGINT, SELLER_ID BIGINT, PRIMARY KEY (ID)) "; expected "identifier"; SQL statement:
create table order (id bigint not null, description varchar(255) not null, max_cost double not null, max_time timestamp not null, timeout Decimal(1,0) default '0' not null, verified_by_buyer integer not null, verified_by_seller integer not null, buyer_id bigint, published_by_id bigint, seller_id bigint, primary key (id)) [42001-197]

Y cosas por el estilo...

Full Log de errores

AdsOrder compilation errors

Errores encontrados en la clase AdsOrderService.

AdsOrder.getID() cannot resolve symbol. O sea no existe.
AdsOrder.setWhenTheUserWillGoToBuy(). Da errores de compilación

Hay que echarle una ojeada para arreglar eso.

Planificación2.gan

Teneis que describir con un poco más de detalle la fase de implementación en el diagrama de gantt. No importa que la planificación no resulte ser correcta al final. Tendreis que modificar la planificación general para iros adaptando a los imprevisto, incidencias ,etc

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.