Skip to content

Commit 892632b

Browse files
LucaTvlLucaTvl
andauthored
Fix: Fix document viewer and admin graphics (#199) (#200)
* fix: fixed the document viewer not allowing to show the document. * fix: remove unused course status categories from analytics page * fix: update README for improved structure and clarity --------- Co-authored-by: LucaTvl <lucatrincavell@frro.utn.edu.ar>
1 parent acee823 commit 892632b

3 files changed

Lines changed: 191 additions & 58 deletions

File tree

README.md

Lines changed: 190 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,215 @@
1-
# Proyecto Frontend - UpSkill Courses Website
1+
# UpSkill Frontend
22

3-
## 1. Introducción
3+
## Table of Contents
44

5-
Este espacio contiene todo el código fuente de la interfaz de usuario. El objetivo de este documento es establecer un marco de trabajo claro y organizado que nos permita colaborar de manera eficiente, mantener la calidad del código y agilizar el proceso de desarrollo. A medida que avance el proyecto se añadirán secciones para suplir los requisitos solicitados.
5+
- [English](#english)
6+
- [Español](#español)
7+
- [Documentation](#documentation)
8+
- [Project Structure](#project-structure)
69

710
---
811

9-
## 2. Organización y Flujo de Trabajo (Git Workflow)
12+
<a name="english"></a>
1013

11-
Para mantener el orden y la estabilidad del código, utilizaremos un flujo de trabajo basado en ramas. Este sistema asegura que la rama principal (`main`) siempre contenga una versión estable y lista para producción, mientras que el desarrollo se realiza de forma aislada y segura.
14+
---
1215

13-
### Ramas Principales
16+
## English
1417

15-
Existen dos ramas principales:
18+
### Prerequisites
1619

17-
- `main`: Esta rama es el reflejo fiel del código en **producción**. Nadie debe hacer `push` directamente a esta rama. El código solo llega a `main` a través de Pull Requests desde la rama `develop`, una vez que una versión ha sido probada y está lista para ser lanzada.
18-
- `develop`: Esta es nuestra rama de **integración y desarrollo**. Es la rama principal de trabajo. Todas las nuevas funcionalidades y correcciones se fusionan aquí. Sirve como la base para el trabajo diario y siempre debe contener los últimos cambios aprobados. **Esta es la rama por defecto del repositorio.**
20+
- Node.js (v18 or higher)
21+
- pnpm (v10.9.0 or higher)
22+
- Backend API running on http://localhost:3000
1923

20-
### Flujo de Trabajo Básico
24+
### Environment Setup
2125

22-
El ciclo de vida de cualquier cambio en el código es el siguiente:
26+
1. Clone the repository:
2327

24-
1. **Sincronizar:** Antes de empezar cualquier tarea, asegúrate de tener la última versión de la rama `develop`.
25-
```bash
26-
git checkout develop
27-
git pull origin develop
28-
```
29-
2. **Crear Rama de Soporte:** Crea una nueva rama a partir de `develop` siguiendo la nomenclatura especificada más abajo.
30-
3. **Desarrollar:** Realiza tus cambios, haciendo commits pequeños y descriptivos.
31-
4. **Publicar (`Push`):** Sube tu rama a GitHub.
32-
```bash
33-
git push -u origin nombre-de-tu-rama
34-
```
35-
5. **Pull Request (PR) Automático:** Al hacer `push`, una GitHub Action creará automáticamente un Pull Request dirigido a `develop`.
36-
6. **Revisión de Código:** El resto del equipo revisará el código, dejará comentarios y finalmente lo aprobará. Se requiere al menos **una aprobación** para poder continuar. En general, la Pull Request no deberia ser aprobada por la misma persona que la solicito.
37-
7. **Fusión (`Merge`):** Una vez aprobado, el PR se fusiona en `develop`. Tu trabajo ya es parte de la línea principal de desarrollo.
28+
```bash
29+
git clone https://github.com/upskill-team/Front-End-DSW.git
30+
cd Front-End-DSW
31+
```
3832

39-
---
33+
2. Install dependencies:
34+
35+
```bash
36+
pnpm install
37+
```
38+
39+
3. Create a .env file in the root directory with the following variables:
40+
41+
```env
42+
VITE_API_BASE_URL=http://localhost:3000/api
43+
```
4044

41-
## 3. Nomenclatura de Ramas de Soporte
45+
### Running the Development Server
4246

43-
Para mantener un historial claro y legible, es **obligatorio** nombrar las ramas de soporte utilizando los siguientes prefijos. Esto, además, es necesario para que la automatización de Pull Requests funcione correctamente.
47+
**Development mode:**
4448

45-
| Prefijo de Rama | Propósito | Ejemplo | ¿Cuándo crearla? |
46-
| ----------------------------------- | ------------------------------------------------------------------------------------ | -------------------------------- | -------------------------------------------------------------------------------------------- |
47-
| **`feature/`** | Para desarrollar una **nueva funcionalidad** o una nueva sección del proyecto. | `feature/login-form` | Al iniciar el desarrollo de una nueva característica que no existe en la aplicación. |
48-
| **`bugfix/`** | Para corregir un **error (bug)** que existe en la rama `develop`. | `bugfix/header-alignment-mobile` | Cuando se ha identificado un error en el código existente que necesita ser solucionado. |
49-
| **`hotfix/`** _(Raro - No auto PR)_ | Para corregir un **error crítico en `main` (producción)**. **Se crea desde `main`.** | `hotfix/critical-payment-error` | **SOLO** cuando hay un bug urgente en producción que no puede esperar al próximo ciclo. |
50-
| **`refactor/`** _(Opc.)_ | Para mejorar código existente sin añadir nueva funcionalidad ni corregir un bug. | `refactor/optimize-api-calls` | Cuando se va a reestructurar una parte del código para mejorar su rendimiento o legibilidad. |
49+
```bash
50+
pnpm dev
51+
```
52+
53+
The application will be available at http://localhost:5173
54+
55+
**Build for production:**
56+
57+
```bash
58+
pnpm build
59+
pnpm preview
60+
```
61+
62+
### Running Tests
63+
64+
**Unit and integration tests:**
65+
66+
```bash
67+
pnpm test
68+
```
69+
70+
**E2E tests with Cypress:**
71+
72+
```bash
73+
pnpm cypress:open
74+
```
75+
76+
**Test coverage:**
77+
78+
```bash
79+
pnpm test:coverage
80+
```
81+
82+
### Available Scripts
83+
84+
- pnpm dev - Start development server with hot reload
85+
- pnpm build - Build application for production
86+
- pnpm preview - Preview production build locally
87+
- pnpm lint - Run ESLint
88+
- pnpm test - Run unit and integration tests
89+
- pnpm test:coverage - Run tests with coverage report
90+
- pnpm cypress:open - Open Cypress test runner
91+
- pnpm cypress:run - Run Cypress tests in headless mode
5192

5293
---
5394

54-
## 4. Guía Rápida de Comandos
95+
<a name="español"></a>
96+
97+
## Español
98+
99+
### Requisitos Previos
100+
101+
- Node.js (v18 o superior)
102+
- pnpm (v10.9.0 o superior)
103+
- Backend API ejecutándose en http://localhost:3000
104+
105+
### Configuración del Entorno
106+
107+
1. Clonar el repositorio:
108+
109+
```bash
110+
git clone https://github.com/upskill-team/Front-End-DSW.git
111+
cd Front-End-DSW
112+
```
113+
114+
2. Instalar dependencias:
115+
116+
```bash
117+
pnpm install
118+
```
119+
120+
3. Crear un archivo .env en el directorio raíz con las siguientes variables:
121+
122+
```env
123+
VITE_API_BASE_URL=http://localhost:3000/api
124+
```
125+
126+
### Ejecutar el Servidor de Desarrollo
127+
128+
**Modo desarrollo:**
55129

56130
```bash
57-
# 1. Asegurarse de estar en develop y tener la última versión
58-
git checkout develop
59-
git pull
131+
pnpm dev
132+
```
133+
134+
La aplicación estará disponible en http://localhost:5173
135+
136+
**Compilación para producción:**
137+
138+
```bash
139+
pnpm build
140+
pnpm preview
141+
```
142+
143+
### Ejecutar las Pruebas
144+
145+
**Pruebas unitarias e integración:**
60146

61-
# 2. Crear una nueva rama para una nueva funcionalidad
62-
git checkout -b feature/user-profile
147+
```bash
148+
pnpm test
149+
```
63150

64-
# 3. Trabajar y hacer commits
65-
# ... (haces cambios en el código) ...
66-
git add .
67-
git commit -m "feat: Add basic structure for user profile page"
151+
**Pruebas E2E con Cypress:**
68152

69-
# 4. Subir la rama a GitHub (esto creará el PR automáticamente)
70-
git push -u origin feature/user-profile
153+
```bash
154+
pnpm cypress:open
155+
```
156+
157+
**Cobertura de pruebas:**
158+
159+
```bash
160+
pnpm test:coverage
161+
```
162+
163+
### Scripts Disponibles
164+
165+
- pnpm dev - Iniciar servidor de desarrollo con recarga automática
166+
- pnpm build - Compilar aplicación para producción
167+
- pnpm preview - Vista previa de la compilación de producción
168+
- pnpm lint - Ejecutar ESLint
169+
- pnpm test - Ejecutar pruebas unitarias e integración
170+
- pnpm test:coverage - Ejecutar pruebas con reporte de cobertura
171+
- pnpm cypress:open - Abrir ejecutor de pruebas Cypress
172+
- pnpm cypress:run - Ejecutar pruebas Cypress en modo headless
173+
174+
175+
---
176+
177+
## Documentation
178+
179+
If you want to see the updated documentation you can go to https://upskill-team.github.io/Front-End-DSW/?path=/docs/configure-your-project--docs
180+
181+
Si deseas ver la documentación actualizada puedes ir a https://upskill-team.github.io/Front-End-DSW/?path=/docs/configure-your-project--docs
182+
183+
---
184+
185+
## Project Structure
186+
187+
```
188+
Front-End-DSW/
189+
src/
190+
components/ # Componentes React reutilizables
191+
common/ # Componentes compartidos
192+
landing/ # Componentes de página de inicio
193+
layouts/ # Componentes de estructura
194+
professor/ # Componentes para profesores
195+
student/ # Componentes para estudiantes
196+
admin/ # Componentes para administradores
197+
ui/ # Componentes UI base
198+
pages/ # Páginas de la aplicación
199+
contexts/ # Contextos de React
200+
hooks/ # Hooks personalizados
201+
api/ # Servicios y cliente API
202+
services/ # Servicios específicos de cada dominio
203+
lib/ # Utilidades y funciones auxiliares
204+
types/ # Definiciones de tipos TypeScript
205+
router/ # Configuración de rutas
206+
App.tsx # Componente principal
207+
main.tsx # Punto de entrada
208+
cypress/ # Pruebas E2E
209+
public/ # Archivos estáticos
210+
index.html # HTML principal
211+
vite.config.ts # Configuración de Vite
212+
tsconfig.json # Configuración de TypeScript
213+
tailwind.config.js # Configuración de Tailwind CSS
214+
cypress.config.ts # Configuración de Cypress
71215
```

src/components/ui/DocumentViewer/DocumentViewer.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ const DocumentViewer = ({ url, onClose }: DocumentViewerProps) => {
3333
src={url}
3434
title="Visor de Documento"
3535
className="w-full h-full border-0 rounded-b-lg"
36-
sandbox="allow-scripts allow-forms allow-popups"
3736
referrerPolicy="no-referrer"
3837
/>
3938
</div>

src/pages/Admin/AnalyticsPage.tsx

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,7 @@ export default function AnalyticsPage() {
8181
name: 'En Desarrollo',
8282
value: analytics.courseStats.byStatus['en-desarrollo'],
8383
color: '#f59e0b',
84-
},
85-
{
86-
name: 'Pausados',
87-
value: analytics.courseStats.byStatus.pausado,
88-
color: '#6b7280',
89-
},
90-
{
91-
name: 'Bloqueados',
92-
value: analytics.courseStats.byStatus.bloqueado,
93-
color: '#ef4444',
94-
},
84+
}
9585
];
9686

9787
return (

0 commit comments

Comments
 (0)