Skip to main content
Dev Log/Technical Design for Citizen Science Classification
data integration9 min

Technical Design for Citizen Science Classification

Developer·4 Dec 2025·9 min read
Citizen ScienceZooniverseAPIUX Design

Building a classification interface that empowers volunteers to contribute to real astronomical research through Zooniverse integration.

Technical Design for Citizen Science Classification

Citizen science has revolutionised astronomy. Projects like Galaxy Zoo have demonstrated that volunteers can make meaningful contributions to research. Here's how I designed the classification system for NebulaX.

The Zooniverse Model

Zooniverse is the world's largest platform for people-powered research. Key concepts:

  • Projects: Research initiatives (Galaxy Zoo, Planet Hunters)
  • Subjects: Items to classify (images, light curves)
  • Workflows: Classification sequences
  • Annotations: User responses

Architecture

┌─────────────────────────────────────────┐
│           ClassificationHub             │
│  ┌─────────────┐  ┌─────────────────┐  │
│  │ ProjectList │  │ ClassifyPanel   │  │
│  │             │  │ ┌─────────────┐ │  │
│  │ • GalaxyZoo │  │ │SubjectViewer│ │  │
│  │ • RadioZoo  │  │ └─────────────┘ │  │
│  │ • Hunters   │  │ ┌─────────────┐ │  │
│  │             │  │ │ OptionList  │ │  │
│  └─────────────┘  │ └─────────────┘ │  │
│                   └─────────────────┘  │
└─────────────────────────────────────────┘

User Flow

  • Browse Projects - Select from available projects
  • View Tutorial - Learn what to look for
  • Classify Subjects - Answer questions about images
  • Submit & Continue - Responses saved, next subject loaded
  • Track Progress - View stats and achievements
  • State Management

    Classification state requires careful management:

    typescript
    class="code-keyword">interface ClassificationState {
      currentProject: Project | null
      currentSubject: Subject | null
      annotations: Annotation[]
      startTime: string
      isSubmitting: boolean
    }
    
    

    class="code-comment">// Reset on project change useEffect(() => { class="code-keyword">if (projectId) { loadSubject(projectId) setAnnotations([]) setStartTime(new Date().toISOString()) } }, [projectId])

    Optimistic Updates

    For responsive UX, we submit classifications optimistically:

    typescript
    class="code-keyword">const handleSubmit = class="code-keyword">async () => {
      class="code-comment">// Immediately load next subject
      setCurrentSubject(null)
      loadNextSubject()
    
    

    class="code-comment">// Submit in background try { class="code-keyword">await submitClassification(annotations) setClassificationCount(c => c + 1) } catch (error) { class="code-comment">// Retry logic, error display } }

    Gamification

    Engagement features encourage continued participation:

    Ranks

    typescript
    class="code-keyword">const RANKS = [
      { name: 'Stargazer', min: 0 },
      { name: 'Space Cadet', min: 10 },
      { name: 'Explorer', min: 50 },
      { name: 'Voyager', min: 100 },
      class="code-comment">// ...
    ]

    Badges

    • First classification
    • Century club (100)
    • Project-specific achievements

    Progress Tracking

    • Session statistics
    • Historical activity
    • Contribution graphs

    Australian Focus

    The platform highlights Australian projects:

    • ASKAP EMU: Classify radio morphologies
    • Murchison: Low-frequency source identification
    This connects citizen scientists directly with Australian research priorities and SKA development.

    Data Quality

    Zooniverse ensures quality through:

    • Retirement: Subjects retire after N classifications
    • Gold Standard: Known answers for accuracy tracking
    • Weighting: Experienced users' votes count more

    Future Enhancements

    • Real-time collaboration (see what others classify)
    • Expert feedback on your classifications
    • Machine learning assistance (highlight features)
    • Mobile-optimised classification
    Citizen science demonstrates that everyone can contribute to astronomical discovery. The platform makes this as accessible as possible.
    Related Posts