Skip to main content

Quick Start

This guide will walk you through setting up the Sistema de Seguimiento de Solicitudes and creating your first transparency request in under 10 minutes.
Before you begin, ensure you have completed the Installation process. You should have both the API and frontend applications running.

Prerequisites Check

Verify you have:
  • ✅ .NET 9.0 SDK installed
  • ✅ SQL Server running
  • ✅ Database imported and configured
  • ✅ API running on https://localhost:7123
  • ✅ Frontend running on https://localhost:7125

Step 1: First Login

1

Access the Application

Open your browser and navigate to the frontend application:
https://localhost:7125
You should see the login page.
2

Create Your First User

Since this is a fresh installation, you’ll need to create an admin user. Use the API endpoint or SQL Server Management Studio to create an initial user.
curl -X POST https://localhost:7123/api/Auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "nombreUsuario": "admin",
    "password": "Admin123!",
    "rol": "Administrador"
  }'
3

Login to the System

Enter your credentials on the login page:
  • Username: admin
  • Password: Admin123!
The system will authenticate you and generate a JWT token valid for 2 hours.

Step 2: Understanding the Dashboard

After login, you’ll see the main dashboard with several modules:

Inicio de Solicitudes

Create new transparency requests and view recent submissions

Historial de Solicitudes

View and search all historical requests

Índice de Expedientes

Browse all case files with advanced filtering

Calendario

View deadlines and manage working days

Step 3: Create Your First Request

1

Navigate to Request Creation

Click on “Inicio de Solicitudes” in the main menu to access the request creation form.
2

Fill in Basic Information

Complete the essential request details:Required Fields:
{
  folio: "001/2026",                    // Case number
  mesAdmision: "Marzo",                 // Admission month
  tipoSolicitud: "Acceso a Información", // Request type
  tipoDerecho: "Acceso",                // Right type
  nombreSolicitante: "Juan Pérez",      // Requester name
  fechaInicio: "2026-03-11"             // Start date
}
The system will automatically calculate deadlines based on the start date and calendar configuration.
3

Specify Request Details

Add detailed information about the request:Request Content:
  • Contenido de la Solicitud: Describe what information is being requested
  • Área Poseedora: Specify which department holds the information
  • Materia: Subject matter category
  • Temática: Specific topic
Example:
Contenido: "Solicito información sobre el presupuesto asignado 
al departamento de obras públicas en el ejercicio fiscal 2025."

Área Poseedora: "Departamento de Finanzas"
Materia: "Presupuesto y Gasto Público"
Temática: "Asignación Presupuestal"
4

Configure Response Method

Select how the requester wants to receive the response:
  • Correo Electrónico: Email delivery
  • Plataforma Nacional: National platform
  • Oficina: In-person pickup
  • Portal de Transparencia: Transparency portal
If email is selected, provide the requester’s email:
correoElectronicoSolicitante: "[email protected]"
5

Save the Request

Click the “Guardar” button to create the request. The system will:
  • Validate all required fields
  • Calculate automatic deadlines:
    • Initial response deadline (10 business days)
    • Extended deadline if applicable (20 business days)
    • Prevention notice deadline (10 business days)
  • Assign a unique ID
  • Add the request to the calendar
You’ll see a success confirmation:
{
  "exito": true,
  "mensaje": "Expediente creado con éxito",
  "data": {
    "id": 1,
    "folio": "001/2026"
  }
}

Step 4: Track Your Request

1

View in Request History

Navigate to “Historial de Solicitudes” to see your newly created request in the list.The table displays:
  • Folio number
  • Request type
  • Requester name
  • Start date
  • Response deadline
  • Current status
2

Access Request Details

Click on any request to view its complete details, including:
  • Full request information
  • Timeline of events
  • Deadline calculations
  • Response status
  • Attached documents
3

Check Calendar

Go to “Calendario” to see the request deadline visualized on the calendar.The calendar shows:
  • 🟢 Request start dates
  • 🔴 Response deadlines
  • 🟡 Prevention notice deadlines
  • ⚪ Non-working days

Step 5: Process the Request

1

Update Request Status

As the request progresses, update its status:
// Available statuses
const estados = [
  "En proceso",
  "Pendiente",
  "Respondida",
  "Desechada",
  "Prevención"
];
2

Add Prevention Notice (Optional)

If additional information is needed from the requester:
  1. Set Prevención to true
  2. Update SubsanaPrevencionReinicoTramite status
  3. System automatically calculates new deadline (10 business days)
Prevention notices pause the original deadline timer until the requester provides the requested information.
3

Record Response

When responding to the request:
{
  estado: "Respondida",
  fechaRespuesta: "2026-03-18",
  sentidoRespuesta: "Entrega de información",
  modalidadEntrega: "Correo electrónico",
  cobro: "Sin costo"
}
The system automatically calculates:
  • PromedioDiasRespuesta: Average response time in business days
4

Handle Extensions (Ampliaciones)

If more time is needed:
  1. Set Ampliacion field to the extension type
  2. Enter NumeroSesionComiteAmpliacion: Committee session number
  3. Set FechaSesionComiteAmpliacion: Committee session date
  4. System updates FechaLimiteRespuesta20dias: Extended deadline (20 days)
Example:
{
  ampliacion: "Aprobada",
  numeroSesionComiteAmpliacion: 5,
  fechaSesionComiteAmpliacion: "2026-03-15",
  fechaLimiteRespuesta20dias: "2026-04-08" // Auto-calculated
}

Step 6: Working with the API

You can also interact with the system programmatically:
const createRequest = async () => {
  const token = localStorage.getItem('authToken');
  
  const response = await fetch('https://localhost:7123/api/ExpedienteDTOes', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`
    },
    body: JSON.stringify({
      folio: "001/2026",
      mesAdmision: "Marzo",
      tipoSolicitud: "Acceso a Información",
      nombreSolicitante: "Juan Pérez",
      fechaInicio: "2026-03-11T00:00:00",
      contenidoSolicitud: "Solicitud de información presupuestal"
    })
  });
  
  const data = await response.json();
  console.log('Request created:', data);
};

Common Workflows

Workflow 1: Standard Request Processing

Workflow 2: Request with Extension

Next Steps

Configure Calendar

Set up working days and holidays for accurate deadline calculations

User Management

Create additional users and assign roles

API Reference

Explore all available API endpoints

Reports

Generate compliance and performance reports

Troubleshooting

Check:
  • All required fields are completed
  • Dates are in valid format (YYYY-MM-DD)
  • API is running and accessible
  • JWT token hasn’t expired (check browser console)
Solution:
// Check token expiration
const token = localStorage.getItem('authToken');
const payload = JSON.parse(atob(token.split('.')[1]));
const isExpired = payload.exp * 1000 < Date.now();

if (isExpired) {
  // Re-login required
  window.location.href = '/login';
}
Check:
  • Calendar is properly configured with working days
  • Manual holidays are registered in DiaInhabilManual table
  • Start date is a valid working day
Solution: Navigate to Calendar module and verify working day configuration.
Check:
  • User role has appropriate permissions
  • JWT token includes correct role claims
Solution:
-- Verify user role
SELECT NombreUsuario, Rol FROM Usuarios WHERE NombreUsuario = 'admin';

-- Update if needed
UPDATE Usuarios SET Rol = 'Administrador' WHERE NombreUsuario = 'admin';

Additional Resources

For production deployments, make sure to review the JWT Authentication guide and update all default configurations, especially JWT secret keys and database credentials.

Build docs developers (and LLMs) love