Developer Guide
Welcome! If you’re here, you’re interested in running CEDAR locally, extending it, or contributing to the project. We’re glad you’re interested.
Who This Is For
This guide is for:
- Institutional researchers who want more control than the web dashboard provides
- R users who want to build custom analyses on enrollment data
- Developers who want to contribute to CEDAR
- Curious folks who want to understand how CEDAR works
What You’ll Need
- Basic R knowledge — You should be comfortable with R basics (variables, functions, data frames)
- R and RStudio — Or another R development environment
- Git — For cloning the repository and contributing
Don’t worry if you’re still learning — the best way to learn is by doing. And we’re happy to help if you get stuck.
Getting Started
Quick Start
# Clone the repository
git clone https://github.com/fredgibbs/cedar.git
cd cedar
# Install dependencies (in R)
source("setup.R")
# Start the Shiny app
Rscript cedar.R -f shiny
See Installation for detailed setup instructions.
Next Steps
| I want to… | Go to… |
|---|---|
| Install and run CEDAR locally | Installation |
| Use the command line tools | CLI Usage |
| Understand the data model | Data Model |
| Look up function documentation | Function Reference |
| Contribute code or docs | Contributing |
Project Structure
CEDAR is organized into a few key areas:
cedar/
├── R/
│ ├── cones/ # Analysis modules (enrollment, headcount, etc.)
│ ├── branches/ # Shared utilities (filtering, loading, etc.)
│ └── data-parsers/ # Data transformation scripts
├── Rmd/ # Report templates
├── config/ # Configuration files
├── data/ # Data files (not in repo)
├── tests/ # Test suite
├── ui.R # Shiny UI
├── server.R # Shiny server
└── cedar.R # CLI entry point
The “Cones” Concept
CEDAR organizes analyses into cones — focused modules that answer specific questions:
| Cone | What It Does |
|---|---|
enrl.R | Enrollment analysis |
headcount.R | Student counts by program |
credit-hours.R | Credit hour calculations |
sfr.R | Student-faculty ratio |
rollcall.R | Student demographics |
degrees.R | Graduation data |
dept-report.R | Department reports |
course-report.R | Course reports |
Each cone is relatively self-contained. If you want to add a new analysis, you’d create a new cone.
CEDAR Data Model
CEDAR uses a normalized data model with five main tables:
| Table | Contents |
|---|---|
cedar_sections | Course offerings |
cedar_students | Student enrollments |
cedar_programs | Student majors/minors |
cedar_degrees | Degrees awarded |
cedar_faculty | Faculty information |
This model is institution-agnostic. See Data Model for the full schema.
Ways to Contribute
We welcome contributions of all sizes:
- Report bugs — Found something broken? Open an issue
- Suggest features — Have an idea? We’d love to hear it
- Improve docs — See something unclear? PRs welcome
- Add tests — Help us improve coverage
- Build features — Check out the Contributing Guide
Getting Help
- GitHub Issues — Best for bugs and feature requests
- Email — fwgibbs@unm.edu for general questions
- Code questions — Feel free to open a discussion on GitHub
We’re a small project, so responses may take a few days. But we do read everything!