PRG is a repository categorization and guideline framework. By harnessing the power of GitHub Actions, it automatically crafts a tier-based display, neatly categorizing your repositories for enhanced clarity and impact. Beyond mere organization, it sets forth comprehensive guidelines, templates for READMEs
, and overall repository structure, ensuring each project is showcased with maximum professionalism and coherence.
HTML
table, created with GitHub Actions and displayed through GitHub Pages, to organize and showcase your projects to the world.README
content.README
templates to get your projects up and running quickly and easily so you can focus on what matters most - your code!Below is a list of all the documents and resources available for PRG.
Category Guidelines Guidelines for categorizing your repository tiers and naming conventions. |
Brand Guidelines Guidelines for creating your own brand for your project. |
README Guidelines Guidelines for repository READMEs. |
Repository Structure Guidelines Guidelines for repository structure and files. |
Repository Settings Guidelines Guidelines for repository settings. |
PRG Portfolio Website An example PRG Portfolio from PRG's creator. |
Table Generator Guide Guide for setting up the Python (PyRG) project tier table generator script. |
Badge Reference Guide Guide for displaying the tier badges. |
Template Guide Guide for using the provided templates. |
Platinum Tier Template Platinum project template for your repositories. |
Gold Tier Template Gold project template for your repositories. |
Silver Tier Template Silver project template for your repositories. |
Bronze Tier Template Bronze project template for your repositories. |
PRG Connection File Connection File (PRGCF) for your repositories. |
Table Generator Script Python script for generating the project tier table (PyRG). |
Project Tier Table Project tier table for your projects. |
Private Project Tier Table Project tier table for non-GitHub or private projects. |
License Example Directory Directory for license examples for your repositories (MIT, Apache, etc.). |
PRG's Official Website A website dedicated to PRG and all of those who utilize it. |
PRG's Official Website Repository Submit a pull request to add your PRG Portfolio to the PRG Showcase. |
Icon Color | Document Type |
---|---|
Guideline | |
Guide | |
Template | |
File/Directory |
This README
highlights the three core components of PRG:
README
, files, and overall structure.READMEs
and associated files. Templates are provided for each tier to help you get started quickly and easily by utilizing README Driven Development (RDD).I developed the Personal Repository Guidelines (PRG) to address the challenges of maintaining and standardizing my repositories, as well as to enhance the presentation of my GitHub Portfolio. Previously, inconsistencies in README
files and folder structures across different repositories made maintenance and templating for future projects cumbersome. PRG serves as both a solution and a documentation resource.
READMEs
, files, and overall structure by utilizing README Driven Development (RDD).PRG is based on the concept of README Driven Development (RDD) by GitHub founder Tom Preston-Werner.
README
before writing any code."Consider the process of writing the Readme for your project as the true act of creation. This is where all your brilliant ideas should be expressed. This document should stand on its own as a testament to your creativity and expressiveness. The Readme should be the single most important document in your codebase; writing it first is the proper thing to do." - Tom Preston-Werner
Another reason I created PRG was to solve the "GitHub Portfolio Problem" (as I like to call it):
Below is a good summary of the problem:
GitHub is being used to showcase my portfolio, but I don't want to showcase every single repository I have created. I want to showcase my best work, but I also want to showcase my other work that I am proud of. How do I do that?
As one GitHub user points out in this great article on the problem, How I Organize my GitHub Repositories:
"The issue is that all of these repositories are on the same level. There is no order, no differentiation between them. They just sort of exist on the user profile." -Andrei Cioara
PRG was designed to solve this problem by categorizing your repositories into five tiers and then showcasing them in a project tier table for your PRG Portfolio.
[!IMPORTANT] View the Resources section for more information around GitHub portfolios.
Your README
is the first thing people see when they visit your repository, it should be clear and concise, but also tell a story about your project. It should be a living document that is updated as your project evolves. Don't make people guess what your project does. Tell them.
"You only get one chance to make a first impression," the old saying goes. It's cliche, but nevertheless sound, practical advice. -Lauri Apple via Opensource.com
Here are some definitions to help you understand the terminology used in this document:
README
to indicate the tier of the repository.README
and repository structure.README
before writing any code.README
, files, and overall repository structure.Below are some common questions and answers about PRG:
To begin, follow these steps:
TIER_TABLE_URL
variable.For more information, see the Table Generator Guide - PRG Connection File.
Detailed instructions are in the PRG Connection File section. Information on how to determine your repository tier/category is in the Category Guidelines.
docs/images
folder named PRG.png
.See the Table Generator Guide - PRG Project Logo for more details about the logo. Consult the Brand Guidelines for more details about designing your logo.
README
to showcase the category of your repo/project.Reference the Badge Reference Guide - Tier Badges to gather the appropriate badge for your repository. The tier you chose to use in the PRG Connection File should match the tier badge you use in your
README
.
Additional guidance is available in the Table Generator Guide - GitHub Actions Workflow.
Refer to the Table Generator Guide - GitHub Pages Deployment for setup instructions.
README
.Reference the Badge Reference Guide - Profile Badges to gather the appropriate badge for your repository.
README
and project structures.For template usage, see the Template Guide.
[!IMPORTANT] If you choose to fork or clone this repository and make modifications, please ensure to give appropriate credit. This can be done by including a link back to the main branch of this repository in your documentation or project in a clear and proper manner. Thank you and good luck with your GitHub Portfolio!
Below is a list of the main files and folders in this repository and their specific purposes:
PRG-Personal-Repository-Guidelines # Root folder
āā _layouts # Jekyll layouts for the site
ā āā default.html # Default layout for the site
āā _site # Jekyll site build folder
āā assets # Site assets
ā āā css # Site CSS
ā ā āā style.css # Site CSS file
ā āā fonts # Site fonts
ā āā images # Site images
ā āā favicons # Site favicons
ā āā banner_large.png # Large banner
ā āā banner_social.png # Small banner
ā āā search.png # Search icon
āā categories # Category folders
ā āā table_generator_guide.md # Table generator guide
ā āā badge_reference_guide.md # Badge reference guide
ā āā project_tier_table.md # Project tier table
ā āā project_tier_table_private.md # Project tier table for private repos
āā docs # Site documentation
ā āā api # Postman API collection
ā āā images # Documentation images
āā guidelines # Guidelines for repository READMEs, files, and structure
ā āā category_guidelines.md # Category guidelines
ā āā brand_guidelines.md # Brand guidelines
ā āā readme_guidelines.md # README guidelines
ā āā repository_settings_guidelines.md # Repository settings guidelines
ā āā repository_structure_guidelines.md # Repository structure guidelines
āā scripts # Python build scripts
ā āā project_tier_table_generator.py # Project tier table generator
ā āā requirements.txt # Python requirements
āā templates # README templates
ā āā license_examples # License examples
ā āā template_guide.md # Template guide
āā _config.yml # Jekyll configuration file
āā index.md # Site index file
āā CITATION.cff # Citation file
āā CNAME # Custom domain file
āā .gitignore # Git ignore file
āā .gitattributes # Git attributes file
āā .github # GitHub folder
āā PRG.md # PRG Connection File
āā LICENSE # License file
āā README # This file
To solve the "GitHub Portfolio Problem" above and to distinguished the quality of the project, PRG categorizes repositories into five tiers:
Platinum
Gold
Silver
Bronze
Optimized (included in PRG, but not within a specific tier)
None (uncategorized, your average non-PRG repo on GitHub)
PRG achieves this by utilizing GitHub Actions to automatically create a project tier table based on a simple markdown file (PRG Connection File) or (PRGCF for short) placed in the root of each of your repositories.
README
to indicate that you are using PRG to categorize your repositories.Consult the Category Guidelines for more details on how to categorize your repositories.
PyRG is a Python
implementation of the PRG framework. It is a simple Python
script that allows you to easily create a project tier table for your PRG Portfolio. Also included is a GitHub Action CI/CD workflow that will automatically generate a table of all your repositories and their PRG tiers to deploy to GitHub Pages in order to showcase your projects/portfolio.
Consult the Table Generator Guide for more details on how to setup the project tier table generator using GitHub Actions and GitHub Pages.
Related Component Documents:
Category Guidelines
Table Generator Guide
Badge Reference Guide
Project Tier Table
Private Project Tier Table
PRG Connection File
Below are the guidelines for repository READMEs
, files, and overall structure. This applies to ALL tiers.
[!NOTE] PRG contains a lot of guidelines and guides to help you get started. You do not need to conform all of your repositories to these guidelines in order to use PRG or adhere to it. If you just want to use PRG for the portfolio table, feel free to do so. The guidelines are there to help you create a better overall repository and portfolio.
[!WARNING] Some Guidelines are used for other PRG components but are located in the
guidelines
folder for convenience. e.g. Category Guidelines is for the Category component but is located in theguidelines
folder.
Review the Category Guidelines for more details on how to categorize your repositories.
Review the Brand Guidelines for more details on how to create your own brand for your project.
Review the README Guidelines for more details on how to structure your repository README
.
Review the Repository Structure Guidelines for more details on how to structure your overall repository.
Review the Repository Settings Guidelines for more details on how to configure your repository settings.
Related Component Documents:
Category Guidelines
> Brand Guidelines
> README Guidelines
> Repository Structure Guidelines
> Repository Settings Guidelines
The following templates are provided for you to use in your repositories. These templates are designed to be used with the PRG framework.
Consult the Template Guide for more details on how to use the provided templates.
Icon | Tier | Template Repository |
---|---|---|
Platinum | PRG-Platinum-Tier-Template | |
Gold | PRG-Gold-Tier-Template | |
Silver | PRG-Silver-Tier-Template | |
Bronze | PRG-Bronze-Tier-Template |
[!NOTE] For example, I use the Optimized tier for my personal and organization profile
READMEs
since they don't fit into any of the other tiers.
Use or add more licenses to the License Example Directory located here: templates/license_examples
.
Related Component Documents:
Template Guide
Platinum Tier Template
Gold Tier Template
Silver Tier Template
Bronze Tier Template
License Example Directory
Thank you for taking the time to read through this document and I hope you find it useful! If you have any questions or suggestions, please feel free to reach out to me.
Please reference the SUPPORT file in this repository for more details.
If you would like to add your PRG Portfolio to the PRG Showcase, please open a pull request with your information added to the PRG Official Website Repository in order to be viewed on the The Official PRG Website.
I'm looking forward to seeing how this project evolves over time and how it can help others with their GitHub portfolio.
Please reference the CHANGELOG file in this repository for more details.
Please reference the GitHub Project tab inside this repository to get a good understanding of where I'm currently at with the overall project.
Please join the PRG Discussions to discuss this project!
Feel free to submit a pull request if you find any issues or have any suggestions on how to improve this project. You can also open an issue with the tag "bug" or "enhancement".
git checkout -b feature/PRG-Personal-Repository-Guidelines
)git commit -m 'Add new feature'
)git push origin feature/PRG-Personal-Repository-Guidelines
)Please reference the CONTRIBUTING file in this repository for more details.
Below are some external resources I found helpful when creating my repositories and PRG in general:
Below is a UML Package Diagram of the PRG framework:
[!NOTE] The diagram was created using PlantUML. The source code for the diagram can be found here and the generated image can be found here. Both are located in the
docs/diagrams
folder.
Below is a list of handy web applications I built that you can use to help develop your repositories and projects.
CREDITS Generator Generate CREDITS.md files for your projects. |
Resolution Scale Calculator Scale design dimension up or down from/to @1x, @2x, @3x. |
GitHub User Info Find relevant info about GitHub users or organizations. |
Binary Converter Convert text to binary and vice versa. |
PWA - Demo Application PWA demo and tutorial application. |
This project is released under the terms of the GNU General Public License, version 3 (GNU GPLv3), which ensures that derivatives of the software remain open source.
Author: Scott Grivner
Email: [email protected]
Website: scottgrivner.dev
Reference: Main Branch