Developer Docs

SchoolDoc Pro Technical Documentation

For developers and system administrators

Architecture Overview

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│                 │     │                  │     │                 │
│  HTML Frontend  │────▶│  Apps Script     │────▶│  Google Sheet   │
│  (Web App)      │     │  Backend API     │     │  Database       │
│                 │     │                  │     │                 │
└─────────────────┘     └──────────────────┘     └─────────────────┘
        

File Structure

├── Code.gs              # Main Apps Script backend
├── index.html           # Login page
├── portal.html          # Dashboard
├── data-entry.html      # Document entry form (48 fields)
├── search.html          # Search interface
├── reports.html         # Analytics dashboard
        

Configuration

All configuration stored in Script Properties:

Property Description Default
SHEET_ID Google Sheet ID for document storage (required)
SYSTEM_PASSWORD Admin password for system access (required)
SHEET_NAME Sheet tab name for documents Documents
SCHOOL_NAME School name for display Not Set
SUPPORT_EMAIL Support contact email support@schooldocpro.com

API Endpoints

All endpoints called via doGet() with method parameter.

authenticate - User login
Parameters: password
Returns: Session token, expiry
saveDocument - Save/edit document
Parameters: token, data (JSON with 48 fields)
Returns: Success/failure, document ID
getAllDocuments - Search documents
Parameters: token, filters (optional JSON)
Returns: Array of documents
verifyDocument - Get single document
Parameters: token, documentId
Returns: Document details
getStats - Analytics data
Parameters: token
Returns: Statistics and charts data
getFormOptions - Dropdown options
Parameters: token
Returns: Document types, departments, etc.
checkSession - Validate session
Parameters: token
Returns: Session validity
logout - End session
Parameters: token
Returns: Success confirmation

The 48 Fields (Column Mapping)

Column 1:  Document_ID
Column 2:  Source_Location
Column 3:  Accession_ID
Column 4:  Original_Format
Column 5:  Legacy_ID
Column 6:  Title
Column 7:  Alternate_Title
Column 8:  Description
Column 9:  Document_Type
Column 10: Date_Created
Column 11: Date_Digitized
Column 12: Academic_Year
Column 13: Language
Column 14: Author
Column 15: Recipient
Column 16: Contributors
Column 17: Subject_Persons
Column 18: Student_Names
Column 19: Class_Group
Column 20: Keywords
Column 21: Subject_Course
Column 22: Department
Column 23: Event
Column 24: Project
Column 25: Confidentiality_Level
Column 26: Retention_Schedule
Column 27: Access_Permissions
Column 28: Copyright_Info
Column 29: Disposal_Authorization
Column 30: File_Name
Column 31: File_Format
Column 32: File_Size
Column 33: Resolution
Column 34: Creation_Tool
Column 35: Checksum
Column 36: Storage_Location
Column 37: Related_Files
Column 38: Original_Condition
Column 39: Dimensions
Column 40: Color_Mode
Column 41: Page_Count
Column 42: Physical_Location
Column 43: Date_Archived
Column 44: Archivist
Column 45: Review_Date
Column 46: Version
Column 47: Usage_Count
Column 48: Linked_Records
        

Security Features

Deployment Instructions

  1. Update API_URL in all HTML files with your deployment ID
  2. In Apps Script editor: Deploy → New deployment
  3. Select: Web App
  4. Execute as: Me
  5. Who has access: Anyone
  6. Click Deploy and authorize
  7. Copy the generated URL

Initialization

Run initializeSystem() from script editor to:

Support