π This repository stores the project entries that are pulled into the MARC website during deployment.
If your pull request is merged here, the website workflow will clone this repository into the website build, and your project can appear on the live site.
You will usually add:
- one Markdown file for your project
- one cover image inside
cover_images/
A typical project file looks like this:
---
project: "Example Project"
projectMembers:
- person1@example.com
- person2@example.com
supervisors:
- supervisor@example.com
researchArea: Computer Vision
researchPillars:
- "AI in Engineering"
- "AI in Climate Change"
coverImage: ./cover_images/example_project.jpg
---
Write the project description here in Markdown.The text below the front matter becomes the main project description on the project page.
The website currently validates each project entry with these fields:
project: project titleprojectMembers: list of stringssupervisors: list of stringsresearchArea: stringresearchPillars: list of stringscoverImage: image path
All of these fields are required by the current website schema.
The website tries to match projectMembers and supervisors against the email values stored in the marc_people repository.
That means:
- if a supervisor or project member is already in
marc_people, it is better to use their email address - when you use that same email, the website can automatically link to their people profile and show their name and photo
- if the person is not in
marc_people, you can put their name, email, or any other text you want - if the value does not match a
marc_peopleemail, the website will still display that text, but it will not become a linked people profile
In practice, use email addresses when you want automatic linking to the people page. Otherwise, plain names are fine.
You should have:
- a GitHub account
- basic familiarity with editing files and committing changes
- the project title, members, supervisors, research area, research pillars, and a cover image ready
The block between the top --- line and the next --- line is YAML front matter.
This is where the website reads your project metadata.
A few YAML gotchas to watch for:
- indentation matters; use consistent spaces before list items
- do not use tabs for indentation
- every field name must be followed by a colon, like
project: - list items must start with
- - if a value contains special characters, a colon, or you just want to be safe, wrap it in quotes
- do not forget the closing
---line before your normal Markdown description starts - the image path must match the actual file name exactly
Good example:
projectMembers:
- person1@example.com
- person2@example.comCommon mistake:
projectMembers:
- person1@example.com
- person2@example.comThe second example is easy to break because the indentation is inconsistent.
Everything below the closing --- line is normal Markdown content.
For projects, this is the main project description. You can include:
- plain paragraphs
- section headings
- bullet lists
- links
- emphasis such as bold or italic text
- images using Markdown syntax
Example:
---
project: "Example Project"
projectMembers:
- person1@example.com
supervisors:
- supervisor@example.com
researchArea: Computer Vision
researchPillars:
- "AI in Engineering"
coverImage: ./cover_images/example_project.jpg
---
This project focuses on robust image analysis for real-world environments.
## Objectives
- Build better models
- Evaluate them on real data
- Publish results
More details can be linked here: [Project page](https://example.com).
Here is an inline image:
If you include an image in the content section, use a relative path to a file inside the repository. The image can be placed at any place inside the repo (You don't need to place it in the cover_images folder, in fact don't place them there!)
Keep it reasonably simple and readable. Plain paragraphs are completely fine.
The researchArea value should exactly match one of the research area page titles in the website.
Use one of these exact values, including capitalization:
Biomedical Engineering and WearablesComputer VisionGenerative AIMultispectral ImagingSmart GridSocioeconomic
If the capitalization or wording does not match, the website data becomes inconsistent. Use the values above exactly.
researchPillars is a list of strings.
Examples already used in the repository include:
AI in EngineeringAI in Climate Change
There is no hardcoded validation list for research pillars in the current website schema, but you should keep the wording consistent with existing values when possible.
This is the easiest option if you do not want to use Git locally.
- Open
pdnMARC/marc_projectson GitHub. - Click
Fork. - Create the fork under your own GitHub account.
- Open your fork on GitHub.
- In the repository root, click
Add file. - Choose
Create new file. - Name the file something clear, for example:
Example_Project.md
- Paste your project content.
Example:
---
project: "Example Project"
projectMembers:
- person1@example.com
- person2@example.com
supervisors:
- supervisor@example.com
researchArea: Computer Vision
researchPillars:
- "AI in Engineering"
coverImage: ./cover_images/example_project.jpg
---
This project studies ...- Open the
cover_images/folder in your fork. - Click
Add file. - Choose
Upload files. - Upload your image.
- Make sure the
coverImagefield matches the uploaded file name exactly.
Example:
coverImage: ./cover_images/example_project.jpgNotes:
- The cover image is required by the current website schema.
- Common formats such as
.jpg,.jpeg, and.pngare appropriate. - Keep the file name simple to avoid path mistakes.
If you already have a project entry and just want to update it:
- Open the existing
.mdfile in your fork. - Click the pencil icon to edit it.
- Update the front matter or description.
- If needed, upload a new image to
cover_images/. - Scroll down and commit the change to a new branch.
- Open a pull request.
You can manage both new projects and later updates entirely from the GitHub website this way.
When editing in the browser:
- Scroll to the commit section below the editor.
- Enter a short commit message such as
Add project Example Project. - Choose
Create a new branch for this commit and start a pull requestif GitHub offers it. - Click
Propose changesorCommit changes.
- GitHub will usually guide you to a pull request page.
- Open a pull request from your fork to
pdnMARC/marc_projects:main. - Briefly say that you are adding or updating a project.
Use this option if you prefer working on your own machine.
- Open the
pdnMARC/marc_projectsrepository on GitHub. - Click
Fork. - Create the fork under your own GitHub account.
git clone https://github.com/<your-github-username>/marc_projects.git
cd marc_projectsgit checkout -b add-my-projectUse any clear branch name such as add-example-project.
Create a new Markdown file in the repository root.
Example:
Example_Project.md
Then add your YAML front matter and project description.
Example:
---
project: "Example Project"
projectMembers:
- person1@example.com
- person2@example.com
supervisors:
- supervisor@example.com
researchArea: Computer Vision
researchPillars:
- "AI in Engineering"
coverImage: ./cover_images/example_project.jpg
---
This project studies ...Put the image file inside the cover_images/ folder and reference it in coverImage.
Example:
coverImage: ./cover_images/example_project.jpggit add .
git commit -m "Add project Example Project"
git push origin add-my-project- Go to your fork on GitHub.
- Open a pull request from your branch to
pdnMARC/marc_projects:main. - In the pull request description, briefly state that you are adding or updating a project.
The MARC website GitHub Actions workflow clones pdnMARC/marc_projects into the website build as the projects collection.
That is why project changes belong in this repository rather than directly in the website repository.
In practice, the flow is:
- You update
marc_projects. - Your pull request is merged.
- The website workflow pulls this repository during deployment.
- Your project becomes part of the website build.
- Your Markdown file is in the repository root.
- Your front matter includes all required fields.
- Your YAML indentation is consistent and uses spaces, not tabs.
- Your
projectMemberslist is written as a YAML list. - Your
supervisorslist is written as a YAML list. - Your
researchAreaexactly matches one of the allowed values above, including capitalization. - Your
coverImagepath is correct. - Your cover image file is inside
cover_images/. - Use email addresses in
projectMembersandsupervisorswhen you want automatic linking to the people page. - Plain names or other text are also allowed, but they will display as plain text if they do not match a
marc_peopleemail. - Your project description is below the closing
---line.