RDS Kids API
API REST para la plataforma educativa RDS Kids. Permite gestionar estudiantes, cursos de Scratch y Roblox, progreso, tareas y entregas.
Autenticación
La API usa Laravel Sanctum con tokens Bearer. Incluye el token en el header de cada petición protegida:
Authorization: Bearer {tu_token}
Autenticación
Registro, login y gestión de sesión
POST
/api/auth/register
Registrar un nuevo estudiante
Body (JSON)
name
*
email
password
password_confirmation
*
Respuesta 200
{ "token": "string", "user": [ "id", "name", "email", "rol", ], }
Ejemplo cURL
-H "Content-Type: application/json" \
-d '{"name": "..."}'
https://rdskids-api.rdsdevs.com/api/auth/register
POST
/api/auth/login
Iniciar sesión y obtener token Sanctum
Body (JSON)
email
password
Respuesta 200
{ "token": "string", "user": [ "id", "name", "email", ], }
Ejemplo cURL
-H "Content-Type: application/json" \
-d '{"email": "..."}'
https://rdskids-api.rdsdevs.com/api/auth/login
POST
/api/auth/logout
auth
Cerrar sesión y revocar token
Respuesta 200
{ "message": "string", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/auth/logout
POST
/api/auth/forgot-password
Enviar correo de recuperación
Body (JSON)
email
Respuesta 200
{ "message": "string", }
Ejemplo cURL
-H "Content-Type: application/json" \
-d '{"email": "..."}'
https://rdskids-api.rdsdevs.com/api/auth/forgot-password
POST
/api/auth/reset-password
Resetear contraseña con token
Body (JSON)
email
password
token
Respuesta 200
{ "message": "string", }
Ejemplo cURL
-H "Content-Type: application/json" \
-d '{"email": "..."}'
https://rdskids-api.rdsdevs.com/api/auth/reset-password
Perfil del Estudiante
Datos personales, estadísticas y logros
GET
/api/estudiante/perfil
auth
Obtener nombre, nivel, racha y puntos del estudiante autenticado
Respuesta 200
{ "id": "int", "name": "string", "email": "string", "perfil": [ "nivel_actual", "puntos_totales", "racha_dias", "progreso_general", ], }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/estudiante/perfil
PUT
/api/estudiante/perfil
auth
Actualizar datos personales del estudiante
Body (JSON)
name
email
Respuesta 200
{ "id": "int", "name": "string", "email": "string", "perfil": "object", }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name": "..."}'
https://rdskids-api.rdsdevs.com/api/estudiante/perfil
GET
/api/estudiante/estadisticas
auth
Progreso general, clases completadas y puntos
Respuesta 200
{ "progreso_general": "int", "clases_completadas": "int", "puntos_totales": "int", "racha_dias": "int", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/estudiante/estadisticas
GET
/api/estudiante/logros
auth
Lista de badges y logros obtenidos
Respuesta 200
[ { "id": "int", "titulo": "string", "descripcion": "string", "fecha_obtenido": "datetime", }, ]
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/estudiante/logros
Cursos y Niveles
Cursos de Scratch y Roblox con sus niveles y clases
GET
/api/cursos
auth
Lista todos los cursos activos (Scratch y Roblox) con sus niveles
Respuesta 200
[ { "id": "int", "titulo": "string", "tecnologia": "scratch|roblox", "niveles": "array", }, ]
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/cursos
GET
/api/cursos/{id}/niveles
auth
Niveles de un curso con progreso del estudiante autenticado
Respuesta 200
[ { "id": "int", "nombre": "string", "clases_completadas": "int", "progreso_porcentaje": "int", }, ]
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/cursos/{id}/niveles
GET
/api/niveles/{id}/clases
auth
Clases de un nivel con estado (completada/en_progreso/bloqueada)
Respuesta 200
{ "nivel": "object", "clases": [ { "id": "int", "titulo": "string", "tipo": "video|taller|proyecto", "estado": "string", "puntos": "int", }, ], }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/niveles/{id}/clases
Progreso
Seguimiento del avance del estudiante
GET
/api/progreso
auth
Progreso general del estudiante (total de clases completadas)
Respuesta 200
{ "clases_completadas": "int", "clases_total": "int", "porcentaje": "int", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/progreso
GET
/api/progreso/nivel/{id}
auth
Progreso detallado en un nivel específico
Respuesta 200
{ "nivel": "string", "clases_completadas": "int", "clases_total": "int", "porcentaje": "int", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/progreso/nivel/{id}
PUT
/api/progreso/clase/{id}
auth
Marcar una clase como completada y sumar puntos al estudiante
Respuesta 200
{ "message": "string", "progreso": { "estado": "completada", "puntos_obtenidos": "int", }, }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/progreso/clase/{id}
Tareas y Entregas
Gestión de asignaciones y subida de archivos
GET
/api/tareas
auth
Lista todas las tareas del estudiante (pendientes y entregadas)
Respuesta 200
[ { "id": "int", "titulo": "string", "curso": "string", "fecha_entrega": "datetime", "estado": "pendiente|entregado|revisado", "calificacion": "float|null", }, ]
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/tareas
GET
/api/tareas/{id}
auth
Detalle completo de una tarea con instrucciones y datos del profesor
Respuesta 200
{ "id": "int", "titulo": "string", "descripcion": "string", "instrucciones": "string", "fecha_entrega": "datetime", "profesor": "object", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/tareas/{id}
POST
/api/entregas
auth
Subir archivo de entrega — multipart/form-data, máx. 10MB
Body (JSON)
tarea_id
*
archivo
*
Respuesta 200
{ "id": "int", "estado": "entregado", "fecha_entrega": "datetime", }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"tarea_id": "..."}'
https://rdskids-api.rdsdevs.com/api/entregas
GET
/api/entregas/{id}
auth
Ver calificación y comentarios del profesor sobre la entrega
Respuesta 200
{ "id": "int", "estado": "string", "calificacion": "float", "comentario_profesor": "string", "fecha_revision": "datetime", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/entregas/{id}
Pre-inscripción
Formulario de registro de interés — endpoint público
POST
/api/preinscripcion
Registrar interés en los cursos antes de la inscripción formal
Body (JSON)
nombre
*
email
*
telefono
edad_nino
curso_interes
mensaje
Respuesta 200
{ "message": "string", "data": { "id": "int", "nombre": "string", "email": "string", "estado": "pendiente", }, }
Ejemplo cURL
-H "Content-Type: application/json" \
-d '{"nombre": "..."}'
https://rdskids-api.rdsdevs.com/api/preinscripcion
Tablas MySQL
Estructura de la base de datos
users
Autenticación y roles de usuario (estudiante, profesor, admin)
estudiantes
Perfil extendido: nivel, puntos, racha, progreso general
cursos
Cursos disponibles: Scratch y Roblox
niveles
Niveles por curso (Básico, Intermedio, Avanzado)
clases
Sesiones individuales dentro de cada nivel
progreso_clases
Estado de cada clase por estudiante (completada / bloqueada)
tareas
Asignaciones creadas por los profesores
entregas
Archivos enviados por estudiantes con calificación
logros
Badges disponibles y criterios para obtenerlos
usuario_logros
Relación muchos a muchos entre users y logros
preinscripciones
Formularios de interés previos a la inscripción formal
Comandos útiles
Admin
Gestión completa de la plataforma — requiere rol admin
/api/admin/* requieren autenticación con token Sanctum
y que el usuario autenticado tenga el rol admin. Responden 403 si el rol no coincide.
GET
/api/admin/dashboard
auth
Estadísticas globales: total de usuarios, estudiantes, pre-inscripciones pendientes, entregas sin calificar y distribución por rol.
Respuesta 200
{ "usuarios": 12, "estudiantes": 10, "preinscripciones_pendientes": 3, "entregas_pendientes": 5, "usuarios_por_rol": { "estudiante": 10, "admin": 1, "profesor": 1, }, }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/dashboard
GET
/api/admin/usuarios
auth
Lista todos los usuarios con su perfil de estudiante.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/usuarios
GET
/api/admin/usuarios/{id}
auth
Detalle de un usuario con logros obtenidos.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/usuarios/{id}
POST
/api/admin/usuarios
auth
Crea un nuevo usuario con cualquier rol.
Body (JSON)
name
*
email
*
password
*
rol
*
Respuesta 200
{ "id": 3, "name": "Nombre", "email": "correo@ejemplo.com", "rol": "profesor", }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/usuarios
PUT
/api/admin/usuarios/{id}
auth
Actualiza datos de un usuario. Todos los campos son opcionales.
Body (JSON)
name
email
password
rol
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/usuarios/{id}
DELETE
/api/admin/usuarios/{id}
auth
Elimina un usuario permanentemente.
Respuesta 200
{ "message": "Usuario eliminado correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/usuarios/{id}
GET
/api/admin/cursos
auth
Lista todos los cursos con conteo de niveles.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/cursos
POST
/api/admin/cursos
auth
Crea un nuevo curso.
Body (JSON)
nombre
*
descripcion
*
imagen
activo
Respuesta 200
{ "id": 3, "nombre": "Python", "descripcion": "Introducción a Python", "activo": true, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"nombre": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/cursos
PUT
/api/admin/cursos/{id}
auth
Actualiza un curso existente.
Body (JSON)
nombre
descripcion
imagen
activo
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"nombre": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/cursos/{id}
DELETE
/api/admin/cursos/{id}
auth
Elimina un curso.
Respuesta 200
{ "message": "Curso eliminado correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/cursos/{id}
GET
/api/admin/niveles
auth
Lista todos los niveles con su curso y conteo de clases.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/niveles
POST
/api/admin/niveles
auth
Crea un nuevo nivel dentro de un curso.
Body (JSON)
curso_id
*
nombre
*
descripcion
orden
*
activo
Respuesta 200
{ "id": 4, "curso_id": 1, "nombre": "Nivel 3", "orden": 3, "activo": true, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"curso_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/niveles
PUT
/api/admin/niveles/{id}
auth
Actualiza un nivel.
Body (JSON)
curso_id
nombre
descripcion
orden
activo
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"curso_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/niveles/{id}
DELETE
/api/admin/niveles/{id}
auth
Elimina un nivel.
Respuesta 200
{ "message": "Nivel eliminado correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/niveles/{id}
GET
/api/admin/clases
auth
Lista todas las clases con su nivel y curso.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/clases
POST
/api/admin/clases
auth
Crea una nueva clase dentro de un nivel.
Body (JSON)
nivel_id
*
titulo
*
descripcion
contenido
video_url
orden
*
activo
Respuesta 200
{ "id": 10, "nivel_id": 2, "titulo": "Variables en Scratch", "orden": 1, "activo": true, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"nivel_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/clases
PUT
/api/admin/clases/{id}
auth
Actualiza una clase.
Body (JSON)
nivel_id
titulo
descripcion
contenido
video_url
orden
activo
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"nivel_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/clases/{id}
DELETE
/api/admin/clases/{id}
auth
Elimina una clase.
Respuesta 200
{ "message": "Clase eliminada correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/clases/{id}
GET
/api/admin/tareas
auth
Lista todas las tareas con conteo de entregas.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/tareas
POST
/api/admin/tareas
auth
Crea una nueva tarea asignada a una clase.
Body (JSON)
clase_id
*
titulo
*
descripcion
*
fecha_limite
puntos
Respuesta 200
{ "id": 5, "clase_id": 3, "titulo": "Proyecto final", "puntos": 100, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"clase_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/tareas
PUT
/api/admin/tareas/{id}
auth
Actualiza una tarea.
Body (JSON)
clase_id
titulo
descripcion
fecha_limite
puntos
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"clase_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/tareas/{id}
DELETE
/api/admin/tareas/{id}
auth
Elimina una tarea.
Respuesta 200
{ "message": "Tarea eliminada correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/tareas/{id}
GET
/api/admin/entregas
auth
Lista todas las entregas de todos los estudiantes.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/entregas
GET
/api/admin/entregas/{id}
auth
Detalle de una entrega con datos del estudiante y la tarea.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/entregas/{id}
PUT
/api/admin/entregas/{id}/calificar
auth
Califica una entrega asignando puntuación y comentarios.
Body (JSON)
calificacion
*
comentarios
Respuesta 200
{ "message": "Entrega calificada correctamente.", "entrega": { "id": 1, "calificacion": 90, "comentarios": "Excelente trabajo", }, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"calificacion": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/entregas/{id}/calificar
GET
/api/admin/logros
auth
Lista todos los logros con conteo de usuarios que los tienen.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/logros
POST
/api/admin/logros
auth
Crea un nuevo logro.
Body (JSON)
nombre
*
descripcion
*
icono
puntos
Respuesta 200
{ "id": 4, "nombre": "Maestro Scratch", "puntos": 50, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"nombre": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/logros
PUT
/api/admin/logros/{id}
auth
Actualiza un logro.
Body (JSON)
nombre
descripcion
icono
puntos
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"nombre": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/logros/{id}
DELETE
/api/admin/logros/{id}
auth
Elimina un logro.
Respuesta 200
{ "message": "Logro eliminado correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/logros/{id}
POST
/api/admin/logros/{id}/asignar
auth
Asigna manualmente un logro a un usuario.
Body (JSON)
user_id
*
Respuesta 200
{ "message": "Logro asignado correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"user_id": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/logros/{id}/asignar
GET
/api/admin/preinscripciones
auth
Lista todas las pre-inscripciones. Filtra por estado con ?estado=pendiente|aprobado|rechazado.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/preinscripciones
GET
/api/admin/preinscripciones/{id}
auth
Detalle de una pre-inscripción.
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/preinscripciones/{id}
PUT
/api/admin/preinscripciones/{id}/estado
auth
Actualiza el estado de una pre-inscripción.
Body (JSON)
estado
*
notas
Respuesta 200
{ "message": "Estado actualizado correctamente.", "preinscripcion": { "id": 1, "estado": "aprobado", }, }
Ejemplo cURL
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"estado": "..."}'
https://rdskids-api.rdsdevs.com/api/admin/preinscripciones/{id}/estado
DELETE
/api/admin/preinscripciones/{id}
auth
Elimina una pre-inscripción.
Respuesta 200
{ "message": "Pre-inscripción eliminada correctamente.", }
Ejemplo cURL
-H "Authorization: Bearer {token}"
https://rdskids-api.rdsdevs.com/api/admin/preinscripciones/{id}