Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

coffee #22

Open
wants to merge 75 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
f245bbe
probando
IsaMonsalves Jun 12, 2023
5e2308b
prueba de git2
Jun 12, 2023
7a7e6f5
Creamos SPA y rutas1
NellyNa27 Jun 12, 2023
935e0f5
instalación firebase
IsaMonsalves Jun 12, 2023
e6baab4
SPA funcionando
IsaMonsalves Jun 13, 2023
97418e1
Botones y css
IsaMonsalves Jun 13, 2023
0aa2794
Estructura CSS, se agregan botones de tipo input
IsaMonsalves Jun 13, 2023
160cc3a
Probando ramas
IsaMonsalves Jun 14, 2023
ac51141
prueba de ramas
NellyNa27 Jun 14, 2023
6dbf12d
Registro funcionando
IsaMonsalves Jun 15, 2023
4fb8199
Registro e inicio de sesión listos
IsaMonsalves Jun 16, 2023
6ae4ec6
readme preambulo y resumen
IsaMonsalves Jun 16, 2023
f77a79e
olvidaste tu contraseña, google en proceso
IsaMonsalves Jun 16, 2023
8f76997
Registro con google Ok!
IsaMonsalves Jun 19, 2023
8ccc1e4
Registro con Google Ok!
IsaMonsalves Jun 19, 2023
39356a8
Registro con Google Ok!
IsaMonsalves Jun 19, 2023
22192c2
Cambios css, Vivie
NellyNa27 Jun 19, 2023
7e2f247
Merge pull request #1 from NellyNa27/Isa
IsaMonsalves Jun 19, 2023
8085da2
Se almacenan los post
IsaMonsalves Jun 20, 2023
f14cab7
post corregido
IsaMonsalves Jun 20, 2023
d62714c
Cambios para Vivie
NellyNa27 Jun 20, 2023
87373f3
Merge branch 'main' into Nelly
NellyNa27 Jun 20, 2023
cf77509
Merge pull request #2 from NellyNa27/Nelly
NellyNa27 Jun 20, 2023
27cea37
Enviar a Vivie para css
NellyNa27 Jun 20, 2023
fe0474c
Cambios Css para Vivie
NellyNa27 Jun 20, 2023
7083245
Estructura antes de posteo
NellyNa27 Jun 20, 2023
4bff4c4
Cambios de CSS y RESPONSIVE antes de posteo
NellyNa27 Jun 23, 2023
b1e0038
ultimos cambios Nelly para ver post
NellyNa27 Jun 26, 2023
38a4afa
se obtiene post en consola
NellyNa27 Jun 26, 2023
f48dd80
Cambios de oirigin isa
NellyNa27 Jun 26, 2023
91bd40d
Merge branch 'main' into isa
NellyNa27 Jun 26, 2023
5de0690
Merge pull request #3 from NellyNa27/isa
NellyNa27 Jun 26, 2023
122e5d7
guardo antes del pull
IsaMonsalves Jun 26, 2023
e8921b1
Merge branch 'main' of https://github.com/NellyNa27/DEV007-social-net…
NellyNa27 Jun 26, 2023
1117cff
Merge pull request #4 from NellyNa27/coffee
NellyNa27 Jun 26, 2023
5803e7b
Readme sprint 3
IsaMonsalves Jun 28, 2023
7857e5d
Posteo de recomendaciones en página
NellyNa27 Jun 28, 2023
d7bbd02
cambio de post en página y formato
NellyNa27 Jun 28, 2023
69b244a
Merge branch 'main' of https://github.com/NellyNa27/DEV007-social-net…
NellyNa27 Jun 28, 2023
70cd25d
previo a traer cambios de main
IsaMonsalves Jun 28, 2023
6aa8a8f
Merge branch 'main' of https://github.com/NellyNa27/DEV007-social-net…
IsaMonsalves Jun 28, 2023
e220ef8
respaldo
IsaMonsalves Jun 28, 2023
7667b3f
Avances viernes
IsaMonsalves Jun 30, 2023
583664c
Avance fds
IsaMonsalves Jul 3, 2023
7f32034
Merge pull request #5 from NellyNa27/Isa
IsaMonsalves Jul 3, 2023
2e438f4
cambios Nelly previos a Isa
NellyNa27 Jul 3, 2023
e4e05ac
Avances responsive, se desplega el correo en los post
IsaMonsalves Jul 4, 2023
7b7423c
Se corrigen errores de terminal y comienzan a correr los test simples
IsaMonsalves Jul 4, 2023
1dd2386
cambios de borrado de post
NellyNa27 Jul 5, 2023
4f487ce
test
IsaMonsalves Jul 5, 2023
47c7d4b
cambio de borrardo de post
NellyNa27 Jul 5, 2023
df99c46
Merge pull request #6 from NellyNa27/coffee
NellyNa27 Jul 5, 2023
4c52228
combinación con rama cofee
IsaMonsalves Jul 5, 2023
7b98e3d
Merge pull request #7 from NellyNa27/Isa
IsaMonsalves Jul 5, 2023
a5b87fd
vista de correo de usuario correcto
NellyNa27 Jul 5, 2023
990a909
Merge pull request #8 from NellyNa27/coffee
NellyNa27 Jul 5, 2023
dfa61a0
likes, desactivar botones y correciones eslint
IsaMonsalves Jul 7, 2023
35bd8c1
Merge pull request #9 from NellyNa27/Isa
IsaMonsalves Jul 7, 2023
405d23f
estilo:correo y likes
NellyNa27 Jul 7, 2023
a6385f3
Merge branch 'main' of https://github.com/NellyNa27/DEV007-social-net…
NellyNa27 Jul 7, 2023
6f332b0
cambios para modificar detalles
NellyNa27 Jul 7, 2023
6163c37
Readme1
Jul 10, 2023
bb7d639
30% tests
IsaMonsalves Jul 10, 2023
8bcfcb1
Tests en proceso
IsaMonsalves Jul 11, 2023
62f8df6
Fix test bugs.
ChristianRL23 Jul 11, 2023
c83b6be
Merge pull request #10 from ChristianRL23/Isa
IsaMonsalves Jul 11, 2023
40eeb16
Avance test y mejora del fondo
IsaMonsalves Jul 12, 2023
3f1f0fc
Merge pull request #11 from NellyNa27/Isa
IsaMonsalves Jul 12, 2023
21d0bfc
tests casi listos
IsaMonsalves Jul 13, 2023
dfc1208
Merge pull request #12 from NellyNa27/updateReadme
ShantalEslava Jul 13, 2023
fd57f6c
test final
IsaMonsalves Jul 13, 2023
c292971
Merge branch 'main' of https://github.com/NellyNa27/DEV007-social-net…
IsaMonsalves Jul 13, 2023
bdc8427
fusion final
IsaMonsalves Jul 13, 2023
7964c1d
Merge pull request #13 from NellyNa27/Isa
IsaMonsalves Jul 13, 2023
48720d3
guado cambios para tomar los de rama main
NellyNa27 Jul 13, 2023
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
579 changes: 78 additions & 501 deletions README.md

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,9 @@
"createdAt": "2023-05-12T17:41:08.657Z",
"version": "6.2.0",
"commit": "a5360f78b634be4f14eaea996ee4c7afc85a2f48"
},
"dependencies": {
"@types/jest": "^29.5.2",
"firebase": "^9.22.2"
}
}
}
32 changes: 32 additions & 0 deletions src/components/home.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { registerWithGoogle } from '../lib';

// export para tenerlo accesible, se crean los botones de acceso: registro e inicio sesión
// onNavigate, se crea por parametro y argumento.
export const home = (onNavigate) => {
const homeDiv = document.createElement('div');
const buttonLogin = document.createElement('button');
const buttonRegister = document.createElement('button');
const buttonGoogle = document.createElement('img');
homeDiv.classList = 'div';
buttonRegister.textContent = 'Regístrate';
buttonRegister.classList = 'buttonsHome';
buttonLogin.textContent = 'Inicia Sesión';
buttonLogin.classList = 'buttonsHome';
buttonGoogle.classList = 'logoG';
buttonGoogle.src = '/images/btngo2.png';
buttonGoogle.addEventListener('click', () => {
registerWithGoogle()
.then(() => {
onNavigate('/recommendations');
})
.catch(() => {
alert('Error al iniciar sesión, intente de nuevo');
});
});
buttonLogin.addEventListener('click', () => onNavigate('/login'));
buttonRegister.addEventListener('click', () => onNavigate('/register'));
homeDiv.appendChild(buttonLogin);
homeDiv.appendChild(buttonRegister);
// homeDiv.appendChild(buttonGoogle);
return homeDiv;
};
96 changes: 96 additions & 0 deletions src/components/login.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import { logIn, recoverPassword, registerWithGoogle } from '../lib/index';

// Se crea la ruta
export const login = (onNavigate) => {
// se crean los elementos de HTML para insertar
const homeDiv = document.createElement('div');
const buttonHome = document.createElement('button');
const inputEmail = document.createElement('input');
const inputPassword = document.createElement('input');
const buttonLogIn = document.createElement('button');
const buttonForgotPassword = document.createElement('button');
const buttonLogInGoogle = document.createElement('img');
const email = document.createElement('p');
const password = document.createElement('p');
const inputRevealPasswordText = document.createElement('p');
// se da características de HTML como valor, id,clase, tipo
homeDiv.classList = 'div';
email.textContent = 'EMAIL';
email.classList = 'message';
password.textContent = 'CONTRASEÑA';
password.classList = 'message';
inputEmail.id = 'email';
inputEmail.classList = 'form';
inputEmail.type = 'email';
inputPassword.classList = 'form';
inputPassword.type = 'password';
inputPassword.id = 'password';
buttonLogIn.textContent = 'Iniciar Sesión';
buttonLogIn.classList = 'buttons';
buttonForgotPassword.textContent = '¿Olvidaste tu contraseña?';
buttonForgotPassword.classList = 'buttons';
buttonHome.textContent = 'Regresar al inicio';
buttonHome.classList = 'buttons';
buttonLogInGoogle.classList = 'logoG';
buttonLogInGoogle.src = 'images/btngo2.png';
inputRevealPasswordText.textContent = 'Mostrar contraseña';
inputRevealPasswordText.classList = 'buttons';
// se crea ruta para volver al inicio
buttonHome.addEventListener('click', () => onNavigate('/'));
const home = document.getElementById('home');
home.addEventListener('click', () => onNavigate('/'));
inputRevealPasswordText.addEventListener('click', () => {
if (inputPassword.type === 'password') {
inputPassword.type = 'text';
inputRevealPasswordText.textContent = 'Ocultar contraseña';
} else {
inputPassword.type = 'password';
inputRevealPasswordText.textContent = 'Mostrar contraseña';
}
});
buttonLogIn.addEventListener('click', () => {
if (inputEmail.value.includes('@') === false) {
return alert('Ingrese un correo válido');
}
if (inputPassword.value.length < 6) {
return alert('La contraseña debe tener al menos 6 caracteres');
}
return logIn(inputEmail.value, inputPassword.value)
.then(() => {
alert('Bienvenido');
onNavigate('/recommendations');
})
.catch(() => {
alert('Error al iniciar sesión, intente de nuevo');
});
});
// olvido contraseña
buttonForgotPassword.addEventListener('click', () => {
const emailReset = prompt('Ingrese su correo');
recoverPassword(emailReset).then(() => {
alert('Se ha enviado una nueva contraseña a su correo');
});
});
// google
buttonLogInGoogle.addEventListener('click', () => {
registerWithGoogle()
.then(() => {
alert('Bienvenido');
onNavigate('/recommendations');
})
.catch(() => {
alert('Error al iniciar sesión, intente de nuevo');
});
});
// se insertan los elementos en el HTML padre(root)
homeDiv.appendChild(email);
homeDiv.appendChild(inputEmail);
homeDiv.appendChild(password);
homeDiv.appendChild(inputPassword);
homeDiv.appendChild(inputRevealPasswordText);
homeDiv.appendChild(buttonLogIn);
homeDiv.appendChild(buttonForgotPassword);
homeDiv.appendChild(buttonLogInGoogle);
homeDiv.appendChild(buttonHome);
return homeDiv;
};
136 changes: 136 additions & 0 deletions src/components/recommendations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
import { auth } from '../firebase';
import {
createPost,
enlistarPost,
deletePost,
updatePost,
removeLike,
addLike,
} from '../lib';
// creación de elementos
export const recommendations = (onNavigate) => {
const recommendationsDiv = document.createElement('div');
const recommendationsTitle = document.createElement('h1');
const postContent = document.createElement('input');
const buttonPost = document.createElement('button');
const backToTheWall = document.createElement('button');
const postsDiv = document.createElement('div');
const textPost = document.createElement('p');
const initialMessage = document.createElement('p');
// caracterización de elementos
postsDiv.classList = 'container';
textPost.classList = 'posts';
recommendationsDiv.classList = 'div';
recommendationsTitle.classList = 'title';
recommendationsTitle.textContent = 'Recomendaciones';
postContent.classList = 'postContent';
postContent.placeholder = 'Escribe tu recomendación acá';
buttonPost.classList = 'buttons';
buttonPost.textContent = 'Subir una recomendación';
backToTheWall.classList = 'buttons';
backToTheWall.textContent = 'Cerrar sesión';
backToTheWall.id = 'close';
// funcionalidad
backToTheWall.addEventListener('click', () => onNavigate('/'));
const home = document.getElementById('home');
home.addEventListener('click', () => onNavigate('/'));
buttonPost.addEventListener('click', () => {
if (postContent.value.length < 1) {
alert('Por favor ingresa algun texto para poder postear');
} else {
createPost(postContent.value, auth.currentUser.email)
.then(() => {
alert('Post creado');
postContent.value = '';
})
.catch(() => {
alert('error al subir el post, intente de nuevo');
});
}
});
// inserción de posts
enlistarPost((callback) => {
console.log(callback);
postsDiv.innerHTML = '';
callback.forEach((element) => {
// hay que limpiar el post para que no se repita postsDiv.innerHTML = '';
const post = document.createElement('div');
const deleteButton = document.createElement('button');
const updateButton = document.createElement('button');
const likeLoge = document.createElement('img');
const likeNumber = document.createElement('p');
const userName = document.createElement('p');
const userMail = document.createElement('div');
deleteButton.textContent = 'Borrar Post';
deleteButton.classList = 'postButtons';
deleteButton.name = 'botonBorrar';
updateButton.textContent = 'Editar Post';
updateButton.classList = 'postButtons';
likeLoge.classList = 'like';
likeLoge.src = 'images/like.png';
likeNumber.classList = 'likeCount';
likeNumber.textContent = '0';
likeNumber.classList = 'like';
// likeNumber.textContent = '0';
post.classList = 'posts';
userName.classList = 'userName';
userMail.classList = 'datosUser';
userName.appendChild(document.createTextNode(element.data().email));
console.log(element);
likeNumber.appendChild(
document.createTextNode(element.data().like.length),
);
deleteButton.setAttribute('id', element.id);
post.appendChild(userMail);

userMail.appendChild(userName);
userMail.appendChild(likeLoge);
userMail.appendChild(likeNumber);
userMail.appendChild(userName);
post.appendChild(document.createTextNode(element.data().content));
// agregar un atributo
post.appendChild(updateButton);
post.appendChild(deleteButton);
postsDiv.appendChild(post);
deleteButton.addEventListener('click', () => {
if (auth.currentUser.email !== element.data().email) {
alert('Sólo puedes eliminar tus propios post');
updateButton.disabled = true;
} else {
deletePost(element.id);
}
});
updateButton.addEventListener('click', () => {
if (auth.currentUser.email !== element.data().email) {
alert('Sólo puedes editar tus propios post');
updateButton.disabled = true;
} else {
const postReset = prompt('Edita tu recomendación: ');
updatePost(element.id, postReset);
}
});
likeLoge.addEventListener('click', () => {
likeNumber.innerHTML = '';
if (!element.data().like.includes(auth.currentUser.email)) {
addLike(element.id, auth.currentUser.email);
likeNumber.appendChild(
document.createTextNode(element.data().like.length),
);
} else {
removeLike(element.id, auth.currentUser.email);
likeNumber.appendChild(
document.createTextNode(element.data().like.length),
);
}
});
});
});
// inserción al HTML
recommendationsDiv.appendChild(recommendationsTitle);
recommendationsDiv.appendChild(postContent);
recommendationsDiv.appendChild(buttonPost);
recommendationsDiv.appendChild(initialMessage);
recommendationsDiv.appendChild(postsDiv);
recommendationsDiv.appendChild(backToTheWall);
return recommendationsDiv;
};
87 changes: 87 additions & 0 deletions src/components/register.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import { createUser, registerWithGoogle } from '../lib/index';

export const register = (onNavigate) => {
const homeDiv = document.createElement('div');
homeDiv.classList = 'div';
const buttonHome = document.createElement('button');
const buttonName = document.createElement('input');
const buttonNewEmail = document.createElement('input');
const buttonNewPassword = document.createElement('input');
const buttonSignIn = document.createElement('button');
const buttonGoogle = document.createElement('img');
const conditionsPassword = document.createElement('p');
const buttonRegisterWithGoogle = document.createElement('button');
const name = document.createElement('P');
const email = document.createElement('p');
const password = document.createElement('p');
const inputRevealPasswordText = document.createElement('button');
buttonGoogle.classList = 'logoG';
buttonGoogle.src = 'images/btngo2.png';
buttonName.classList = 'form';
buttonNewEmail.classList = 'form';
buttonNewPassword.classList = 'form';
buttonNewPassword.type = 'password';
conditionsPassword.classList = 'text';
conditionsPassword.textContent = '(La contraseña debe tener al menos 6 carácteres)';
buttonSignIn.textContent = 'Registrarse';
buttonSignIn.classList = 'buttons';
buttonHome.textContent = 'Regresar al inicio';
buttonHome.classList = 'buttons';
buttonRegisterWithGoogle.classList = 'buttonGoogle';
buttonRegisterWithGoogle.textContent = 'Registrarse con Google';
name.textContent = 'INGRESA TU NOMBRE';
name.classList = 'message';
email.textContent = 'EMAIL';
email.classList = 'message';
password.textContent = 'CONTRASEÑA';
password.classList = 'message';
inputRevealPasswordText.textContent = 'Mostrar contraseña';
inputRevealPasswordText.classList = 'buttons';
// funcionalidad
buttonHome.addEventListener('click', () => onNavigate('/'));
const home = document.getElementById('home');
home.addEventListener('click', () => onNavigate('/'));
inputRevealPasswordText.addEventListener('click', () => {
if (buttonNewPassword.type === 'password') {
buttonNewPassword.type = 'text';
inputRevealPasswordText.textContent = 'Ocultar contraseña';
} else {
buttonNewPassword.type = 'password';
inputRevealPasswordText.textContent = 'Mostrar contraseña';
}
});
buttonSignIn.addEventListener('click', () => {
if (buttonName.value.length === 0) return alert('Por favor ingresa tu nombre');
if (buttonNewEmail.value.includes('@') === false) return alert('Ingrese un correo válido');
if (buttonNewPassword.value.length < 6) return alert('La contraseña debe tener al menos 6 caracteres');
return createUser(buttonNewEmail.value, buttonNewPassword.value)
.then(() => {
alert('Usuario registrado con éxito');
onNavigate('/recommendations');
})
.catch(() => {
alert('Error al crear el usuario, intente de nuevo');
});
});
buttonRegisterWithGoogle.addEventListener('click', () => {
registerWithGoogle()
.then(() => {
onNavigate('/recommendations');
})
.catch(() => {
alert('Error al iniciar sesión, intente de nuevo');
});
});
homeDiv.appendChild(name);
homeDiv.appendChild(buttonName);
homeDiv.append(email);
homeDiv.appendChild(buttonNewEmail);
homeDiv.appendChild(password);
homeDiv.appendChild(buttonNewPassword);
homeDiv.appendChild(inputRevealPasswordText);
homeDiv.appendChild(conditionsPassword);
homeDiv.appendChild(buttonSignIn);
homeDiv.appendChild(buttonGoogle);
homeDiv.appendChild(buttonHome);
return homeDiv;
};
14 changes: 14 additions & 0 deletions src/components/wall.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export const wall = (onNavigate) => {
const wallDiv = document.createElement('div');
const wallTitle = document.createElement('h1');
const buttonRecommendations = document.createElement('button');
wallDiv.classList = 'wallDiv';
wallTitle.textContent = 'Bienvenidos al rincón del café';
wallTitle.classList = 'title';
buttonRecommendations.classList = 'buttons';
buttonRecommendations.textContent = 'Recomendaciones';
buttonRecommendations.addEventListener('click', () => onNavigate('/recommendations'));
wallDiv.appendChild(wallTitle);
wallDiv.appendChild(buttonRecommendations);
return wallDiv;
};
Loading