Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
fdfe749
primera modificacion
Javitxin Feb 26, 2024
8d17707
segunda modificacion
Javitxin Feb 26, 2024
f5470ba
tercera revision
Javitxin Feb 27, 2024
15aa8d1
revision
Javitxin Feb 27, 2024
1495434
martes locos m
naiara-ada Feb 27, 2024
631ec6a
martes locos m
naiara-ada Feb 27, 2024
f189a7f
working
naiara-ada Feb 27, 2024
9ef6294
update styles
naiara-ada Feb 28, 2024
cf67f8f
updating testing
naiara-ada Feb 28, 2024
75708e6
updatin testing
naiara-ada Feb 28, 2024
65e00b4
Working
Javitxin Feb 29, 2024
e970ff5
updating test
naiara-ada Feb 29, 2024
5040e50
merge testing
naiara-ada Feb 29, 2024
ebcb82b
merging files
naiara-ada Feb 29, 2024
65b5190
Working2
Javitxin Feb 29, 2024
9b6188b
Working3
Javitxin Feb 29, 2024
67eb4c2
Working4
Javitxin Feb 29, 2024
cf8137a
findindex
Javitxin Feb 29, 2024
9da0243
updating testing
naiara-ada Feb 29, 2024
754f23e
Co-authored-by: Javitxin <Javitxin@users.noreply.github.com>
naiara-ada Feb 29, 2024
f1058cc
updating testing
naiara-ada Feb 29, 2024
4c0deb8
working4
Javitxin Feb 29, 2024
1dcf49b
updating index & DB
naiara-ada Feb 29, 2024
4f8d1c8
Merge branch 'main' of https://github.com/Javitxin/backend-project-break
naiara-ada Feb 29, 2024
bd20beb
working4
Javitxin Feb 29, 2024
c003c99
Merge branch 'main' of https://github.com/Javitxin/backend-project-break
naiara-ada Feb 29, 2024
217b651
working5
Javitxin Feb 29, 2024
658c5b2
handle errors
naiara-ada Feb 29, 2024
f9b8f70
Merge branch 'main' of https://github.com/Javitxin/backend-project-break
naiara-ada Feb 29, 2024
4e0ecc1
Working6
Javitxin Feb 29, 2024
cfcc9cd
session working
naiara-ada Mar 6, 2024
c4a89ee
session working
naiara-ada Mar 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Node.js
node_modules/
# npm
*.log
*.lock
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
# Environment variables
.env
# Editor
.vscode/
.idea/
# Logs and databases
*.log
*.sqlite
*.sqlite3
*.db
*.sql
# Build output
/build/
/dist/
/out/
/build-output/
# OS-generated files
.DS_Store
Thumbs.db
106 changes: 106 additions & 0 deletions README2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Tienda de ropa

En esta documentación vamos a explicar el funcionamiento de la tienda de ropa, las tecnologías usadas, endpoints, etc.

## Índice

-[Url donce está ubicada nuestra tienda](#URL-Tienda-de-ropa)
-[Funcionamiento de la tienda de ropa](#Funcionamiento-de-la-tienda-de-ropa)
-[Tecnologías usadas para crear esta tienda de ropa](#Tecnologias-usadas)
-[Endpoints utilizados para HTML](#Endpoints-html)
-[Endpoints utilizados para la API](#Endpoints-Api)

## URL Tienda de ropa
Esta sería la URL donde está alojada la tienda: URL:http********

## Funcionamiento de la tienda de ropa

Una vez que se accede a la url de la web, lo primero que nos vamos ha encontrar es una web con una barra de navegación, la cual consta de las siguientes categorías:

-[Productos](#Categoría-Productos)
-[Camisetas](#Categoría-Camisetas)
-[Pantalones](#Categoría-Pantalones)
-[Zapatos](#Categoría-Zapatos)
-[Accesorios](#Categoría-Accesorios)
-[login](#Login)
-[La web Logeado](#La-web-Logeado)
-[Logeado Productos](#Logeado-Productos)
-[Botón Actualizar](#Botón-Actualizar)
-[Botón Eliminar](#Botón-Eliminar)
-[Opcion de crear nuevo producto](#Opción-de-crear-nuevo-producto)
-[Opción Logout](#Opción-Logout)

### Categoría Productos

En este apartado de la web, nos muestra todos los productos que existen en la web, cada producto tiene un botón para porde ver una vista detalle del producto en cuestión.

### Categoría Camisetas

En este apartado de la web, nos muestra solo los productos por camisetas que existan en nuestra web, también con su botón para acceder a su vista detalle.

### Categoría Pantalones

En este apartado de la web, nos muestra solo los productos por pantalones que existan en nuestra web, también su botón para acceder a su vista detalle.

### Categoría Zapatos

En este apartado de la web, nos muestra solo los productos por zapatos que existan en nuestra web, también su botón para acceder a su vista detalle.

### Categoría Accesorios

En este apartado de la web, nos muestra solo los productos por accesorios que existan en nuestra web, también su botón para acceder a su vista detalle.

#### Login

En este apartado tienes la opción de logearte en la web para poder acceder a ella con las funciones de administrador y así poder utilizar todas las opciones de Crear, buscar, modificar y borrar los artículos de la tienda.

#### La web Logeado

Cuando cliques en la opción de login, te saldrá una pantalla donde deberas introducir tu Usuário y contraseña de administrador de la web, esa pantalla comprueba que la información sea correcta, para poder entrar como administrador.
Una vez logeado te aparece una web con una barra de navegación arriba con; Productos, Camisetas, Pantalones, Zapatos, Accesorios, Nuevo Producto y Logout.

#### Logeado Productos
A simple vista lo que se muestra es lo mismo que en la opción de inicio de productos pero una vez que presionas el botón Ver detalle, nos muestra una vista detalle del producto con dos botones más, botón Actualizar y Botón Eliminar.

#### Botón Actualizar

Una vez presionado este botón, nos muestra una web con la misma barra de navegación que cuando estás logeado y como cuerpo principal de la web un formulario de actualización del producto en cuestión con la información de ese producto y un botón de actualizar, uan vez hechos los cambios pertinentes en dicho producto al pinchar en el botón actualizar no vuelve a mostrar el producto en cuestión con su modificación ya realizada.
Esto es aplicable a todas las categorías de la web pantalones, camisetas, zapatos, accesorios.


#### Botón Eliminar

Una vez pulsado el botón de eleminar, nos mostrará un mensaje el cual no dice que el producto se ha eliminado correctamente. Esto es aplicable a todas las categorías de la web pantalones, camisetas, zapatos, accesorios.

#### Opción de crear nuevo producto

Una vez de clicar en la opción de la barra de menus, Nuevo Producto, nos aparece una web cd crear producto con todos los campos para crear dicho producto y un botón de enviar, una vez que se han rellenado todos los campos del nuevo producto, al presionar el botón de enviar, nos redirecciona a la web principal donde nos muestra todos los productos incluido el nuevo producto.

#### Opción Logout

Una clicado esta opción, simplemente cerrará la sesón del usuario que estemos usando y nos llevará a la pagina principal de la web que es solo de consulta.

## Tecnologias usadas

Estas son las tecnologías o recursos utilizados para nuestra web.

-[Express](#Epress)


- [Express](https://expressjs.com/)(#Express)
- [Mongoose](https://mongoosejs.com/)
- [Atlas](https://www.mongodb.com/cloud/atlas)
- [Fl0](https://fl0.io/)
- [dotenv](https://www.npmjs.com/package/dotenv)
- [express-session](https://www.npmjs.com/package/express-session)
- [express.urlencoded](https://expressjs.com/en/api.html#express.urlencoded)
- [express.static](https://expressjs.com/en/api.html#express.static)
- [Template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)
- [Pug](https://pugjs.org/api/getting-started.html)
- [Firebase](https://firebase.google.com/)
- [Firebase Auth](https://firebase.google.com/docs/auth)
- [Get Started with Firebase Authentication on Websites](https://firebase.google.com/docs/auth/web/start)


## Endpoints html

36 changes: 36 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const express = require('express');
const dbConnection = require('./src/config/db.js');
const app = express();
const path = require('node:path');
const session = require('express-session');
const cors = require('cors');
require('dotenv').config();
const {hashedSecret} = require('./src/config/configcryp.js')

const PORT = process.env.PORT || 3000
const router = require('./src/routes/productRoutes.js');


app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use(session({
secret: hashedSecret,
resave: false,
saveUninitialized: true,
cookie:{secure:false},
}))


app.use('/', router);


const publicPath = path.resolve(__dirname, 'public')
app.use(express.static(publicPath));

dbConnection()

app.listen(PORT, () => {
console.log(`Express está escuchando en el puerto http://localhost:${PORT}`)
})
33 changes: 33 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"name": "backend-project-break",
"version": "1.0.0",
"description": "Vamos a montar una tienda de ropa con un catálogo de productos y un dashboard para el administrador. Los productos se guardarán en una base de datos de mongo en Atlas. Podemos usar como referencia el pdf [web_ejemplo.pdf](web_ejemplo.pdf) que contiene un ejemplo de cómo podría ser la interfaz de la tienda y el dashboard.",
"main": "index.js",
"directories": {
"test": "test"
},
"scripts": {
"test": "jest",
"dev": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "5.1.1",
"buildpack": "0.0.1",
"cors": "2.8.5",
"dotenv": "16.4.5",
"express": "4.18.2",
"express-session": "1.18.0",
"firebase": "10.8.1",
"firebase-admin": "^12.0.0",
"firebaseui": "6.1.0",
"jsonwebtoken": "9.0.2",
"mongoose": "8.2.0"
},
"devDependencies": {
"jest": "29.7.0",
"nodemon": "3.1.0"
}
}
Loading