Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/javguerra/tienda-8-bits
«Tienda 8 bits». Práctica final del bootcamp de Full Stack Web Developer, en The Bridge.
https://github.com/javguerra/tienda-8-bits
axios express javascript mongodb mongoose nodejs react vite
Last synced: about 15 hours ago
JSON representation
«Tienda 8 bits». Práctica final del bootcamp de Full Stack Web Developer, en The Bridge.
- Host: GitHub
- URL: https://github.com/javguerra/tienda-8-bits
- Owner: JavGuerra
- License: gpl-3.0
- Created: 2022-10-23T08:39:01.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-24T10:20:10.000Z (3 months ago)
- Last Synced: 2024-08-24T11:33:31.729Z (3 months ago)
- Topics: axios, express, javascript, mongodb, mongoose, nodejs, react, vite
- Language: JavaScript
- Homepage: https://javguerra.badared.com/proyecto/tienda8bits/
- Size: 5.61 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Logo](logo.png)
# Práctica final del Bootcamp Full Stack Web Developer
Por: Javier Guerra
Noviembre 2022## La práctica
Ver el fichero [enunciado.pdf](enunciado.pdf) para conocer los requisitos de la práctica.
Ver el fichero [presentacion.pdf](presentacion.pdf) para conocer los antecedentes de la práctica.
Ver [info sobre la presentación](https://javguerra.github.io/blog/tienda-8-bits/) + [video](https://youtu.be/XlswjqhxJZ8).## Back end
__Tecnologías__: Node.JS + Express + MongoDB + Mongoose
__Módulos__: compression, cors, helmet, dotenv, nodemon, mongoose-paginator-v2__Instalación__:
* Renombrar `.env.example` a `.env` y completar los datos requeridos
* Crear la BBDD MongoDB `practicafinal` y las colecciones `products` y `manufacturers`
* Para la carga inicial de datos, usar: `node createdb.js`__Modos de uso__:
* Uso en desarrollo: `npm run dev`
* Uso en producción: `npm start`Ruta y puerto «dev»: http://localhost:3000/v1/
__API disponible en__: https://api-tienda8bits.up.railway.app/v1/Instrucciones de uso de la API en: http://localhost:3000/
__Instrucciones disponibles en__: https://api-tienda8bits.up.railway.app/__Características destacadas de la API__:
* Emplea módulos ESM.
* Está preparada para el versionado de la API.
* Está preparada para el uso de BBDD MongoDB local o en remoto (config.js).
* Preserva la seguridad del acceso a la API con el uso del módulo `helmet`.
* Devuelve las rutas de los enlaces a las fotos y logos dinámicamente.
* Cuenta con documentación de la API.## Front end
__Tecnologías__: React + Vite, axios, react-router-dom, react-hook-form
__Módulos propios__: setSpin, inactiveBtn, compareTwoObjects__Instalación__:
* Renombrar `.env.example` a `.env` y completar la `url` de acceso al backend
* Cambiar la ruta (`base:`) de la ubicación de la APP en el servidor en `vite.config.js`
* Preparar la distribución de la carpeta `dist` para subir al servidor con `npm run build`__Modos de uso__:
* Uso en desarrollo: `npm run dev`
* Para su uso en producción, construir con: `npm run build`Ruta y puerto «dev»: http://localhost:3001/proyecto/tienda8bits/
__Aplicación disponible en__: https://javguerra.badared.com/proyecto/tienda8bits/__Características destacadas de la App__:
* El diseño es adaptable (responsive) según el dispositivo.
* CSS propio. No usa frameworks.
* Es accesible (revisado con el complemento [WAVE](https://wave.webaim.org/)).
* Utiliza fuentes de Google Font en los títulos para preservar la accesibilidad.
* Implementa el protocolo [Open Graph](https://ogp.me/) para la correcta inserción de la web en RRSS.
* Es compatible con Progessive Web Aplication ([PWA](https://developer.mozilla.org/es/docs/Web/Progressive_web_apps)) a través de fichero [manifest.json](https://developer.mozilla.org/es/docs/Web/Manifest), por lo que la página puede ser instalada en dispositivos móviles como una web app.
* Ha sido probada con los navegadores web Firefox y Chrome.
* Tratamiento de imágenes con software libre: Gimp e InkScape.## Acceder a la página web
[Acceder a la página web](https://javguerra.badared.com/proyecto/tienda8bits/) de la práctica.
![Código QR](qrcode.svg)
## Fuentes
* Wikipedia
* Enciclopedia «Mi Computer», editorial Delta, 1984.## Licencias
Sobre el código fuente: [GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)
Sobre el contenido de la web: [(CC) BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/es/)
Sobre las fotos: Son propiedad de sus respectivos autores.
Sobre las fuentes de letra: [Google Fonts](https://fonts.google.com/)
Sobre los iconos: [Heroicons](https://heroicons.com/)
Material usado sin ánimo de lucro bajo criterios didácticos y formativos.## Saber más
Artículos informativos elaborados por el autor relacionados con esta práctica:
- [Usando populate con paginate y filtrando los resultados](https://javguerra.github.io/blog/populate-paginate-fitrado/)
- [Generar enlaces dinámicos de imágenes almacenadas en MongoDB](https://javguerra.github.io/blog/rutas-dinamicas-imagenes-mongodb/)
- [Ordenando resultados en React](https://javguerra.github.io/blog/ordenacion-react/)
- [Spinner loader asíncrono](https://javguerra.github.io/blog/spinner-loader-asincrono/)