Skip to main content
The admin dashboard provides platform administrators with complete control over virtual classes, user management, support tickets, and system configuration.

Accessing the Admin Dashboard

The admin dashboard is available at /admin and is restricted to authorized administrators only.

Authentication Requirements

Admin access is controlled through environment-based authentication:
ADMIN_EMAIL
string
required
Email address of the platform administrator. Only users with this email can access admin features.
Implementation: src/auth.ts:73-76
if (profile.email === process.env.ADMIN_EMAIL! && account.refresh_token) {
  token.refreshToken = account.refresh_token
  await updateRefreshTokenInDb(user.id, token.refreshToken as string)
}
Only one admin email is supported by default. All admin features check for exact email match against ADMIN_EMAIL environment variable.

Dashboard Features

The admin dashboard provides access to:

1. Class Management

View and manage all virtual classes across the platform with filtering capabilities:
  • All classes - Complete list of scheduled, completed, and cancelled classes
  • Scheduled - Upcoming and active classes
  • Completed - Historical class data

2. Activity Assignment

Create and assign AI-generated activities, exams, and learning materials to virtual classes.

3. User Management

View user data, manage permissions, and track student progress through the platform.

4. Support Tickets

Handle user support requests through an integrated ticket system with real-time messaging.

5. System Configuration

Access to platform settings including:
  • Payment integration configuration
  • Google Calendar setup
  • Authentication settings

Dashboard Interface

Class Filtering

The dashboard provides query parameter-based filtering:
  • ?status=scheduled - View only scheduled classes
  • ?status=completed - View only completed classes
  • Default (no param) - View all classes
Implementation: src/app/(dashboard)/admin/page.tsx:42-46

Class Information Display

Each class entry shows:
FieldDescription
DiaClass date
HorarioStart and end time (24-hour format)
TipoClass type (individual/grupal) with participant count
RolAdministrator role indicator
EstadoStatus (Reservada/Completada/Cancelada)
CodigoAccess code for joining the class
MeetingGoogle Meet link access
Tarea IAActivity assignment status (Pendiente/Enviada)

Admin-Specific Features

Google Calendar Integration

Admins have special Google Calendar permissions:
  • Refresh token storage for persistent calendar access
  • OAuth2 scopes include https://www.googleapis.com/auth/calendar.events
  • Automatic event creation for paid classes

Database Access

Admins can access all database models through server actions:
  • VirtualClass - All virtual class records
  • User - User profiles and activity
  • Task - Learning activities and assignments
  • UserActivity - Student progress tracking
  • PaymentMercadoPago - Payment records
  • SupportTicket - Support ticket system

Security Considerations

Admin routes include email verification on every page load:
const isAdmin = session?.user.email === process.env.ADMIN_EMAIL!
if (!isAdmin) {
  return <MaxWidthWrapper>
    <h1>No tienes los permisos necesarios para acceder a esta ruta</h1>
  </MaxWidthWrapper>
}
  • /admin - Main dashboard with class list
  • /admin/actividad/[classId] - Activity assignment for specific class

Class Management

Manage virtual classes, activities, and assignments

User Management

Handle user accounts, roles, and permissions

Support Tickets

Respond to user support requests

Setup & Configuration

Configure platform settings and integrations

Build docs developers (and LLMs) love