Skip to content

The-Strategy-Unit/data_science

Repository files navigation

All Contributors

Data science team repo

If you have any questions or need help, please contact anyone from the Data Science team.

This repo features:

  • Presentations the team have delivered
  • A website/ blog that the data science team can use to blog and compile other forms of resources
  • Guidance on good coding practices, also known as a "style guide"

Contributing to this repo

  1. Request access from a member of the Data Science team, they need to add you as a contributor. Alternatively, you can fork the repository to your own GitHub account.
  2. Create an issue for the thing you want to add on GitHub
  3. Clone the repository (in RStudio, File > New Project > Checkout a project from a version controlled repository). Paste in the URL of this repository, or the forked repository if you have forked it.
  4. Check out the main branch and check it's up to date in the RStudio Terminal (type git checkout main && git pull in terminal)
  5. Check out a new branch (git checkout -b issue-number in terminal)
  6. Follow instructions in the {renv} section.

{renv}

Please note this project uses {renv}. This is a way of managing the different packages that are required for each blogpost and presentation.

  1. Install the R toolchain RTools to compile some of the packages.
  2. Install {renv} (install.packages("renv") in console)
  3. Run renv::restore() in Console to install all the required packages, and ensure that you are on the version of R detailed in the renv.lock file in the parent directory.

There is a separate renv lockfile for each blogpost/presentation so it will be difficult to render the whole website at once.

To work on an already published blogpost/presentation:

  1. Run renv::use(lockfile="/path/to/page/renv.lock") in Console
  2. Edit the .qmd file that you are working on. To preview your changes, run quarto preview path/to/page.qmd in terminal.

How to create a new presentation

  1. Make the presentation with quarto, and put it in presentations/ in a YYYY-MM-DD_Talk-title folder. Your presentation should conform to the SU branding. It should have the filename index.qmd
  2. If your presentation requires any specific packages, capture them with renv::snapshot("PATH_TO_THE_FOLDER") and ensure that you include in the top of your .qmd file (after the yaml) the following code chunk, without the hashes (#)
#```
{r lockfile}
#| include: FALSE
renv::use(lockfile = "renv.lock")
#```

How to create a new blogpost

  1. Navigate to the blogs/posts folder
  2. Create a folder for your blogpost, following the naming convention YYYY-MM-DD_title-of-post
  3. Copy a previous blogpost index.qmd file into your folder and use that as your template
  4. Write your blogpost. To preview changes, run quarto preview path/to/index.qmd in terminal.
  5. If your blogpost requires any specific packages, capture them with renv::snapshot("PATH_TO_THE_FOLDER") and ensure that you include in the top of your .qmd file (after the yaml) the following code chunk, without the hashes (#)
#```
{r lockfile}
#| include: FALSE
renv::use(lockfile = "renv.lock")
#```

How to create/edit pages on the website

  1. Find the .qmd file that you wish to edit. For example, if you want to add to the Style Guide page, edit the style/style_guide.qmd file.
  2. If creating a new page, copy an existing .qmd file and use that as a template.
  3. If you want to see how it looks before pushing to GitHub, click Render in RStudio. The HTML version of your new post should open in your browser.

Pushing your blog post/presentation/page to GitHub

  1. Save your file, then add and commit it (git add file.qmd and git commit -m "Add blog post/presentation about x")
  2. Push your content to your branch in GitHub (git push origin branchname).
  3. Then, on GitHub, make a pull request to main. Put any member of the Data Science team down as a reviewer. Link your pull request with your issue by typing Closes #issuenumber in the comment field of your pull request.
  4. When approved and merged to main, the Quarto page will automatically be rendered thanks to the GitHub action that has been set up.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Chris Beeley
Chris Beeley

📢 📖
Craig Parylo
Craig Parylo

📝
Jacqueline Grout
Jacqueline Grout

📢 📝
Matt Dray
Matt Dray

📝 📢 📖
Rhian Davies
Rhian Davies

📝
Tom Jemmett
Tom Jemmett

📝 📢 📖
YiWen Hon
YiWen Hon

📝 📢 📖
Zoë Turner
Zoë Turner

📖
sallyt-nhs
sallyt-nhs

📢

This project follows the all-contributors specification. Contributions of any kind welcome!