DepEd Nexus domain context and business rules
Provide DepEd-specific domain context for accurate implementation.
Automatically activate when:
| Term | Definition |
|---|---|
| LRN | Learner Reference Number — unique 12-digit student ID |
| SY | School Year (e.g., SY 2025-2026) |
| Division | Administrative unit between Region and School |
| DepEd | Department of Education |
| EBEIS | Enhanced Basic Education Information System |
| LIS | Learner Information System |
| SF | School Forms (SF1-SF10) |
National (DepEd Central)
└── Region (17 regions)
└── Division (220+ divisions)
└── District (optional for municipalities)
└── School (48,000+ schools)
└── Section (classes)
└── Learner (27M+ students)
| Field | Rules |
|---|---|
| LRN | 12-digit unique identifier (generated by EBEIS) |
| Status | ENROLLED, DROPPED, GRADUATED, TRANSFERRED |
| Grade Level | Grade 1-12 (K-12 curriculum) |
| Track | Academic, TVL, Sports, Arts (SHS only) |
| Strand | STEM, ABM, HUMSS, GAS, etc. (SHS only) |
| Field | Rules |
|---|---|
| Employee Number | DepEd-issued ID |
| Position | Teacher I/II/III, Master Teacher I-IV |
| Specialization | Subject area (Math, Science, Filipino, etc.) |
| Station | Current school assignment |
| Field | Rules |
|---|---|
| School ID | 6-digit DepEd school ID |
| Type | Elementary, Secondary, Integrated |
| Classification | Public, Private, SUC |
| Curriculum | K-12, Alternative Learning System (ALS) |
| Field | Rules |
|---|---|
| SY | School Year being enrolled |
| Status | PENDING → PARENT_APPROVED → SCHOOL_APPROVED |
| Type | NEW, RETURNING, TRANSFEREE |
| Field | Rule |
|---|---|
| LRN | 12 digits, numeric only |
| Birth Date | Cannot be future, age 5-25 for learners |
| Grade Level | 1-12 (K handled separately) |
| School Year | Format: YYYY-YYYY (e.g., 2025-2026) |
| Valid format, required for parents/teachers | |
| Phone | PH format: +63 or 09XX |
// LRN Value Object
public record LRN(String value) {
public LRN {
if (value == null || !value.matches("\\d{12}")) {
throw new IllegalArgumentException("LRN must be 12 digits");
}
}
}
// School Year Value Object
public record SchoolYear(int startYear, int endYear) {
public SchoolYear {
if (endYear != startYear + 1) {
throw new IllegalArgumentException("School year must span 1 year");
}
if (startYear < 2000 || startYear > 2100) {
throw new IllegalArgumentException("Invalid school year range");
}
}
@Override
public String toString() {
return startYear + "-" + endYear;
}
}
// Grade Level
public record GradeLevel(int level) {
public GradeLevel {
if (level < 1 || level > 12) {
throw new IllegalArgumentException("Grade level must be 1-12");
}
}
}
/api/v1/learners # Learner management
/api/v1/teachers # Teacher management
/api/v1/schools # School management
/api/v1/enrollments # Enrollment workflows
/api/v1/attendance # Attendance recording
/api/v1/grades # Grade management
/api/v1/sections # Section/class management
/api/v1/divisions # Division management
/api/v1/regions # Region management
┌─────────────────────────────────────────────────┐
│ │
▼ │
PENDING ──→ PARENT_APPROVED ──→ SCHOOL_APPROVED │
│ │ │ │
└──────────────┴────────────────────┴─→ REJECTED ─┘
NEW ──→ ENROLLED ──→ DROPPED
│ │
▼ │
TRANSFERRED ←───┘
│
▼
GRADUATED