Skip to main content

Overview

The Student Photo Registration feature enables administrators to manage student biometric data by registering photos from the SIAD (Academic Information System) into the HikCentral access control platform. This feature supports both individual and bulk registration workflows.
The system supports two student categories:
  • Regular Students: Matriculated students enrolled in academic programs (/estudiantes_pictures)
  • Pre-Students: Applicants or pre-enrolled students in admission process (/estudiantes_pre_pictures)
Both categories follow similar registration workflows with dedicated routes and endpoints.

Individual Registration

Search and Verify Student

The individual registration workflow allows administrators to register students one at a time with full verification capabilities.
1

Select Academic Period

Choose the appropriate academic period from the available options. The system displays:
  • Current active period
  • Previous period
2

Search by ID

Enter the student’s ID number (cedula) in the search field. The system validates numeric input only and searches on Enter key press.
// ID validation - numbers only
onlyNumbers(event) {
  const charCode = event.charCode ? event.charCode : event.keyCode;
  if (charCode < 48 || charCode > 57) {
    event.preventDefault();
  }
}
3

Review Student Information

The system displays comprehensive student details:
  • Full name
  • ID number (cedula)
  • Academic program (carrera)
  • Institutional email
  • Photo from SIAD system
4

Photo Comparison

View side-by-side comparison:
  • SIAD Photo: Current photo in academic system
  • HIKCENTRAL Photo: Photo in biometric system (if registered)
The system automatically calculates facial similarity percentage when both photos exist.

Registration Status

The system displays three possible states:

Not Registered

Student photo has not been sent to HikCentral. Click “Enviar Foto a HIK” to register.

Registered - Low Similarity

Student is registered but facial similarity is below threshold. Click “Actualizar Foto en HIK (Baja Similitud)” to update.

Registered - Validated

Student is registered and photos match with high similarity. No action needed.

Registration Actions

Initial Registration
// Register new student in HikCentral
const response = await API.post(`/biometrico/sync-hikdoc-est-id/${cedula}`, {}, {
  params: { idper: periodoSeleccionado }
});
Update Existing Photo
// Update photo for existing person
const response = await API.post(`/biometrico/sync-hikdoc-update/${cedula}`, {
  personaId: personIdHC
}, {
  params: { idper: periodoSeleccionado }
});
The system automatically validates the registration after sending and calculates facial similarity to ensure successful synchronization.

Bulk Registration

Student List View

The bulk management interface provides a comprehensive table view with filtering and search capabilities. Search and Filter Options:
  • Text Search: Search by ID number or student name with debounced input (900ms delay)
  • Academic Program Filter: Filter students by specific academic program (carrera) or view all
  • Total Count: Displays total number of enrolled students with photos
<input 
  type="text" 
  placeholder="Ingresa la cédula o nombre a buscar..." 
  v-model="searchQuery"
  @input="debouncedFilter"
/>

<select v-model="selectedCarrera" @change="debouncedFilter">
  <option value="Todos">Todas las Carreras</option>
  <option v-for="carrera in carrerasList" :value="carrera.id">
    {{ carrera.nombre }}
  </option>
</select>

Table Columns

The student table displays:
ColumnDescription
EstudianteProfile photo, ID, and full name
CarreraAcademic program name
Foto HIKCENTRALCurrent photo in biometric system
Registrado en HIKCENTRALRegistration status (Yes/No)

Registration Status Indicators

Verification Process

The system automatically verifies registration status for each displayed student:
async verificarRegistrosMasivos() {
  for (let post of items) {
    const res = await API.get(`/biometrico/getperson-est/${post.CIInfPer}`);
    post.estaRegistradoHC = res.data.registrado;
    await new Promise(resolve => setTimeout(resolve, 50));
  }
}

Bulk Synchronization

The mass synchronization feature processes pending registrations automatically.
1

Initiate Bulk Sync

Click “Sincronizar Pendientes (Masivo)” button to start batch processing.
2

Fetch Pending Students

System retrieves all students with photos who are not registered in HikCentral:
const { data } = await API.get('/biometrico/get-pending-sync-est', {
  params: { carrera_name: selectedCarrera }
});
3

Process Queue

Students are processed sequentially with progress tracking:
  • Current student name displayed
  • Progress bar showing completion percentage
  • Individual success/error logging
Progress Indicator:
<div v-if="syncMode" class="mb-4 p-4 border rounded-xl">
  <div class="flex justify-between mb-2">
    <span>Sincronizando: {{ syncIndex }} / {{ pendientes.length }}</span>
    <span>{{ progressSync }}%</span>
  </div>
  <div class="w-full bg-gray-200 rounded-full h-2.5">
    <div class="bg-brand-500 h-2.5 rounded-full" 
         :style="{ width: progressSync + '%' }">
    </div>
  </div>
  <p class="text-xs mt-2 italic">Procesando: {{ currentSyncName }}</p>
</div>
During bulk synchronization, the button is disabled to prevent duplicate processing. A 300ms delay between requests prevents server overload.

Error Handling

Common Response Codes

CodeMeaningAction
0SuccessRegistration completed
128Invalid photo formatPhoto not compatible with HikCentral
131Already registeredStudent already exists in system

Photo Compatibility

Photos must meet HikCentral requirements:
  • JPEG or PNG format
  • Minimum resolution for facial recognition
  • Clear frontal face visible
  • Code 128 indicates the photo doesn’t meet these requirements

Pagination

The student list supports server-side pagination:
nextPage() {
  if (this.currentPage < this.lastPage && !this.cargando) {
    this.getAdministrativosD(
      this.currentPage + 1, 
      this.searchQuery, 
      this.selectedCarrera
    );
  }
}
  • Navigate between pages using Previous/Next buttons
  • Current page and total pages displayed
  • Filters persist across page navigation
  • Automatic reset to page 1 when filters change

Best Practices

Workflow Recommendations

  1. Select correct academic period before individual registration
  2. Review similarity percentage before deciding to update photos
  3. Use bulk sync during off-peak hours to avoid system load
  4. Filter by academic program for targeted mass updates
  5. Verify registration status after bulk operations complete

Build docs developers (and LLMs) love