Skip to content

Commit 1cc74ef

Browse files
committed
progress is made on the Spanish readme
1 parent 91ea72e commit 1cc74ef

File tree

5 files changed

+149
-0
lines changed

5 files changed

+149
-0
lines changed

doc/README.es.md

Whitespace-only changes.
File renamed without changes.

docs/README.es.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
## Selecciona tu lenguaje
2+
3+
- 🇺🇸 [Inglés](README.md)
4+
- 🇩🇪 [Alemán](README.de.md)
5+
6+
## URL del Proyecto mediante GitHub Pages
7+
[https://pablosch26.github.io/keepcoding-frontend-javascript-submission-5/](https://pablosch26.github.io/keepcoding-frontend-javascript-submission-5/)
8+
9+
# Entrega Proyecto de Desarrollo Frontend con JavaScript
10+
## Conocimientos trabajados
11+
- Funcionamiento de un Navegador.
12+
- Composicion de un href.
13+
- Browser Object Model (BOM) y Document Object Model (DOM).
14+
- Nodos y Element del DOM.
15+
- Seleccionar nodos.
16+
- Crear y eliminar elementos del nodo.
17+
- Manipulanr atributos del nodo más sus estilos y clases CSS.
18+
- Manejar eventos del DOM.
19+
- Comportamiento por defecto en los componentes del HTML.
20+
- Event Bubbling & Capturing.
21+
- Promesas y sus estados: pending, fulfilled y rejected.
22+
- Peticiones HTTP con fetch.
23+
- localStorage & sessionStorage
24+
- Almacenamiento local de datos de HTML5: cookies, storage y indexed DB.
25+
26+
## Descripción del Proyecto
27+
Con el fin de ejercitar y demostrar los conocimientos adquiridos en clases virtuales este proyecto consiste en desarrollar una aplicación web similar a Wallapop. No se tiene permitido utilizar librerías o frameworks de JavaScript. En cambio, sí está permitido utilizar utilidades de CSS externas.
28+
Además, se debe proporcionar un archivo db.json para el backend con los datos de ejemplo para la corrección de la práctica.
29+
30+
1. Listado de anuncios.
31+
- Cada anuncio debe mostrar su imagen (si tiene), nombre, descripción, precio y si es
32+
compra o venta. Los anuncios publicados deben obtenerse a través de un endpoint,
33+
mencionado más adelante.
34+
- La pantalla de listado de los anuncios deberá gestionar todos los estados de
35+
interfaz correctamente: vacío (no hay anuncios), error (cuando se produce un error al cargar
36+
los anuncios), carga (mientras se cargan los anuncios desde el backend) y éxito
37+
(cuando se han recuperado los anuncios y están listos para ser mostrados).
38+
- Al pulsar sobre un anuncio, iremos a la pantalla de detalle de anuncio.
39+
- Si el usuario ha hecho login, hay que mostrar al usuario un botón que le permita
40+
acceder a la pantalla de creación de un anuncio.
41+
42+
2. Detalle de anuncio.
43+
- La página de detalle de anuncio deberá mostrar foto (si tiene), nombre, descripción,
44+
precio y si es compra o venta.
45+
- En este detalle de anuncio se deberá gestionar todos los estados de interfaz
46+
correctamente: vacío (no existe el anuncio), error (cuando se produce un error al
47+
cargar la información del anuncio), carga (mientras se cargan la información del
48+
anuncio desde el backend) y éxito (cuando se ha recuperado la información del
49+
anuncio y está listo para ser mostrado).
50+
- Si el usuario está autenticado y el anuncio le pertenece, deberá además mostrar un
51+
botón que permita eliminar el anuncio (aunque antes de eliminarlo, deberá confirmar
52+
con el usuario si realmente quiere eliminar o no el anuncio).
53+
54+
3. Creación de un anuncio.
55+
56+
- En la página para crear un anuncio se deberá mostrar al usuario un formulario con los siguientes campos:
57+
- Foto (opcional): permitirá subir una foto del producto.
58+
- Nombre (obligatorio): nombre del producto.
59+
- Descripción (obligatorio): descripción del producto.
60+
- Precio (obligatorio): precio del producto.
61+
- Compra/venta (obligatorio): indica si el anuncio se trata de una compra o una
62+
venta.
63+
- Cuando el usuario envíe el formulario, deberá enviar al backend una petición para
64+
guardar el anuncio.
65+
- Se deberá gestionar todos los estados de interfaz correctamente: error (cuando se
66+
produce un error al guardar la información del anuncio), carga (mientras se guarda la
67+
información del anuncio en el backend) y éxito (cuando se han guardado
68+
correctamente la información del anuncio).
69+
- A esta pantalla sólo podremos acceder si estamos logados. En caso contrario,
70+
habrá que redireccionar al usuario a la página de listado de anuncios, informándole
71+
del motivo.
72+
73+
4. Login.
74+
75+
- La página de login deberá mostrar un formulario solicitando el nombre de usuario y
76+
contraseña.
77+
- Cuando el usuario envíe el formulario, deberá autenticar al usuario contra el
78+
backend para obtener un token JWT que será utilizado en las siguientes
79+
comunicaciones con el backend para autenticar al usuario.
80+
- Se deberá gestionar todos los estados de interfaz correctamente: carga, error y
81+
éxito.
82+
83+
5. Registro.
84+
85+
- Muy parecida a la de login. Deberá mostrar un formulario solicitando el nombre de
86+
usuario y contraseña.
87+
- Cuando el usuario envíe el formulario, deberá registrar al usuario en el backend.
88+
- Se deberá gestionar todos los estados de interfaz correctamente: carga, error y
89+
éxito.
90+
91+
### Opcional
92+
- Gestionar la paginación de anuncios en el listado, ya que por defecto la API
93+
sólo devuelve 10 elementos.
94+
- Implementar un buscador de anuncios en el listado.
95+
- Permitir editar un anuncio, sólo si el usuario autenticado es el propietario del
96+
anuncio.
97+
- Permitir el filtrado de anuncios usando tags. Por lo que en el formulario de anuncio
98+
deberán poder incluirse tags de los mismos. Estos tags inicialmente pueden ser
99+
estáticos (siempre los mismos).
100+
- Unido al anterior, hacer que los tags sean dinámicos.
101+
102+
103+
### API REST de apoyo para la práctica
104+
Se utilizará sparrest.js como API REST de apoyo para la práctica (creado por el docente de KeepCoding Alberto Casero), este proyecto está basado en la utilidad json-server , el cual nos ofrece un completo API REST para simular un backend real y adaptarse a las necesidades de esta práctica.
105+
106+
## Tecnologías Utilizadas
107+
108+
- **HTML**: Para la estructuración del contenido y la creación de la estructura de la página web.
109+
- **CSS**: Para el diseño y estilo visual de la página, asegurando una experiencia de usuario atractiva y coherente.
110+
111+
## Instrucciones de Instalación y Uso
112+
113+
### Requisitos de Software
114+
115+
- **Git** (Requerido)
116+
- **SourceTree** (Opcional)
117+
- **Visual Studio** (Ejecutado en la versión 1.99.0) (Requerido)
118+
119+
### Descripción de los Programas
120+
121+
- **Git**: Herramienta de control de versiones. Es imprescindible para clonar el repositorio.
122+
- **SourceTree**: Una herramienta visual para gestionar repositorios Git. Permite interactuar con Git de forma sencilla sin necesidad de utilizar la línea de comandos.
123+
- **Visual Studio**: Entorno de desarrollo integrado (IDE) necesario para ejecutar el proyecto. Asegúrate de utilizar la versión 1.99.0 para evitar problemas de compatibilidad.
124+
125+
### Pasos para utilizar este proyecto
126+
127+
1. Clona el repositorio de GitHub utilizando **SourceTree** o directamente con el siguiente comando mediante Git:
128+
129+
```bash
130+
git clone https://github.com/PabloSch26/keepcoding-frontend-javascript-submission-5.git
131+
132+
2. Una vez clonado el repositorio:
133+
134+
2.1 Abre el proyecto en Visual Studio agregando el directorio del proyecto a tu espacio de trabajo.
135+
136+
2.2 -
137+
138+
### Notas
139+
140+
- Asegúrate de tener correctamente instalados todos los programas necesarios antes de proceder con la ejecución del proyecto.
141+
- Si no deseas usar SourceTree, puedes clonar el repositorio directamente usando la terminal con el comando git clone.
142+
143+
## Sin contribuciones ni licencias
144+
145+
Este proyecto no cuenta con contribuciones externas ni licencia en este momento.
146+
147+
## Vista previa del proyecto
148+
149+
-
File renamed without changes.

0 commit comments

Comments
 (0)