SOBIE Conference API Documentation

SOBIE Document Management System

Overview

A comprehensive document management system for storing and serving conference PDFs including programs, proceedings, schedules, and other conference materials.

Storage Architecture

Filesystem + Database Hybrid Approach

Directory Structure

uploads/documents/
├── 2024/
│   ├── program/
│   ├── proceedings/
│   ├── schedule/
│   ├── poster/
│   └── presentation/
├── 2025/
│   ├── program/
│   ├── proceedings/
│   ├── schedule/
│   ├── poster/
│   └── presentation/
└── 2026/
    └── ...

Document Categories

Features

🔐 Access Control

📊 Document Management

🔍 Search & Discovery

📈 Analytics & Statistics

API Endpoints

Public Access

Admin/Organizer Only

Authenticated Users

Upload Process

1. File Upload

curl -X POST /api/documents/upload \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "document=@conference-program-2025.pdf" \
  -F "title=SOBIE 2025 Conference Program" \
  -F "category=program" \
  -F "conferenceYear=2025" \
  -F "isPublic=true"

2. Automatic Processing

3. Access Control Applied

Security Features

File Security

Access Security

Example Usage

Upload Conference Program

const formData = new FormData();
formData.append('document', file);
formData.append('title', 'SOBIE 2025 Conference Program');
formData.append('description', 'Complete program including schedules, speakers, and sessions');
formData.append('category', 'program');
formData.append('conferenceYear', '2025');
formData.append('isPublic', 'true');
formData.append('keywords', '["program", "schedule", "2025"]');

const response = await fetch('/api/documents/upload', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${token}` },
  body: formData
});

Search Documents

const response = await fetch('/api/documents?category=program&conferenceYear=2025&search=keynote');
const data = await response.json();

Download Document

window.open(`/api/documents/${documentId}/download`);

Database Schema Highlights

Document Model

{
  title: "Conference Program",
  category: "program",
  filename: "1234567890-conference_program_2025.pdf",
  filePath: "uploads/documents/2025/program/1234567890-conference_program_2025.pdf",
  fileSize: 2048576,
  checksum: "a1b2c3d4e5f6...",
  conferenceYear: 2025,
  isPublic: true,
  allowedRoles: ["attendee", "presenter"],
  downloadCount: 142,
  uploadedBy: ObjectId("..."),
  status: "active"
}

Performance Optimizations

Database Indexes

File Serving

Best Practices

For Administrators

  1. Organize by year and category for easy management
  2. Use descriptive titles for better searchability
  3. Set appropriate permissions based on content sensitivity
  4. Regular cleanup of old or obsolete documents

For Developers

  1. Always check permissions before serving files
  2. Handle file errors gracefully (missing files, corruption)
  3. Monitor storage usage and implement cleanup policies
  4. Log document access for security and analytics

Backup Strategy

File Backups

Database Backups

Migration from Database Storage

If you currently store PDFs in the database:

  1. Export existing documents from database
  2. Save to filesystem using organized directory structure
  3. Update document records with file paths
  4. Remove binary data from database
  5. Test access permissions and download functionality

This hybrid approach provides the best performance, scalability, and maintainability for conference document management!