framework docs
Guide

Overview

Framework supports four project types, each optimized for different workflows:

Type Best For
Standard Project Data analysis, research, reporting
Privacy Sensitive Project Research with private/public data separation
Course/Teaching Academic courses with lectures and assignments
Presentation Slides and presentations

Choosing a Project Type

Standard Project (Default)

Full-featured with organized data, work, and output directories.

Use for most data analysis work:

  • Research projects
  • Data pipelines
  • Exploratory data analysis

Default structure:

my-analysis/
β”œβ”€β”€ functions/
β”œβ”€β”€ inputs/
β”‚   β”œβ”€β”€ raw/
β”‚   β”œβ”€β”€ intermediate/
β”‚   └── final/
β”œβ”€β”€ notebooks/
β”œβ”€β”€ outputs/
β”‚   └── notebooks/
β”œβ”€β”€ scripts/
└── settings.yml

Optional directories available in the GUI: docs/, scratch/

Privacy Sensitive Project

Enhanced privacy controls with separate private/public flows.

Use for research involving sensitive or protected data:

  • Research with sensitive data, such as protected health information
  • Projects requiring clear public/private separation

Default structure:

my-study/
β”œβ”€β”€ functions/
β”œβ”€β”€ inputs/
β”‚   β”œβ”€β”€ private/
β”‚   β”‚   β”œβ”€β”€ raw/
β”‚   β”‚   β”œβ”€β”€ intermediate/
β”‚   β”‚   └── final/
β”‚   └── public/
β”‚       β”œβ”€β”€ raw/
β”‚       β”œβ”€β”€ intermediate/
β”‚       └── final/
β”œβ”€β”€ notebooks/
β”œβ”€β”€ outputs/
β”‚   └── private/
β”‚       └── notebooks/
β”œβ”€β”€ scripts/
└── settings.yml

Optional directories available in the GUI: docs/, scratch/

Course/Teaching

Simplified structure for teaching materials, such as lecture slides, student assignments, and course materials

Default structure:

my-course/
β”œβ”€β”€ assignments/
β”œβ”€β”€ course_docs/
β”œβ”€β”€ data/
β”œβ”€β”€ readings/
β”œβ”€β”€ slides/
└── settings.yml

Optional directories available in the GUI: functions/, modules/, scripts/

Presentation

Minimal structure for slides and presentations.

Default structure:

my-presentation/
β”œβ”€β”€ presentation.qmd
└── settings.yml

Optional directories available in the GUI: data/, functions/, outputs/, scripts/

Creating Projects

Using the GUI

The easiest way to create projects is through the GUI:

framework::setup()

Navigate to New Project and follow the wizard.

Programmatic Creation

# Create a standard project
new_project("sales-analysis", "~/projects/sales-analysis")

# Create a privacy sensitive project
new_project_sensitive("medical-study", "~/projects/medical")

# Create a course
new_course("data-science-101", "~/teaching/ds101")

# Create a presentation
new_presentation("q4-report", "~/presentations/q4")

Shared Features

All project types include:

  • Configuration (settings.yml) - Project settings
  • Git integration - Version control ready with appropriate .gitignore
  • Quarto support - Modern document rendering
  • AI assistant context - Optional CLAUDE.md/AGENTS.md generation

← Publishing

Standard Project β†’