Metatron_Student_ERP/EDUCATION_MODULES_SUMMARY.md
2026-09-25 18:00:58 +05:30

23 KiB

📚 Complete Technical Documentation of Custom Education Odoo Addons

This document contains a comprehensive, field-level technical summary of all 10 custom education modules built for the Odoo Education & Student Portal ecosystem.


1. 🏛️ education_base (Base Academic Setup & Hierarchy)

Module Overview

The education_base module establishes the core structural hierarchy of the educational institution. It defines campuses, departments, degree programs, academic levels, and academic calendar timelines (years and terms).


Models & Detailed Field Definitions

1.1 education.campus (Campus Master)

  • Functionality: Represents physical or virtual university campuses.
  • Fields:
    • name (Char, Required): The official name of the campus.
    • code (Char, Required): Unique abbreviation code.
    • street / street2 / city / zip / state_id / country_id (Location fields): Physical address details.
    • phone / email (Char): Contact details for campus administration.
    • company_id (Many2one): Associated Odoo res.company.
    • active (Boolean): Soft-delete toggle (default: True).

1.2 education.department (Department Master)

  • Functionality: Academic departments within a campus (e.g., Computer Science, Mechanical).
  • Fields:
    • name (Char, Required): Department name.
    • code (Char, Required): Short code.
    • campus_id (Many2one, Required): Relates to education.campus.
    • head_teacher_id (Many2one): Relates to res.partner (Department Chair / Dean).
    • program_ids (One2many): List of programs offered under this department.
    • company_id (Many2one): Multi-company reference.

1.3 education.program (Academic Program)

  • Functionality: Degree or diploma courses (e.g., MCA, B.Tech, MBA).
  • Fields:
    • name (Char, Required): Program name.
    • code (Char, Required): Program short code.
    • department_id (Many2one, Required): Relates to education.department.
    • level_id (Many2one): Academic level (Undergraduate, Postgraduate).
    • duration (Integer): Number of duration units (e.g., 2).
    • duration_unit (Selection): year, month, or semester.
    • description (Text): Overview of course curriculum.

1.4 education.academic.year (Academic Session)

  • Functionality: Defines full academic years and tracks current active session.
  • Fields:
    • name (Char, Required): Name of the academic year (e.g., "2026 - 2027").
    • code (Char, Required): Unique code.
    • start_date (Date, Required): Start date of session.
    • end_date (Date, Required): End date of session.
    • current_year (Boolean): Indicates if this is the active operational year.
    • state (Selection): draft, active, closed.
    • term_ids (One2many): Semesters/Terms within this year.

1.5 education.academic.term (Academic Semester / Term)

  • Functionality: Sub-divisions of an academic year (e.g., Semester 1, Semester 2).
  • Fields:
    • name (Char, Required): Term name.
    • code (Char, Required): Term code (e.g., "SEM1").
    • academic_year_id (Many2one, Required): Parent education.academic.year.
    • sequence (Integer): Term ordering (1, 2, 3...).
    • start_date / end_date (Date): Start and end dates of term.
    • state (Selection): draft, active, completed.

1.6 education.configuration (Education Configuration)

  • Functionality: Global institution-level settings and defaults.
  • Fields:
    • school_name / school_code (Char, Required): Institution name and code.
    • default_campus_id / default_academic_year_id / default_term_id (Many2one): Default hierarchical selections for the institution.
    • logo (Binary): Institution logo.
    • contact_email / contact_phone (Char): Global contact information.

1.7 education.academic.level (Academic Level)

  • Functionality: Classification of education levels (e.g., Undergraduate, Postgraduate).
  • Fields:
    • name (Char, Required): Level name.
    • code (Char, Required): Level code.
    • sequence (Integer): Ordering priority.
    • description (Text): Additional details about the level.

Record Examples (student_db)

Campus Record:
  ID: 1 | Name: "Main Campus" | Code: "MC" | City: "Thanjavur"

Department Record:
  ID: 1 | Name: "School of Computing" | Code: "SCS" | Campus: "Main Campus"

Program Record:
  ID: 1 | Name: "Master of Computer Applications - Lateral Entry" | Code: "MCA-L" | Duration: 2 Years

Academic Year Record:
  ID: 1 | Name: "2026 - 2027" | Code: "053" | Start: 2026-07-03 | End: 2027-07-03 | Current: True

Academic Term Record:
  ID: 1 | Name: "Semester 1" | Code: "SEM1" | Sequence: 1 | Year: "2026 - 2027"

2. 👨‍🎓 education_student (Student Lifecycle & Profile Management)

Module Overview

Central student registry handling personal profiles, academic placement, guardian information, document attachments, portal user links, and automated financial/attendance computations.


Models & Detailed Field Definitions

2.1 education.student (Student Profile)

  • Personal Details:
    • first_name / middle_name / last_name (Char): Individual name components.
    • full_name (Char, Computed): Concatenated name ("Aadhav S").
    • gender (Selection): male, female, other.
    • date_of_birth (Date): Date of birth.
    • age (Integer, Computed): Calculated age in years.
    • email / phone / mobile (Char): Contact info.
    • image_1920 (Image): Student profile photo.
  • Academic Identification & Placement:
    • admission_number (Char): Auto-generated admission ID ("ADM/2026/001").
    • roll_number (Char): Roll number ("ROLL/0003").
    • registration_number (Char): University registration number.
    • campus_id / department_id / program_id / academic_year_id / academic_term_id (Many2one): Relates student to institutional hierarchy.
    • status (Selection): draft, applied, admitted, enrolled, graduated, withdrawn.
  • Parents & Guardian Information:
    • father_name / father_phone / father_occupation (Char): Father's details.
    • mother_name / mother_phone / mother_occupation (Char): Mother's details.
    • guardian_name / guardian_phone / guardian_email / guardian_address (Char/Text): Guardian details.
  • Document Storage:
    • doc_passport, doc_aadhaar, doc_birth_cert, doc_transfer_cert, doc_community_cert, doc_mark_sheets (Binary & Char): Stores uploaded compliance documents and filenames.
  • Computed Financial Summary:
    • total_fees (Monetary, Computed): Total assigned fees (₹34,000.00).
    • total_paid (Monetary, Computed): Sum of all posted payments (₹34,000.00).
    • outstanding_amount (Monetary, Computed): Total due balance (₹0.00).
    • payment_status (Selection, Computed): no_fees, unpaid, partial, fully_paid.
    • ledger_line_ids (One2many): Inverse relation to education.student.ledger.
  • Computed Attendance Summary:
    • attendance_pct (Float, Computed): Overall attendance percentage (e.g., 92.5).
    • present_count / absent_count / late_count / medical_leave_count (Integer, Computed): Session counts.
  • Portal User Linkage:
    • portal_user_id (Many2one): Relates to Odoo res.users (Portal Account).
    • portal_status (Selection): draft, active, deactivated.

2.2 education.batch (Academic Batch)

  • Functionality: Represents a specific student batch/cohort.
  • Fields:
    • name (Char, Required): Batch name.
    • code (Char, Required): Unique batch code.

2.3 education.semester (Academic Semester)

  • Functionality: Specific academic semesters decoupled from global terms.
  • Fields:
    • name (Char, Required): Semester name.
    • code (Char, Required): Unique semester code.

2.4 education.section (Academic Section)

  • Functionality: Classroom sections or groups for students.
  • Fields:
    • name (Char, Required): Section name.
    • code (Char, Required): Unique section code.

Record Examples (student_db)

Student Record #284:
  Admission No: "ADM/2026/001" | Roll No: "ROLL/0003"
  Name: "Aadhav S" | Email: "aadhav@gmail.com" | Phone: "9876543210"
  Program: "Master of Computer Applications - Lateral Entry"
  Total Fees: ₹34,000.00 | Total Paid: ₹34,000.00 | Outstanding: ₹0.00
  Payment Status: fully_paid
  Attendance %: 92.5% (Present: 37, Absent: 3)
  Portal User: aadhav@gmail.com (Status: Active)

3. 📅 education_attendance (Attendance & Absence Tracking)

Module Overview

Provides session-level attendance recording for students, automated calculation of attendance percentages, and historical session logs.


Models & Detailed Field Definitions

3.1 education.attendance (Student Attendance Record)

  • Fields:
    • student_id (Many2one, Required): Relates to education.student.
    • date (Date, Required): Attendance session date.
    • state (Selection, Required): present, absent, late, medical_leave.
    • remarks (Text): Optional notes or justification for leave.
    • academic_year_id / academic_term_id (Many2one): Timeline reference.
    • company_id (Many2one): Multi-company lock.

3.2 education.attendance.session (Attendance Session)

  • Functionality: Organizes attendance taking by combining date, location, and hierarchy.
  • Fields:
    • name (Char, Required): Session title.
    • campus_id / department_id / program_id / academic_year_id (Many2one, Required): Targeting fields.

3.3 education.attendance.line (Attendance Line Detail)

  • Functionality: Individual student attendance state for a session.
  • Fields:
    • session_id (Many2one, Required): Parent session.
    • student_id (Many2one, Required): Target student.
    • status (Selection): present, absent, late.

Record Examples (student_db)

Attendance Entry #101:
  Student: "Aadhav S"
  Date: 2026-08-10
  State: Present
  Academic Term: Semester 1

Attendance Entry #102:
  Student: "Hareish S"
  Date: 2026-08-10
  State: Absent
  Remarks: "Sick leave - Doctor note submitted"

4. 💳 education_finance (Fees, Payments & Double-Entry Ledger)

Module Overview

Complete financial accounting engine for student fee assessment, payment posting, fee structures, discounts, scholarships, refunds, and real-time double-entry student financial ledgers.


Models & Detailed Field Definitions

4.1 education.fee.category (Fee Head)

  • Fields:
    • name (Char, Required): Name of fee type ("Tuition", "Hostel", "Library").
    • code (Char, Required): Code (TUI, HOS, LIB, EXM, TRN).

4.2 education.fee.structure & education.fee.structure.line (Fee Template)

  • Fields (education.fee.structure):
    • name (Char, Required): Name of structure (e.g., "MCA Semester 1 2026 Regular").
    • program_id / academic_year_id / academic_term_id (Many2one): Applicable target.
    • line_ids (One2many): List of education.fee.structure.line items.
  • Fields (education.fee.structure.line):
    • category_id (Many2one, Required): Relates to education.fee.category.
    • amount (Monetary, Required): Line fee amount.

4.3 education.fee.assignment (Student Fee Assessment)

  • Fields:
    • name (Char): Sequence ("ASSIGN/2026/00001").
    • student_id (Many2one, Required): Target student.
    • fee_structure_id (Many2one): Fee structure applied.
    • total_amount (Monetary): Gross fee amount (₹34,000.00).
    • discount_amount (Monetary): Discount concession applied.
    • net_amount (Monetary): Net due after discounts.
    • amount_paid (Monetary, Computed): Total payments posted against this assignment.
    • state (Selection): draft, assigned, paid, cancelled.

4.4 education.student.payment (Payment Receipt)

  • Fields:
    • name (Char): Sequence number ("PAY/2026/00012").
    • student_id (Many2one, Required): Paying student.
    • fee_assignment_id (Many2one): Associated fee assignment.
    • amount (Monetary, Required): Amount paid (₹34,000.00).
    • payment_date (Date, Required): Date of transaction.
    • payment_method (Selection): cash, bank, online.
    • transaction_id (Char): Payment gateway transaction ref ("pay_Px92kL10z").
    • state (Selection): draft, posted, cancelled.

4.5 education.student.ledger (Double-Entry Financial Ledger)

  • Fields:
    • student_id (Many2one, Required): Target student.
    • date (Date, Required): Transaction date.
    • description (Char, Required): Details (e.g., "Fee Assessment: MCA Sem 1").
    • reference (Char): Document source (ASSIGN/0001 or PAY/0012).
    • debit (Monetary): Increase in student financial liability.
    • credit (Monetary): Decrease in student financial liability (Payment).
    • balance (Monetary, Computed): Cumulative balance due after this entry.

4.6 education.student.discount & education.student.scholarship & education.student.refund

  • Models for concession processing, merit scholarship credits, and fee refund disbursements.

4.7 education.fee.type (Fee Type)

  • Functionality: Granular categorization of fee categories.
  • Fields:
    • name (Char, Required): Fee type name.
    • category_id (Many2one, Required): Parent category.
    • currency_id (Many2one, Required): Currency for fee.

Record Examples (student_db)

Fee Categories:
  - Tuition (Code: TUI)
  - Examination (Code: EXM)
  - Library (Code: LIB)

Fee Structure: "MCA Semester 1 2026 Regular"
  - Line 1: Tuition Fee = ₹30,000.00
  - Line 2: Examination & Library Fee = ₹4,000.00
  Total: ₹34,000.00

Fee Assignment: ASSIGN/2026/00001
  Student: "Aadhav S" | Net Amount: ₹34,000.00 | Amount Paid: ₹34,000.00 | State: Paid

Payment Record: PAY/2026/00012
  Student: "Aadhav S" | Amount: ₹34,000.00 | Method: Online Razorpay | State: Posted

Ledger Statement for Aadhav S:
  1. 2026-07-05 | Fee Assessment: MCA Sem 1  | Debit: ₹34,000.00 | Credit: ₹0.00      | Balance: ₹34,000.00
  2. 2026-07-10 | Payment Received: PAY/0012 | Debit: ₹0.00      | Credit: ₹34,000.00 | Balance: ₹0.00

5. 📊 education_dashboard (Analytics & Management KPIs)

Module Overview

Aggregates metrics across the institution to present real-time key performance indicators (KPIs) for administration.


Models & Detailed Field Definitions

5.1 education.dashboard (Dashboard Helper Model)

  • Fields:
    • total_students (Integer, Computed): Total active enrolled students.
    • total_fees_collected (Monetary, Computed): Cumulative fee revenue.
    • total_outstanding_dues (Monetary, Computed): Aggregate unpaid student balance.
    • average_attendance (Float, Computed): Average student attendance across institution.

Record Examples (student_db)

Dashboard KPI Snapshot:
  Total Students: 3
  Total Fees Collected: ₹102,000.00
  Total Dues Pending: ₹0.00
  Average Campus Attendance: 94.2%

6. 🖥️ education_portal (Student Self-Service Portal & Login)

Module Overview

Delivers the student-facing online portal (/my/education), online Razorpay payment integration, announcement notices, profile updates, and the customized 50/50 split-screen login page (/web/login).


Models & Detailed Overrides

6.1 Custom 50/50 Split-Screen Login Page (web.login & web.login_layout)

  • Left Panel (Branding & Features):
    • Glassmorphism tint over campus background image.
    • Dynamic company logo (/web/image?model=res.company&id=1&field=logo).
    • Generalized Welcome Headers & Institutional Description text.
    • 2x2 Feature Highlights Grid:
      • 🔐 Secure Authentication
      • ⚡ Fast & Reliable Access
      • 📊 Real-Time Information
      • ☁️ Cloud-Based Platform
  • Right Panel (Form & Authentication):
    • Welcome Card with database selector.
    • Input field with icon (Enter your Email).
    • Password input with interactive eye icon toggle.
    • Remember Me & Forgot Password links.
    • Google & Microsoft SSO buttons.
    • Form action URL preserving parameters (t-attf-action="/web/login?#{keep_query('*')}") and hidden db field to ensure CSRF validation never expires.

6.2 education.announcement (Notice Board)

  • Fields:
    • title (Char, Required): Notice title.
    • content (Html, Required): Formatted announcement content.
    • category (Selection): academic, finance, event, general.
    • target_audience (Selection): all, students, staff.
    • date_published (Datetime): Timestamp of publication.

6.3 education.payment.transaction (Payment Transaction)

  • Functionality: Tracks specific payment transactions triggered from the portal.
  • Fields:
    • name (Char, Required): Transaction Reference.

Record Examples (student_db)

Announcement Record #1:
  Title: "Semester 1 Examinations Schedule"
  Category: Academic
  Target Audience: Students
  Published Date: 2026-08-20
  Content: "The end-semester examinations for Semester 1 will commence from December 5th, 2026."

7. 📄 education_reports (QWeb PDF & Excel Analytics)

Module Overview

Generates formal printable PDF documents and analytical export files for identity cards, payment receipts, attendance rosters, and ledgers.


Reports & Wizards

7.1 Student Fee Receipt (report_student_fee_receipt)

  • Printable PDF generated when a payment is posted. Includes transaction reference, student roll number, breakdown of fee items, amount paid, and signature line.

7.2 Student Identity Card (report_student_id_card)

  • Printable student badge with student photo, barcode/QR code, roll number, department, blood group, and emergency contact details.

7.3 education.report.wizard (Custom Report Exporter)

  • Filter wizard allowing administrators to select date ranges, programs, and fee categories to generate custom PDF/Excel reports.

8. 📝 education_exam (Education Examinations)

Module Overview

Complete College Examination Module featuring exam scheduling, grading systems, marks entry, and portal integration for students to view results and schedules.


Models

  • education.exam: Examination
  • education.exam.line: Exam Schedule Line
  • education.exam.type: Examination Type
  • education.exam.result: Exam Result
  • education.exam.result.line: Exam Result Line
  • education.grading.system: Grading System
  • education.grade: Education Grade
  • education.subject: Education Subject

9. 🎓 education_lms (Learning Management System)

Module Overview

Learning Management System Foundation for Education managing courses, sections, lessons, materials, assignments, and student submissions.


Models

  • education.lms.course: LMS Course
  • education.lms.section: LMS Section
  • education.lms.lesson: LMS Lesson
  • education.lms.material: LMS Material
  • education.lms.assignment: LMS Assignment
  • education.lms.submission: LMS Submission

10. ⏰ education_timetable (Academic Timetable)

Module Overview

Native Timetable module integrated with the education base architecture. Provides robust server-side validation for room, faculty, and student population conflicts.


Models

  • education.room: Education Room/Venue
  • education.timetable.slot: Timetable Slot

11. 📚 education_library (Library Management System)

Module Overview

Provides comprehensive library management including book cataloging, physical copies, member management, issuing/returning of books, reservations, and automated fine calculations.


Models

  • education.library: Library Branch
  • education.library.category: Book Category
  • education.library.book: Book Master
  • education.library.book.copy: Physical Book Copy
  • education.library.member: Library Member
  • education.library.issue: Book Issue / Return Record
  • education.library.reservation: Book Reservation
  • education.library.fine: Library Fine

📋 Comprehensive Summary Matrix of Custom Addons

Module Core Purpose Models Defined Key Output / UI View
education_base Institutional Hierarchy education.campus, education.department, education.program, education.academic.year, education.academic.term, education.configuration, education.academic.level Academic Setup Form & Tree Views
education_student Student Registry & Profiles education.student, education.batch, education.semester, education.section Student Master Form, Kanban & Portal User Action
education_attendance Attendance Log & Metrics education.attendance, education.attendance.session, education.attendance.line Daily Attendance Grid & % Computation
education_finance Financials, Fees & Ledgers education.fee.category, education.fee.type, education.fee.structure, education.fee.assignment, education.student.payment, education.student.ledger, education.student.discount, education.student.scholarship, education.student.refund Student Ledger Statement, Fee Structure Form, Payment Receipts
education_dashboard Admin KPIs & Analytics education.dashboard Management KPI Cards & Metrics Summary
education_portal Self-Service Web & Login education.announcement, education.payment.transaction Student Portal /my/education, Razorpay Payment & Split-Screen Login Page
education_reports PDF & Excel Exports education.report.wizard PDF Student ID Cards, Fee Receipts & Ledger Exports
education_exam Examination Management education.exam, education.exam.result, education.subject, education.grading.system Exam Schedule, Grading Views, Student Portal Results
education_lms Learning Management System education.lms.course, education.lms.assignment, education.lms.submission Course Views, Submissions, Portal LMS Templates
education_timetable Academic Timetable education.room, education.timetable.slot Room Management, Timetable Slots
education_library Library Management education.library.book, education.library.member, education.library.issue Book Catalog, Issues & Returns, Library Fine Ledger