Índice

Análisis


@startuml
start
  :Usuario selecciona "Crear Curso";
    :Sistema muestra formulario de creación de curso;
    :Usuario ingresa información del curso;
    if (Datos válidos) then (Sí)
      :Sistema sube la imagen de portada a firebase storage;
      :Sistema crea un curso con el link de la imagen del curso;
      :Sistema muestra mensaje "Curso creado con éxito";
    else (No)
      :Sistema muestra mensaje de error "Datos inválidos: (Datos que no se han agregado)";
    endif
  :Usuario cierra la ventana de creación de curso;
stop
@enduml

Untitled

T-REQ20 | Casos de prueba de modificación de curso

Untitled

Untitled

Untitled

Diseño


@startuml Modificar curso
database "Mongo DB" {
  folder "Courses" {
    [courses]
  }
}

node "Backend" {
  folder "models" {
    [course.model.js]
  }
  folder "controllers" {
    [course.controller.js]
    [files.controller.js]
  }
  folder "routes" {
    [course.routes.js]
  }
  folder "Backend utils" {
    [apiFeatures.js]
    [catchAsync.js]
  }
  [App.js]
}

node "Frontend" {
  folder "screens" {
    folder "screens" {
      [CreateOrUpdateCourse.js]
    }
  }
  folder "components" {
    folder "inputs" {
      [TextInput.js]
      [NumberInput.js]
      [FileInput.js]
    }
    folder "cards" {
      [CourseCard.js]
    }
    folder "buttons" {
      [BaseButton.js]
    }
  }
  folder "client" {
    folder "Course" {
      [Course.POST.js]
      [Course.PATCH.js]
    }
  }
  folder "utils" {
    [alertHandler.js]
  }
}

[CreateOrUpdateCourse.js] --> [Course.POST.js]
[CreateOrUpdateCourse.js] --> [Course.PATCH.js]
[CreateOrUpdateCourse.js] --> [BaseButton.js]
[CreateOrUpdateCourse.js] --> [TextInput.js]
[CreateOrUpdateCourse.js] --> [FileInput.js]
[CreateOrUpdateCourse.js] --> [CourseCard.js]
[CreateOrUpdateCourse.js] --> [NumberInput.js]
[CreateOrUpdateCourse.js] --> [alertHandler.js]
[Course.POST.js] --> [course.routes.js]
[Course.PATCH.js] --> [course.routes.js]
[course.routes.js] --> [course.controller.js]
[course.routes.js] --> [files.controller.js]
[course.controller.js] --> [apiFeatures.js]
[course.controller.js] --> [catchAsync.js]
[course.controller.js] --> [course.model.js]
[course.model.js] --> [Mongo DB]
@enduml

Untitled

Untitled