Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Organising your SDS320 project so others can understand and rerun it

1. Why the repository matters

Your SDS320 project must include a public GitHub or GitLab Repository. The report must include a link to this repository.

The repository is part of the assessed project submission. It should allow another student to understand your project and reproduce the main workflow on a different machine.

This page explains what the repository should contain. It does not replace Git basics, which explains the basic Git workflow.


2. What your repository should contain

Based on the SDS320 syllabus, your repository should include:

Your repository should not be a random file dump. It should tell the reader what matters and how the pieces fit together.


3. Suggested repository structure

The structure below is a recommendation, not a strict rule. Adapt it to your project.

my-sds320-project/
├── README.md
├── environment.yml
├── .gitignore
├── data/
│   ├── README.md
│   ├── raw/
│   ├── processed/
│   └── training/
├── notebooks/
│   ├── 01_explore_data.ipynb
│   ├── 02_preprocess_data.ipynb
│   └── 03_results_and_figures.ipynb
├── scripts/
│   ├── preprocessing.py
│   └── plotting.py
├── results/
│   ├── figures/
│   ├── maps/
│   ├── predictions/
│   └── evaluation/
└── report/

Adapt the structure if another organisation is clearer for your project. The important part is that another person can understand where to start, which files are essential and which outputs belong to the final project.


4. README structure

Your README.md is the entry point to your project. Start it early and improve it throughout the semester.

A useful README outline is:

# Project title

---
## Short summary

One short paragraph explaining the project.

---
## Research question

State the final research question.

---
## Data sources

List the datasets, providers, access routes, dates, formats and licences where relevant.

---
## Methods

Briefly explain the main workflow and method choices.

---
## Repository structure

Explain the main folders and important files.

---
## How to run

Explain the environment setup and the order of notebooks or scripts.

---
## Results

Summarise the key result and link to important figures or outputs.

---
## Limitations

State important limitations, uncertainties or incomplete parts.

---
## AI use

State whether and how AI tools were used, if applicable.

---
## Licence and citation

Explain how the project code, figures or data may be reused, if applicable.

Do not wait until the end to write the README. A rough README is useful already during project development.


5. Data instructions

Large raw data files should usually not be committed. Instead, document how to get them.

Your data/README.md can include:

Dataset name:
Provider:
URL or access route:
Download date:
Spatial coverage:
Temporal coverage:
Format:
Coordinate reference system:
Licence:
Processing notes:
Can the data be shared publicly?

6. What not to upload

Avoid uploading:

Use a Gitignore File to exclude files and folders that should not be tracked.


7. Code quality in the repository

Your code should be readable and sufficiently documented.

This usually means:

For code organisation, see Notebooks and scripts.


8. Flags & checks

Red flagFirst check
The README is emptyAdd title, summary, question, data, method and run order.
The repository has many files but no structureGroup files into notebooks, scripts, data, results and report folders.
The project only runs on your computerCheck paths and environment information.
Data are uploaded but licence is unclearRemove or restrict data and document access instead.
The main workflow is hidden in several notebooksAdd a run order to the README.
Notebooks fail after restarting the kernelFix hidden-state problems before final submission.
The repository contains passwords or tokensStop and ask for help before continuing.
Code is copied from AI or websites without explanationReview, adapt, cite or disclose according to the course AI and integrity guidance.

9. Mini task

Open your project repository and improve the README.

Complete at least these sections:

Project title:
Research question:
Data sources:
Main method:
How to run:
Current limitations:

Then make one Git commit with a clear message, for example:

Update README with project question and data sources

10. Key takeaways