Stack tecnológico para plataforma educativa online
Clase 2 de 25 • Curso de Cursor AI Code Editor
Resumen
Para construir una aplicación web y móvil adecuada como Platziflix, debemos seleccionar cuidadosamente el stack tecnológico según las necesidades y objetivos del proyecto. En este caso concreto, utilizaremos TypeScript, CSS Modules y SaaS para frontend, Swift y Swift UI para nuestra aplicación móvil en iOS, y Kotlin y Jetpack para la app nativa Android. Finalmente, Python con FASTAPI y PostgreSQL serán la base para nuestro backend.
¿Cuál es el stack tecnológico seleccionado para frontend y aplicaciones móviles?
Al no existir restricciones para seleccionar tecnologías, definimos claramente el stack que mejor se adapta a las necesidades del proyecto:
- Frontend: TypeScript, CSS Modules y SaaS para una aplicación web organizada, escalable y fácil de mantener.
- Aplicación móvil:
- iOS: Swift y Swift UI, aprovechando herramientas nativas optimizadas para Apple.
- Android: Kotlin con Jetpack, manteniendo un desarrollo robusto y nativo.
¿Qué stack es ideal para el backend y la base de datos?
Para el backend proponemos:
- Python junto al framework FASTAPI.
- Base de datos PostgreSQL.
Esta combinación ofrece ventajas significativas en cuanto a rendimiento, facilidad de desarrollo y flexibilidad de estructura.
¿Cuáles son las entidades principales y cómo se definen sus contratos JSON?
Es fundamental definir claramente entidades y sus estructuras de datos. Las principales entidades identificadas fueron: curso, clase y profesor.
¿Qué detalles incluir en cada entidad?
- Curso:
- ID numérico autoincremental.
- Nombre, descripción, thumbnail y slug.
- ID vinculado a docentes.
-
Campos de auditoría: creación, edición y eliminación lógica (
deletedat
). -
Clase:
- ID numérico.
- Pertenece a un curso específico (
course ID
). - Nombre, descripción, URL del video, slug.
-
Campos de auditoría similares a los del curso.
-
Profesor:
- ID numérico.
- Nombre y correo electrónico.
- Campos de auditoría, siguiendo el estándar definido en las otras entidades.
¿Qué endpoints son necesarios para la API?
Para un consumo eficiente desde las aplicaciones, definimos un grupo claro de endpoints con respuestas explicadas para cada caso:
¿Cómo listar cursos adecuadamente?
La lista de cursos contiene información esencial:
- ID numérico.
- Nombre del curso.
- Thumbnail.
- Slug único del curso.
- Descripción breve.
¿Qué información requiere el endpoint del detalle del curso?
Al solicitar detalles específicos de un curso, se incluirá:
- ID, nombre completo, descripción detallada.
- Slug del curso.
- Lista de IDs para profesores asociados.
- Listado de clases con información básica: ID, nombre, slug y descripción.
¿Qué retornar en el detalle específico de una clase?
Los datos requeridos en el detalle de una clase son:
- ID numérico y slug único.
- Nombre y descripción clara.
- URL del video.
- Campos de auditoría (
createdat
,updatedat
,deletedat
).
Finalmente, consideramos importante utilizar slugs para las rutas de cursos, mientras que para las clases individuales usaremos IDs, asegurando así el manejo eficiente de información repetida.
Este criterio y planificación inicial es suficiente para establecer una base sólida y arrancar el proceso de desarrollo técnico.