🏗️ Lab Website Collaborative Management System

System Architecture Overview

This document describes the collaborative content management system for the CC Lab website, designed to enable safe student contributions while maintaining PI control over critical content.


📊 System Design Principles

  1. Separation of Concerns: Critical content is physically separated from student-editable content
  2. Fail-Safe Design: Even if students make mistakes, core website remains intact
  3. Progressive Validation: Multiple checks at different stages catch errors early
  4. Clear Boundaries: Visual and structural cues show what can be edited
  5. Automated Assistance: Scripts and workflows reduce manual oversight burden

🗂️ Directory Structure

skblnw.github.io/
│
├── 🔒 PI_ONLY/                 # Protected content (PI access only)
│   ├── README.md               # Explains restrictions
│   ├── _pages/                 # Critical pages
│   │   ├── home.md            # Homepage
│   │   ├── research.md        # Research directions
│   │   └── contact.md         # Contact info
│   └── _data/
│       ├── navigation.yml     # Site navigation
│       └── authors_master.yml # Complete member database
│
├── 🎓 STUDENT_ZONE/            # Student workspace (safe to edit)
│   ├── README.md              # Student instructions
│   ├── news_drafts/           # Draft news posts
│   ├── photos/                # Event photos
│   ├── my_profile/            # Individual profiles
│   ├── publication_drafts/   # Suggested publications
│   └── TEMPLATES/             # Copy-paste templates
│       ├── news_template.md
│       ├── paper_news_template.md
│       ├── event_news_template.md
│       ├── profile_update.yml
│       └── publication_template.txt
│
├── 📋 WORKFLOWS/               # Documentation & guides
│   ├── STUDENT_GUIDE.md      # Simple student instructions
│   ├── PI_GUIDE.md           # Advanced PI management
│   ├── ONBOARDING_CHECKLIST.md # New student setup
│   └── checklists/           # Task-specific guides
│
├── 🔧 utils/                   # Automation scripts
│   ├── validate_student_pr.py # Validates student submissions
│   ├── generate_people.py    # Generates people pages
│   └── import_publications.py # Imports publications
│
├── 🤖 .github/workflows/       # GitHub Actions
│   └── validate-student-pr.yml # Automated PR validation
│
└── 📁 [Standard Jekyll Dirs]   # Regular website files
    ├── _data/                 # Data files
    ├── _pages/                # Website pages
    ├── collections/           # Posts and people
    └── assets/                # Images and styles

🔄 Content Flow Diagram

Student Creates Content
        ↓
[STUDENT_ZONE/drafts]
        ↓
Creates Pull Request
        ↓
Automated Validation ←─── [GitHub Actions]
        ↓
    ✓ Pass / ✗ Fail
        ↓
PI Review (if passed)
        ↓
    Approve / Request Changes
        ↓
Merge to Production
        ↓
[Website Updates]

🛡️ Safety Mechanisms

Layer 1: Physical Separation

Layer 2: Template System

Layer 3: Automated Validation

Layer 4: GitHub Protections

Layer 5: Human Review


👥 Permission Levels

Role GitHub Permission Can Do Cannot Do
New Student Read View code, learn Make changes
Active Student Write Create PRs, edit STUDENT_ZONE Merge PRs, edit PI_ONLY
Senior Student Write+ Help review PRs Merge without PI approval
PI Admin Everything N/A

📝 Content Types & Workflows

Type A: Student-Generated (Low Risk)

Type B: Student-Assisted (Medium Risk)

Type C: PI-Only (High Risk)


🚀 Implementation Checklist

Initial Setup (One Time)

Ongoing Maintenance


📈 Success Metrics

Metric Target Measurement
Student contribution rate 2+ posts/month GitHub insights
Error rate <10% of PRs Failed validations
Review turnaround <3 days PR metrics
Student satisfaction High Surveys
Website uptime 99.9% GitHub Pages status

🔧 Troubleshooting Guide

Common Issues

  1. Student edited wrong file
    • Solution: Reject PR, explain correct location
  2. Validation script fails
    • Check Python version
    • Ensure YAML module installed
  3. Images too large
    • Provide compression instructions
    • Share online tools
  4. Merge conflicts
    • PI resolves manually
    • Usually from simultaneous edits

📚 Training Materials

  1. For Students:
    • WORKFLOWS/STUDENT_GUIDE.md - Primary reference
    • WORKFLOWS/ONBOARDING_CHECKLIST.md - Getting started
    • STUDENT_ZONE/README.md - Quick reference
  2. For PI:
    • WORKFLOWS/PI_GUIDE.md - Advanced management
    • This document - System overview
    • GitHub documentation - Technical reference

🎯 Key Benefits

For PI:

For Students:

For Lab:


📅 Rollout Plan

Phase 1: Setup (Week 1)

Phase 2: Pilot (Week 2-3)

Phase 3: Full Launch (Week 4)

Phase 4: Optimization (Ongoing)


📞 Support Contacts


✅ Summary

This collaborative system enables safe, scalable, and sustainable website management by:

  1. Separating critical and student content
  2. Automating validation and checks
  3. Providing clear templates and guides
  4. Enforcing review processes
  5. Documenting everything clearly

The result is a website that stays fresh with student contributions while maintaining professional standards under PI oversight.