Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/naopeke/MagicApp into pos…
Browse files Browse the repository at this point in the history
…t-final-adjustments-nao
  • Loading branch information
naopeke committed Apr 12, 2024
2 parents 0044cb3 + 34fc4fc commit 932211c
Show file tree
Hide file tree
Showing 10 changed files with 121 additions and 66 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# MagicApp
![Captura desde 2024-04-05 15-14-45](https://github.com/naopeke/MagyDeck/assets/143800388/20ed46db-dbc6-4ea6-a15a-3c0f3f9d0924)


This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.

Expand Down
49 changes: 7 additions & 42 deletions instalacion.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
angular 16.2.12
```
npm i bootstrap @popperjs/core
nvm use 18.10.0
```
```
ng add @angular/material
npm i bootstrap@5.3.3 @popperjs/core@2.11.8
```
```
ng add @angular/material@16.2.14
```
```
npm i swiper@10.3.1
Expand All @@ -23,46 +27,7 @@ ng build --configuration production
## Fork github
1. pulsar el icono de fork
2. Sale este repo en tu cuenta. abajo "forked from naopeke/magyDeck"
Con este paso, has copiado este repo como tu repo de tu cuenta y puedes modificar todo lo que quieras.

Cuando se trabaja en un proyecto final de academia con varios miembros utilizando GitHub, elegir entre "Fork" y "Clone" depende de cómo el equipo planea gestionar el proyecto y colaborar. A continuación, se describen las características y ventajas de cada método.

## Uso de Clone
Compartir directamente: Al clonar directamente el repositorio del proyecto, todos los miembros del equipo pueden acceder y modificar el mismo repositorio. Esto facilita la colaboración.
Sincronización fácil: Los miembros pueden utilizar git pull para obtener los últimos cambios fácilmente y git push para compartir sus cambios en el repositorio compartido.
Estrategia de ramificación: El equipo puede trabajar en ramas para desarrollar características o correcciones específicas y luego fusionarlas con la rama main una vez completadas, lo que ayuda a organizar el trabajo.

## Uso de Fork
Espacio de trabajo individual: Cada miembro del equipo puede crear un fork del proyecto, lo que le da una copia del proyecto en su propia cuenta de GitHub. Esto permite experimentar y hacer cambios sin afectar el trabajo de los demás.
Colaboración mediante Pull Requests: Después de hacer cambios en su fork, los miembros pueden enviar pull requests al repositorio original, proponiendo sus cambios. Esto facilita un proceso de revisión y aprobación de cambios.
Modelo de desarrollo descentralizado: Usar forks es similar al modelo de desarrollo descentralizado común en proyectos de código abierto. Este método da a cada individuo más libertad y responsabilidad en su contribución al proyecto.

## Conclusión
Dependiendo del tamaño del proyecto y las preferencias del equipo, se puede elegir el método más adecuado. Para equipos pequeños que trabajan en estrecha colaboración y se comunican con frecuencia, clonar puede ser más conveniente.
Por otro lado, si cada miembro trabaja de manera más independiente y se desea una revisión estricta de los cambios, o si el equipo es grande, usar forks podría ser más apropiado.
Selecciona el método que mejor se adapte a las necesidades del proyecto.

***********************************************


Es posible utilizar Fork y Clone simultáneamente en GitHub. Esto puede hacerse manteniendo repositorios separados para Fork y Clone dentro del mismo proyecto. Esta estrategia puede ser muy efectiva dependiendo de la gestión del proyecto y la colaboración del equipo. Aquí te explico cómo:

Razones para usar Fork y Clone simultáneamente
Separación del trabajo individual y colaborativo: Mientras los miembros del equipo tienen un fork para trabajar individualmente, también pueden usar un repositorio clonado compartido para contribuir al trabajo colaborativo. Esto permite experimentar y desarrollar de manera independiente, mientras se facilita la contribución al proyecto común.
Flujo de trabajo flexible: Puedes trabajar en partes específicas del proyecto en tu fork para realizar cambios independientes y luego integrar esos cambios en el repositorio clonado compartido mediante pull requests. Esto promueve la colaboración a través de un proceso de revisión y aprobación de cambios, manteniendo la calidad del proyecto.

Cómo implementarlo
Crear un Fork: Haz un fork del repositorio original del proyecto. Esto crea una copia del proyecto en tu cuenta de GitHub.
Crear un Clone: Clona el repositorio original o el repositorio compartido por el equipo a tu máquina local.
Trabajar de manera individual: Realiza tu trabajo en el repositorio que has forked en tu cuenta de GitHub. Aquí puedes desarrollar nuevas funcionalidades o realizar experimentos.
Contribuir al repositorio compartido: Una vez que hayas completado tu trabajo, envía un pull request desde tu fork al repositorio clonado compartido (el repositorio original) para integrar tus cambios.
Este método permite mantener la independencia de los individuos mientras se fomenta la colaboración y se mantiene la cohesión del proyecto. Es importante mantener una comunicación y colaboración estrecha dentro del equipo para implementar esta estrategia efectivamente.






Con este paso, has copiado este repo como tu repo de tu cuenta y puedes modificar todo lo que quieras.



Expand Down
17 changes: 17 additions & 0 deletions src/app/components/decks/decks.component.css
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,23 @@
border: solid var(--amarillo);
cursor: pointer;
}

.checked{
color: var(--amarillo);
}

.show{
color: var(--amarillo);
}

mat-icon{
cursor: pointer;
color: #b3b3b3d3;
}

.icon{
color: #b3b3b377;
}
@media screen and (max-width: 1025px){
.datos{
font-size: 14pt;
Expand Down
20 changes: 16 additions & 4 deletions src/app/components/decks/decks.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,24 @@
<div class="datos explorar" (click)="explora(mazo.id_deck)">Explora</div>
<div class="datos estrellas">
<div class="datos puntuacion">
<div class="estrellas">
<app-rating (onRating)="Handle(mazo.id_deck, $event)" [mediaScore] = "mazo.mediaScore" [typeRating]="typeRating" [id_deck] = mazo.id_deck [mazo] = 'mazo'></app-rating>
<div *ngIf="typeRating == 1" class="estrellas puntuar">
<mat-icon *ngFor="let icon of maxRatingArr; let index= index"
(mouseover) = "HandleMouseEnter(index)"
(mouseleave) = "HandleMouseLeave()"
(click)="rating(index, mazo.id_deck)"
[ngClass]="{checked: mazo.selectedStar > index || mazo.previousScore.score > index}">
star
</mat-icon>
<!-- <app-rating (onRating)="Handle(mazo.id_deck, $event)" [mediaScore] = "mazo.mediaScore" [typeRating]="typeRating" [mazo] = 'mazo'></app-rating> -->
</div>
<div *ngIf="typeRating == 2" class="estrellas">
<mat-icon *ngFor="let icon of maxRatingArr; let index= index"
[ngClass]="{checked:index < roundMediaScore()}">
star
</mat-icon>
<!-- <app-rating (onRating)="Handle(mazo.id_deck, $event)" [mediaScore] = "mazo.mediaScore" [typeRating]="typeRating" [mazo] = 'mazo'></app-rating> -->
</div>
<div >{{ mazo.mediaScore}}</div>


</div>
</div>

Expand Down
82 changes: 69 additions & 13 deletions src/app/components/decks/decks.component.ts
Original file line number Diff line number Diff line change
@@ -1,30 +1,86 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Deck } from 'src/app/models/deck';
import { User } from 'src/app/models/user';
import { DeckService } from 'src/app/shared/deck.service';
import { UsersService } from 'src/app/shared/users.service';

@Component({
selector: 'app-decks',
templateUrl: './decks.component.html',
styleUrls: ['./decks.component.css']
})
export class DecksComponent {
public explorar: boolean = false
public score: number;
public selectedStar: number
export class DecksComponent implements OnInit {
@Input () typeRating: number;
@Input () mazo: Deck
@Input() maxrating: number = 5;
@Output() eventoExplorar = new EventEmitter<number>();
@Output() eventoPuntuacion = new EventEmitter<{id_deck:number, score:number}>()

public explora(id_deck:number){
this.explorar = true
this.eventoExplorar.emit(id_deck)
public maxRatingArr:number[] = [1,2,3,4,5]
public explorar: boolean = false
public score: number;
public currentUser: User;
constructor(private deckService:DeckService, private userService:UsersService ){

}

Handle(id_deck:number, score:number){
this.eventoPuntuacion.emit({id_deck, score})
async ngOnInit(): Promise<void> {
await this.loadCurrentUser();
this.deckService.getScore(this.currentUser.id_user, this.mazo.id_deck).subscribe((res:any) => {
if (res.data[0]) {
console.log(res.data[0].date);
this.mazo.previousScore = { date: res.data[0].date, id_user: res.data[0].id_user, score: res.data[0].score };
console.log(this.mazo.previousScore);
} else {
this.mazo.previousScore = { date: '', id_user: 0, score: 0 };
}
});

this.selectedStar = score;
console.log(this.selectedStar);

}

private async loadCurrentUser(): Promise<void> {
return new Promise<void>((resolve) => {
this.userService.currentUserChanges().subscribe(user => {
this.currentUser = user;
resolve();
});
});
}

HandleMouseEnter(index:number){
this.mazo.selectedStar=index+1
}

HandleMouseLeave(){
if(this.mazo.previousScore.score !== 0){
this.mazo.selectedStar = this.mazo.previousScore.score
}
else {
this.mazo.selectedStar = 0
}
}

rating(index:number, id_deck){
if(this.mazo.previousScore.score == 0 && this.mazo.id_user != this.currentUser.id_user){
this.mazo.selectedStar= index + 1;
this.mazo.previousScore.score= this.mazo.selectedStar
}
this.score = this.mazo.selectedStar
this.eventoPuntuacion.emit({id_deck, score:this.score});
}

roundMediaScore(){
let resultado;
if (this.mazo.mediaScore !== undefined) {
resultado = Math.round(this.mazo.mediaScore);
} else {
resultado = 0
}
return resultado
}

public explora(id_deck:number){
this.explorar = true
this.eventoExplorar.emit(id_deck)
}
}
10 changes: 5 additions & 5 deletions src/app/components/rating/rating.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export class RatingComponent{
@Input() mazo: Deck
@Input() mediaScore: number;
@Input () typeRating: number;
@Input () i: number
@Output() onRating = new EventEmitter<number>()
public selectedStar: number
public showStar: number = 0
Expand All @@ -24,18 +25,17 @@ export class RatingComponent{
this.selectedStar = index +1
}
HandleMouseLeave(){
// if(this.previoSelection != 0){
// this.selectedStar = this.previoSelection
// }else
if(this.previoSelection != 0){
this.selectedStar = this.previoSelection
}else
this.selectedStar = 0
}

rating(index:number){

this.selectedStar = index + 1;
this.previoSelection = this.selectedStar
console.log(this.mazo);

console.log(this.mazo)
console.log(this.previoSelection);
this.onRating.emit(this.selectedStar);

Expand Down
3 changes: 2 additions & 1 deletion src/app/models/deck.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ export class Deck {
public cards?: Card[],
public URLphoto?:string,
public id_user?: number,
public previousScore?: { date: string, userVotes: number, score:number }[],
public previousScore?: { date: string, id_user: number, score:number },
public selectedStar?: number,
public typeRating?:number
){}
}
Expand Down
2 changes: 1 addition & 1 deletion src/app/pages/explora/explora.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ <h2 class="tituloh2" >Vota y descubre los mejores mazos</h2>

<cdk-virtual-scroll-viewport itemSize="50" class="scroll">

<div *cdkVirtualFor="let mazo of mazos" class="bucle" >
<div *ngFor="let mazo of mazos" class="bucle" >
<app-decks [mazo] = "mazo" (eventoExplorar) = 'seleccionMazo($event)'
(eventoPuntuacion) = "score($event)" [typeRating] = 1></app-decks>
</div>
Expand Down
1 change: 1 addition & 0 deletions src/app/pages/explora/explora.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ export class ExploraComponent implements OnInit {
}

public score(event:{id_deck:number, score:number}){
this.loadCurrentUser();
this.mazos.find ((deck) => {
if(deck.id_deck == event.id_deck){
this.deckService.putMediaScore(this.currentUser.id_user,event.id_deck, event.score).subscribe((res:any) => {
Expand Down
1 change: 1 addition & 0 deletions src/app/shared/deck.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export class DeckService {

public getScore(id_user:number, id_deck:number){
return this.http.get(`${this.urlExplora}/score?id_user=${id_user}&id_deck=${id_deck}`)

}

public getDeckById(id_deck:number,filter:string){
Expand Down

0 comments on commit 932211c

Please sign in to comment.