Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DincaAlex/unilink/llms.txt

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

Two endpoints manage internship applications for the single registered student (studentId = 1). You can retrieve the full list of the student’s applications, or submit a new one by providing a jobId. The server handles duplicate submissions gracefully — applying to the same job a second time returns the already-existing record rather than creating a duplicate entry.

GET /api/applications

Returns all application records where studentId = 1. This endpoint accepts no query parameters or request body.

Response

A JSON array of application objects.
id
number
Auto-incremented primary key for the application record.
studentId
number
Always 1 in this prototype — the single registered student.
jobId
number
The ID of the job listing the student applied to.
status
string
Current application status. Possible values: en_revision, entrevista, rechazado, aceptado.
appliedDate
string
The date the application was submitted, in YYYY-MM-DD format.

Example request

curl http://localhost:3001/api/applications

Example response

[
  {
    "id": 1,
    "studentId": 1,
    "jobId": 2,
    "status": "en_revision",
    "appliedDate": "2025-06-01"
  }
]

POST /api/applications

Submits a new internship application for the student. If the student has already applied to the specified job, the server returns the existing application record with HTTP 200 instead of creating a duplicate.

Request body

jobId
number
required
The ID of the job listing to apply to. Must correspond to an existing job in the database.

Response

Example request

curl -X POST http://localhost:3001/api/applications \
  -H "Content-Type: application/json" \
  -d '{"jobId": 4}'
The initial status of every new application is always en_revision. Transitioning to entrevista, rechazado, or aceptado would require a PUT /api/applications/:id endpoint — this is not yet implemented in the current prototype. Status changes must be made directly in the SQLite database for now.

Build docs developers (and LLMs) love