Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Andr21Da16/UNITRU-ACADEMIC/llms.txt

Use this file to discover all available pages before exploring further.

The Profile module displays every piece of personal and academic data that the SUV exposes on its perfil screen. Unitru Academic extracts this information in the same headless-browser session used for grades and attendance — no separate login or extra request is needed. The profile photo is downloaded from the SUV and embedded directly in the response as a base64 data URL, so the frontend renders it without making any external image request.

StudentProfile Fields

@dataclass
class StudentProfile:
    full_name: str
    first_name: str
    last_name: str
    enrollment_number: str
    faculty: str
    school: str
    campus: str
    admission_year: int | None = None
    institutional_email: str | None = None
    personal_email: str | None = None
    phone: str | None = None
    document: str | None = None
    birth_date: str | None = None
    sex: str | None = None
    marital_status: str | None = None
    address: str | None = None
    curriculum: str | None = None
    condition: str | None = None
    # Profile photo as a base64 data URL; rendered directly by the frontend.
    photo_data_url: str | None = None

Full Field Reference

FieldTypeDescription
full_namestringComplete name in the format LAST_NAME FIRST_NAME as stored in the SUV
first_namestringGiven name(s)
last_namestringFamily name(s)
enrollment_numberstringUniversity enrollment code (código de matrícula)
facultystringFaculty the student belongs to (e.g., "Facultad de Ingeniería")
schoolstringSchool or career within the faculty (e.g., "Escuela de Informática")
campusstringCampus location (e.g., "Trujillo")
admission_yearint | nullYear the student was admitted; null if not set in the SUV
institutional_emailstring | nullUniversity-issued email address
personal_emailstring | nullPersonal email registered in the SUV
phonestring | nullMobile or contact phone number
documentstring | nullNational ID (DNI) number
birth_datestring | nullDate of birth as a string in the format returned by the SUV
sexstring | nullSex as recorded by the SUV
marital_statusstring | nullMarital status (e.g., "Soltero/a")
addressstring | nullHome address registered in the SUV
curriculumstring | nullAcademic plan version (e.g., "2018") — the curriculum the student is enrolled under
conditionstring | nullEnrollment status (e.g., "Regular", "Irregular")
photo_data_urlstring | nullProfile photo as a base64-encoded data URL (e.g., "data:image/jpeg;base64,/9j/...")

Profile Photo

The profile photo is fetched from the SUV during the scraping session and immediately converted to a base64 data URL. The frontend renders it with a plain <img> tag:
{profile.photo_data_url ? (
  <img
    src={profile.photo_data_url}
    alt={profile.full_name}
    className="w-40 rounded-lg border border-[#E2E2E2] object-cover"
  />
) : (
  <div className="flex h-48 w-40 items-center justify-center rounded-lg border border-dashed border-[#E2E2E2] text-xs text-[#5E5E5E]">
    Sin foto
  </div>
)}
Because the image is embedded as a data URL, no external image hosting is required and the photo is never persisted anywhere outside the active browser session.

UI Layout

The ProfileCard component (profile_card.tsx) uses a two-column layout:

Left column — Photo & Identity

The profile photo (or a dashed placeholder), the student’s full_name, and a condition pill badge (e.g., Regular in UNT yellow).

Right column — Data grid

A responsive two-column definition list showing every non-null field: DNI, birth date, sex, marital status, address, phone, personal email, institutional email, faculty, school, curriculum, campus, admission year, and condition.
Only fields with a non-null, non-empty value are rendered — missing SUV fields are silently omitted rather than shown as blank rows.

Curriculum vs. Condition

Two fields are often confused:
  • curriculum — the academic plan version under which the student is enrolled (e.g., "2018"). This determines which courses are required for graduation.
  • condition — the current enrollment status (e.g., "Regular" when all requirements are met, "Irregular" when the student has outstanding failed courses or credits).
Both fields are extracted directly from the SUV and displayed as-is.
Several fields — including admission_year, phone, personal_email, document, birth_date, sex, marital_status, address, and curriculum — may be null if the student has not filled them in on the SUV’s profile management page. Unitru Academic cannot display data that the SUV does not provide.

Build docs developers (and LLMs) love