Examinations
Entrance
Entrance Candidates APIs
Base URL: http://192.168.100.250/
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /entrance/candidates | List all candidates |
| GET | /entrance/candidates/{candidate} | Get single candidate |
| POST | /entrance/candidates | Create candidate |
| PUT | /entrance/candidates/{candidate} | Update candidate |
| DELETE | /entrance/candidates/{candidate} | Delete candidate |
| POST | /entrance/candidates/{candidate}/exam-details | Update exam details |
| POST | /entrance/candidates/{candidate}/results | Update results |
| POST | /entrance/candidates/{candidate}/admit | Admit candidate |
| GET | /entrance/candidates/{candidate}/data | Get candidate data |
| POST | /entrance/candidates/bulk-status | Bulk update status |
| POST | /entrance/candidates/bulk-delete | Bulk delete candidates |
List
GET /entrance/candidates
Accept: application/jsonFilters & search are client-side DataTables only — no server-side query params. Response includes candidates, faculties, and programs.
View Single
GET /entrance/candidates/{candidate}
Accept: application/jsonResponse includes candidate, faculties, and programs.
Create
POST /entrance/candidates
Content-Type: application/jsonRequest Body:
{
"first_name": "Ram",
"middle_name": null,
"last_name": "Sharma",
"nepali_name": "राम शर्मा",
"mobile_number": "9841234567",
"email": "ram@example.com",
"date_of_birth": "2055-05-15",
"gender": "male",
"marital_status": "unmarried",
"blood_group": "O+",
"handicap_category": null,
"caste_ethnicity": "BRAHMAN",
"edj": null,
"disability_status": 0,
"citizenship_number": "12345",
"national_id": null,
"permanent_province": "3",
"permanent_district": "Chitwan",
"permanent_local_level": "Bharatpur",
"permanent_ward_no": "10",
"permanent_tole": "Sahid Chowk",
"permanent_house_no": "123",
"temporary_province": "3",
"temporary_district": "Chitwan",
"temporary_local_level": "Bharatpur",
"temporary_ward_no": "5",
"temporary_tole": "Pul Chowk",
"temporary_house_no": "456",
"father_name": "Hari Sharma",
"father_contact": "9841234567",
"father_email": "hari@example.com",
"father_occupation": "Business",
"mother_name": "Sita Sharma",
"mother_contact": "9841234567",
"mother_email": "sita@example.com",
"mother_occupation": "Housewife",
"local_guardian_name": "Gopal Sharma",
"local_guardian_mobile": "9841234567",
"local_guardian_relation": "Uncle",
"local_guardian_address": "Chitwan",
"level_id": 1,
"faculty_id": 1,
"program_id": 7,
"application_date": "2081-01-01",
"previous_qualifications": [
{
"level": "SLC/SEE",
"board": "NEB",
"institution_name": "XYZ School",
"institution_type": "public",
"passed_year_ad": 2022,
"passed_year_bs": 2078,
"symbol_number": "12345",
"obtained_marks": 450,
"division": "first",
"percentage": 90.0,
"grade_gpa": "3.6",
"major_subjects": "Science"
}
]
}Update
PUT /entrance/candidates/{candidate}
Content-Type: application/jsonRequest Body: Same shape as Create.
Delete
DELETE /entrance/candidates/{candidate}Update Exam Details
POST /entrance/candidates/{candidate}/exam-details
Content-Type: application/jsonRequest Body:
{
"symbol_number": "ENT001",
"exam_center": "Bharatpur",
"exam_date": "2081-03-15",
"score": 85,
"percentage": 85.5,
"rank": 1
}Update Results
POST /entrance/candidates/{candidate}/results
Content-Type: application/jsonRequest Body:
{
"is_selected": 1,
"selection_date": "2081-04-01"
}Admit Candidate
POST /entrance/candidates/{candidate}/admit
Content-Type: application/jsonRequest Body:
{
"is_admitted": 1,
"admission_date": "2081-05-01"
}Get Candidate Data
GET /entrance/candidates/{candidate}/dataLegacy flat JSON format — includes candidate, faculties, programs, qualifications, profile_photo_url, and citizenship_photo_url.
Bulk Status
POST /entrance/candidates/bulk-status
Content-Type: application/jsonRequest Body:
{
"ids": [1, 2, 3],
"status": "selected"
}Bulk Delete
POST /entrance/candidates/bulk-delete
Content-Type: application/jsonRequest Body:
{
"ids": [1, 2, 3]
}Notes
| Issue | Detail |
|---|---|
create() / edit() | No wantsJson() guard — return HTML only |
| Index filters | Client-side DataTables only, no server-side filter params |
| Index data | Server-rendered HTML table, not a JSON endpoint. React would need a new paginated JSON endpoint |
bulkStatus / bulkDelete / getCandidateData | Legacy response()->json() flat format, not ApiResponse |
| Previous qualifications | Submitted as nested array in create/update |
| Address dropdowns | From static nepal_location.json file |
| Model: 50 fields | ~200 possible form entries with nested qualifications |