Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleaning up folder/file structure in the curriculum repository #109

Open
01zulfi opened this issue Feb 21, 2022 · 1 comment
Open

Cleaning up folder/file structure in the curriculum repository #109

01zulfi opened this issue Feb 21, 2022 · 1 comment
Labels
Status: In Progress This issue/PR has ongoing work being done

Comments

@01zulfi
Copy link
Member

01zulfi commented Feb 21, 2022

Cleaning up folder/file structure in the curriculum repository

Summary

Purpose is to clean up the folder/file structure in the repository to be more consistent across itself and reflect how the curriculum is structured on the website.

Motivation

Relevant cards on the top-meta's project Ideas/Funnel column:

  1. The file and folder structure/naming for the curriculum repo could be updated to be more consistent. One example of this is some projects have a "project_" prefix while some don't.
  2. Lesson file names and directory structures don't match curriculum lesson names / structure.

Suggested implementation

How the repository should look after the update:

curriculum 
|
|     README.md
|     ...
|
|---- archive (folder)
|      |      ...
|      |
|---- templates (folder)
|      |      ...
|      |
|---- .github (folder)
|      |      ...
|      |
|---- <course_name> (folder)
|      |      README.md
|      |
|      |---- <section_name> (folder)
|      |      |     <lesson_name>.md
|      |      |     project_<project_name>.md
|      |      |     ...
|      |      |
|      |      |---- <lesson_name> OR project_<project_name> (folder) (if applicable)    
|      |      |     |
|      |      |     |
|      |      |     |---- imgs (folder)
|      |      |     |        <image_name>.png
|      |      |     | 

The above structure will be strictly followed with no exceptions.

Primary Changes:

  1. Every course must at least have one section folder.
  2. Every course must have a README.md file.
  3. Course README.md's must be updated accordingly. (Leverage community for this effort)
  4. Every section must have at least one lesson markdown file.
  5. If a lesson/project requires images, there must exist a folder of the same name as the lesson and at the same directory level as the lesson. That folder must have an imgs folder which will house the necessary images.
  6. Every project must have a project_ preffix.
  7. Every folder/file must have underscores as opposed to hyphens.

Secondary changes:

  1. Rename lesson markdown file if the website counterpart has a different lesson title.
  2. Duplicate files must be deleted.
  3. Unused/old lesson markdown files must be moved into the archive folder.

NOTE: Seed files on the website repository must be updated to account for these changes.

Some example changes

  • html_css folder will be broken into two folders: intermediate_html_css and advanced_html_css.
  • databases folder will have another folder called databases and all the lessons will be moved into it.
  • foundations/html_css folder will be broken into three folders: html_foundations, css_foundations and flexbox.

Workflow

  1. Browse curriculum's open pull requests and pick the course/section of the repository that has no forthcoming changes.
    • If there is none, pick one with the least open pull requests.
  2. Submit the pull request on the curriculum repository which will apply the changes mentioned above in Suggested Implementation. The pull request will have a 'Status: Do Not Review' label.
  3. Submit a pull request on the website repository to reflect the curriculum changes. It will have the 'Status: Needs Review' label.
  4. Remove 'Status: Do Not Review' and add the 'Status: Needs Review' label on the curriculum pull request.
  5. Wait for the both the pull requests to be approved.
  6. After both the pull requests are approved, scan the curriculum repository again to look for any open pull requests (that might have been made in the meantime) that might cause merge conflicts. If so, proceed to step 7, otherwise skip to step 8.
  7. Wait for conflicting pull requests to be merged. All merge conflicts must be handled in our pull request rather than a contributor's.
  8. Merge both the curriculum and the website pull requests. 🎉

Additional

n/a

@01zulfi
Copy link
Member Author

01zulfi commented Mar 24, 2022

Course README Template:

# <course_name>

/* in case course belongs to multiple paths, make sure to link those paths */ 

This folder contains lesson markdown files that make up the <course_name> course. This course exists in the [<path_name>](<path_link>) path on the Odin Project Website.

## Course Outline

The following list represents how the lessons are divided into sections and presented on the website.

**Disclaimer:** Given the ever updating nature of the curriculum, the outline might be outdated. See the [<course_name> course on the website](<course_link>)
instead.

### <section_name>

/* make sure the lesson order corresponds to the order on the website */
/* make sure to use relative links with respect to this README to link the markdown file */

1. [<lesson_name>](<lesson_markdown_file_link>)
2. [**<project_name>**](<project_markdown_file_link>)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: In Progress This issue/PR has ongoing work being done
Projects
None yet
Development

No branches or pull requests

1 participant