Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/Arquisoft/wiq_es04c into…
Browse files Browse the repository at this point in the history
… develop
  • Loading branch information
yagonavajas committed Mar 7, 2024
2 parents f75af89 + 1246afa commit fc73c0d
Show file tree
Hide file tree
Showing 20 changed files with 105 additions and 130 deletions.
Binary file added docs/images/Building Block View.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/Diagrama de contexto de negocio.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/Diagrama de contexto técnico.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/Whitebox Overall System.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion docs/src/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ ifndef::imagesdir[:imagesdir: ../images]
== System Scope and Context 💭

=== Contexto de negocio 💰
image::Diagrama de contexto de negocio.jpg["Diagrama de contexto de negocio"]
En esta tabla se muestra el contexto de negocio de la aplicación. Las entradas son los mensajes que van desde el agente externo hacia la aplicación, y las salidas son los mensajes que van desde la aplicación hacia al agente externo.
[options="header",cols="1,2,3"]
|===
Expand All @@ -14,4 +15,4 @@ En esta tabla se muestra el contexto de negocio de la aplicación. Las entradas

=== Contexto técnico 🔧

image::diagrama_contexto_tecnico.drawio.png["Diagrama de contexto técnico"]
image::Diagrama de contexto técnico.jpg["Diagrama de contexto técnico"]
110 changes: 26 additions & 84 deletions docs/src/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-building-block-view]]


== Building Block View EN desarollo 🗳️
image::whiteBoxGeneral.png[]
=== Building Block View EN desarollo 🗳️
image::Building Block View.jpg["Building Block View"]


=== Whitebox Overall System 📏
image::whiteLevel1.png[]
image::Whitebox Overall System.jpg["Whitebox Overall System"]

[role="arc42help"]

Motivation::

Este diagrama del sistema general muestra una descrpicion del sistema con los componentes basicos
Este diagrama del sistema general muestra una descripción del sistema con los componentes básicos.


Contained Building Blocks::
Expand All @@ -31,133 +31,75 @@ API Preguntas
Important Interfaces::


[role="arc42help"]
****
Insert your explanations of black boxes from level 1:
EN DESARROLLO.

If you use tabular form you will only describe your black boxes with name and
responsibility according to the following schema:

[cols="1,2" options="header"]
|===
| **Name** | **Responsibility**
| _<black box 1>_ | _<Text>_
| _<black box 2>_ | _<Text>_
==== <Interfaz Gráfica>
[options="header",cols="1,2"]
|===
If you use a list of black box descriptions then you fill in a separate black box template for every important building block .
Its headline is the name of the black box.
****


==== <Interfaz Grafica>

[role="arc42help"]
****
Here you describe <black box 1>
according the the following black box template:
* Purpose/Responsibility
* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics.
* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, ....
* (Optional) directory/file location
* (Optional) Fulfilled requirements (if you need traceability to requirements).
* (Optional) Open issues/problems/risks
****

_<Purpose/Responsibility>_
La Interfaz de Usuario (UI) - Black Box 1 es responsable de proporcionar una interfaz interactiva y amigable para los usuarios finales. Sirve como el punto principal de interacción entre la aplicación y los usuarios, y facilita la experiencia general del usuario.
_<Interface(s)>_
Interfaz de Entrada del Usuario: Acepta la entrada del usuario a través de varios controles, como botones, formularios y campos de entrada.
|Purpose/Responsibility
|La Interfaz de Usuario (UI) - Black Box 1 es responsable de proporcionar una interfaz interactiva y amigable para los usuarios finales. Sirve como el punto principal de interacción entre la aplicación y los usuarios, y facilita la experiencia general del usuario.
|Interface(s)
|Interfaz de Entrada del Usuario: Acepta la entrada del usuario a través de varios controles, como botones, formularios y campos de entrada.
Interfaz de Visualización: Renderiza y muestra información al usuario, incluyendo datos, mensajes y elementos visuales.
_<Quality/Performance Characteristics>_
Capacidad de Respuesta: La UI debe responder de manera rápida a las interacciones del usuario para garantizar una experiencia fluida y eficiente.
|Quality/Performance Characteristics
|Capacidad de Respuesta: La UI debe responder de manera rápida a las interacciones del usuario para garantizar una experiencia fluida y eficiente.
Accesibilidad: Adhiere a los estándares de accesibilidad para proporcionar una experiencia inclusiva para los usuarios.
|===



==== <Loggin>
=== <Loggin>
_<Purpose/Responsibility>_

Su función principal es permitir el acceso a los usuarios a la aplicacion , y guardar los resultados de estos.
Su función principal es permitir el acceso a los usuarios a la aplicación , y guardar los resultados de estos.

_<black box template>_
EN DESARROLLO.

==== <Api de preguntas>
_<Purpose/Responsibility>_
Su proposito es proporcionar preguntas de manera dinamica al usuario.
Su propósito es proporcionar preguntas de manera dinámica al usuario.


_<black box template>_

==== <Logica de negocio >
==== <Lógica de negocio >
_<Purpose/Responsibility>_
Se encargara de gestionar toda la programacion necesaria de cara a la logica
Se encargará de gestionar toda la programación necesaria de cara a la lógica.

==== <Base de datos>
_<Purpose/Responsibility>_
Dara almacenamiento al sistema de manera persistente y a los records de los usuarios.
Dará almacenamiento al sistema de manera persistente y a los récords de los usuarios.


=== Level 2

[role="arc42help"]
****
Here you can specify the inner structure of (some) building blocks from level 1 as white boxes.
You have to decide which building blocks of your system are important enough to justify such a detailed description.
Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks.
Leave out normal, simple, boring or standardized parts of your system
****

==== White Box _<Interfaz de usuario>_

[role="arc42help"]
****
...describes the internal structure of _building block 1_.
****

_<white box Interfaz Usuario>_
image::uiLevel2.png[]
==== White Box _<Login>_

image::loginLevel2.png[]
En desarollo.

==== White Box _<Login>_

En desarollo.

...

==== White Box _<Api preguntas>_


En desarollo

==== White Box _<Logica de negocio >_

image::bdLevel2.png[]



=== Level 3
En desarollo

[role="arc42help"]
****
Here you can specify the inner structure of (some) building blocks from level 2 as white boxes.

When you need more detailed levels of your architecture please copy this
part of arc42 for additional levels.
****
=== Level 3 En desarrollo.


==== White Box <_building block x.1_>

[role="arc42help"]
****
Specifies the internal structure of _building block x.1_.
****


_<white box template>_
Expand Down
38 changes: 4 additions & 34 deletions docs/src/07_deployment_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,19 @@ ifndef::imagesdir[:imagesdir: ../images]

EN DESARROLLO.

[role="arc42help"]
****
Describe (usually in a combination of diagrams, tables, and text):
* distribution of a system to multiple locations, environments, computers, processors, .., as well as physical connections between them
* important justifications or motivations for this deployment structure
* quality and/or performance features of this infrastructure
* mapping of software artifacts to elements of this infrastructure
For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments.
****

_**<Overview Diagram>**_ 🎀

EN DESARROLLO.

Motivation:: 🤩
Motivation 🤩::

1. Disponibilidad: Se busca una aplicación que sea capaz de prestar servicio de manera continuada, con resistencia a fallos.
2. Eficiencia: Se busca una aplicación que ofreza un rendimiento óptimo para la generación de preguntas desde dispositivos con pocas capacidades.
3. Cumplimiento de Requisitos Regulatorios: El uso de Wikidata como fuente de datos en nuestra aplicación está respaldado por la necesidad de cumplir con requisitos regulatorios y normativos específicos. Esta elección se basa en las siguientes consideraciones:



Quality and/or Performance Features:: 🎉
Quality and/or Performance Features 🎉::

1.Rendimiento: Se busca que la aplicación tenga un rendimiento óptimo en dispositivos móviles y tablets.
2.Adaptabilidad: La aplicación tiene que ser adaptable en diferentes dispositivos para así poder garantizar su uso.
Expand All @@ -44,34 +32,16 @@ Quality and/or Performance Features:: 🎉

EN DESARROLLO.

Mapping of Building Blocks to Infrastructure:: 📜
Mapping of Building Blocks to Infrastructure 📜::

EN DESARROLLO.
_<description of the mapping>_


=== Infrastructure Level 2 ☝️

[role="arc42help"]
****
Here you can include the internal structure of (some) infrastructure elements from level 1.
Please copy the structure from level 1 for each selected element.
****

EN DESARROLLO.


==== _<Infrastructure Element 1>_

_<diagram + explanation>_

==== _<Infrastructure Element 2>_

_<diagram + explanation>_

...

==== _<Infrastructure Element n>_

_<diagram + explanation>_
EN DESARROLLO.
2 changes: 1 addition & 1 deletion docs/src/09_architecture_decisions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ ifndef::imagesdir[:imagesdir: ../images]

[[section-design-decisions]]
== Decisiones de Arquitectura 🗣️
Los enlaces proporcionan las decisiones de aquitectura via GitHub.
Los enlaces proporcionan las decisiones de arquitectura via GitHub.

* https://github.com/Arquisoft/wiq_es04c/wiki/ADR-1-‐-Diseño-de-BD-para-Generación-de-Preguntas[ADR 01] ‐ Diseño de BD para Generación de Preguntas
4 changes: 2 additions & 2 deletions webapp/src/App.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState } from 'react';
import AddUser from './components/AddUser';
import Login from './components/Login';
import AddUser from './components/adduser/AddUser';
import Login from './components/login/Login';
import CssBaseline from '@mui/material/CssBaseline';
import Container from '@mui/material/Container';
import Typography from '@mui/material/Typography';
Expand Down
12 changes: 7 additions & 5 deletions webapp/src/App.test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { render, screen } from '@testing-library/react';
import React from 'react';
import { render, screen, fireEvent } from '@testing-library/react';
import App from './App';

test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/WIQ_ES04C/i);
expect(linkElement).toBeInTheDocument();
describe('App Component', () => {
test('renders App component', () => {
render(<App />);
expect(screen.getByText(/Welcome to the 2024 edition of the Software Architecture course/i)).toBeInTheDocument();
});
});
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import '../styles/Footer.css'; // Asegúrate de importar tu archivo de estilos si es necesario
import './Footer.css'; // Asegúrate de importar tu archivo de estilos si es necesario

const Footer = () => (
<footer className="footer">
Expand Down
27 changes: 27 additions & 0 deletions webapp/src/components/footer/Footer.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import Footer from './Footer';

describe('Footer Component', () => {
test('renders footer with correct content and links', () => {
// Renderizar el componente
render(<Footer />);

// Verificar que el texto "Trabajo de Arquitectura del Software" esté presente
expect(screen.getByText('Trabajo de Arquitectura del Software')).toBeInTheDocument();

// Verificar que el enlace al Github del Proyecto esté presente con el atributo target="_blank"
const githubLink = screen.getByRole('link', { name: /Github del Proyecto/i });
expect(githubLink).toBeInTheDocument();
expect(githubLink).toHaveAttribute('href', 'https://github.com/Arquisoft/wiq_es04c');
expect(githubLink).toHaveAttribute('target', '_blank');
expect(githubLink).toHaveAttribute('rel', 'noopener noreferrer');

// Verificar que el enlace a la Escuela de Ingeniería Informática esté presente con el atributo target="_blank"
const schoolLink = screen.getByRole('link', { name: /Escuela de Ingeniería Informática/i });
expect(schoolLink).toBeInTheDocument();
expect(schoolLink).toHaveAttribute('href', 'https://ingenieriainformatica.uniovi.es');
expect(schoolLink).toHaveAttribute('target', '_blank');
expect(schoolLink).toHaveAttribute('rel', 'noopener noreferrer');
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import React, { useState } from 'react';
import axios from 'axios';
import { Container, Typography, TextField, Button, Snackbar } from '@mui/material';
import Game from './game/Game.js';
import Game from '../game/Game.js';

const Login = () => {
const [username, setUsername] = useState('');
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// En /src/components/Navbar.js
import React from 'react';
import '../styles/Navbar.css'; // Importa tu archivo de estilos si es necesario
import './Navbar.css'; // Importa tu archivo de estilos si es necesario

const Navbar = () => (
<nav className="navbar navbar-expand-lg navbar-dark bg-primary fixed-top">
Expand Down
33 changes: 33 additions & 0 deletions webapp/src/components/navbar/NavBar.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import Navbar from './Navbar';

describe('Navbar Component', () => {
test('renders Navbar with correct content and links', () => {
// Renderizar el componente
render(<Navbar />);

// Verificar que el logo esté presente
const logo = screen.getByAltText('Logo');
expect(logo).toBeInTheDocument();
expect(logo).toHaveAttribute('src', '/LogoSaberYganar.png');

// Verificar que los enlaces de registro e inicio de sesión estén presentes con los íconos correctos
const registerLink = screen.getByRole('link', { name: /Registrarse/i });
expect(registerLink).toBeInTheDocument();
expect(registerLink).toHaveAttribute('href', '/signup');

const loginLink = screen.getByRole('link', { name: /Iniciar sesión/i });
expect(loginLink).toBeInTheDocument();
expect(loginLink).toHaveAttribute('href', '/login');

// Verificar que los íconos estén presentes en los enlaces
const registerIcon = screen.getByRole('link', { name: /Registrarse/i }).querySelector('i');
expect(registerIcon).toBeInTheDocument();
expect(registerIcon).toHaveClass('fas fa-sign-in-alt');

const loginIcon = screen.getByRole('link', { name: /Iniciar sesión/i }).querySelector('i');
expect(loginIcon).toBeInTheDocument();
expect(loginIcon).toHaveClass('fas fa-sign-in-alt');
});
});
File renamed without changes.

0 comments on commit fc73c0d

Please sign in to comment.