diegoroyo / radtree Goto Github PK
View Code? Open in Web Editor NEWPrácticas de sistemas de información 2018-19: Aplicación web con capa de datos
Home Page: http://radtree.ml
License: MIT License
Prácticas de sistemas de información 2018-19: Aplicación web con capa de datos
Home Page: http://radtree.ml
License: MIT License
Según internet MD5 = mal, cambiarlo si tenemos tiempo
Ahora devuelven true/false segun si ha ido mal/bien, devolver el id del objeto insertado
Deberíamos tener una búsqueda de usuarios para que los administradores puedan buscar participantes y convertirlos en creadores. Donde lo incluimos?
En la página de hay un punto cuando lo haces pequeño en el que el texto de las noticias hace overlap con las demás noticias, tener en cuenta las columnas de bootstrap según el tamaño
En lugar de double -> Double, asi su valor por defecto es null y no 0.0
Las funciones que tienen varias operaciones en la BDD deberian preparar primero todos los statements para luego ejecutarlos todos a la vez (si alguno falla, se revierte todo al estado inicial antes de ejecutar la funcion)
Falta decidir qué hacer con la barra de arriba (registrarse, iniciar sesion, redes sociales, logo de la web y categorías) y la barra de abajo (lo negro, con el logo y las columnas de "most popular") y aplicar los cambios a todas las paginas de la web
(header.jsp) El menú de categorías no funciona en móvil, al pulsar se debería abrir el desplegable de noticia, pregunta y reto pero a veces no lo hace
Al final cada operación es necesario hacer connection.close();
para no dejarla abierta ya que luego puede causar problemas, por lo que hay que añadirlo en cada funcion de los DAO
De esta forma, no hace falta cambiar todos los header/footer, solo los de ese archivo
Cada acción realizada por los usuarios que tenga repercusión en la base de datos (registrar usuario, iniciar sesión) podría ser almacenada en un fichero con un timestamp, de modo que si ocurre algún fallo al publicar la web podamos ver fácilmente qué lo ha causado
Una vez al dia se deberian crear vistas materializadas para guardar la info de la posición de cada jugador ordenado por puntos y numero de preguntas contestadas
No existen vistas materializadas en mysql, por lo que supongo que la mejor forma es crear una tabla clasificacion y cada dia dropear su contenido e insertar los resultados de un select
Basicamente como se hace en ejemplo de internet, ejecutar una vez al dia o como se decida:
DROP TABLE sales_mv;
CREATE TABLE sales_mv (
product_name VARCHAR(128) NOT NULL
, price_sum DECIMAL(10,2) NOT NULL
, amount_sum INT NOT NULL
, price_avg FLOAT NOT NULL
, amount_avg FLOAT NOT NULL
, sales_cnt INT NOT NULL
, UNIQUE INDEX product (product_name)
);
INSERT INTO sales_mv
SELECT product_name
, SUM(product_price), SUM(product_amount)
, AVG(product_price), AVG(product_amount)
, COUNT(*)
FROM sales
GROUP BY product_name;
Para cada una:
<%@ include file="WEB-INF/header.jsp" %>
y <%@ include file="WEB-INF/footer.jsp" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
al comienzo de la página (comprobar que los acentos/ñ se ven bien antes de añadir esta línea!)Lista de páginas por hacer:
En todos los archivos JSP
Un filtro que lleve a la página errorInterno.html
Actualmente el footer carga la información por un filtro (mal mapeado, por cierto). Se debería incluir los datos en la request pero en un servlet (que se ejecute en todas las webs)
Solución: crear un servlet (clase abstracta) que se encargue de hacer todos los includes de la info. de las noticias y que el resto de los servlets jsp extiendan a este y llamen a super()
Deberíamos incluir más preguntas (no hace falta que sean muy serias) para que la web tenga más relleno al ser publicada. Alguna noticia o reto más no estaría mal
Queda crear vistas para las siguientes acciones (depende de como lo decidamos hacer pueden resultar mas o menos ficheros), pongo las que se me ocurren:
Decidir que pueden hacer los administradores / creadores de contenidos (o como lo queramos llamar), segun el enunciado han de poder hacer esto:
Gestión de “Carteles”
Comprobaciones:
Para que una persona no pueda tener de alias "((((($$" por ejemplo
Evitar acceso directo a los archivos jsp con un filtro
Nota: por ahora enlace para copiar y compartir y ya
En la página de noticia, pregunta y reto podemos incluir botones para compartir en twitter u otras redes sociales
En lugar de mostrar solo los 30 primeros, ir mostrando más cada vez
Al lado de responder, un botón para borrar el comentario
Casilla "recordarme" al iniciar sesión que almacene en cookies el nombre
Nota: solo validacion de correo
Hay dos paginas html que por ahora no tienen funcionalidad, olvidocontraseña y cambiarcontraseña (04 y 05). Podemos hacer que si la olvida le envie al correo un enlace para restaurarla y de alguna forma autenticar al usuario (token almacenado en nueva tabla de la bdd) y permitir cambiar la password a partir de eso (previa verificación del correo?)
Además, si es correo unizar puede pasar a ser creador de contenido directamente
Las fotos de perfil deberian ir guardadas en la carpeta images/profile/<idUsuario>.jpg o images/noticias/<idNoticia>.jpg
Enter Etags...
The absolute best way I've found to solve this is to use ETAGS inside a .htaccess file in your images directory. The following tells Apache to send a unique hash to the browser in the image file headers. This hash only ever changes when time the image file is modified and this change triggers the browser to reload the image the next time it is requested.
<FilesMatch ".(jpg|jpeg)$">
FileETag MTime Size
Pasos para añadir un servlet:
Lista de páginas sin hacer (no todas tienen por qué necesitar servlets, marcarlas):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.