Computer Science Researcher and Ph.D Student @ Loyola University Chicago
This GitHub page is for my academic, personal, and work repositories.
For more personal information about me, you can visit my homepage here.
After crossing 100 repositories in April of 2024, I decided to evaluate how I have been using GitHub. I found that I implement many antipatterns and smells that make it difficult to work on projects and keep track of work. Because of this, I've decided to implement the following rules for each of my repositories:
- Name all projects to follow a standard schema.
- Much of my time is spent going through my collected repositories trying to figure out what each does, how it relates to other projects, or if it is a singleton repository. Thus, a naming schema to ensure that repository names are consistent has to be created and put into place to allow for ease of access. A repository name is different from the project name. See point 2 for more information on project names.
- The schema is as follows:
research|web|tool|prime|final|_project-name
.- Archived projects follow
research|web|tool|prime|_project-name_archive
. - Part one of the schema defines a general tag for the repository. Part two of the schema is the project name of the repository. Part three is optional and defines if the repository is archived.
- Archived projects follow
- Project names are always listed in the project description and must have
an acronym. The acronym is always lowercase for ease of typing.
- Example:
Process Internal Metrics (prime)
- Example:
- Disable as many optional features as possible that allow for collaboration on
repositories by default.
- This is to reduce the amount of clutter and features that I need to worry about when I start working on a project and to allow me to enable features as needed.
- API docs, regardless of the size or scope of the project, are a must.
- A
Makefile
must be included and support the following: -build
: Build and install the project, -create-dev
: Create the development environment to work on the project, and -run
: (Optional) execute the code - A well-written
README.md
file that documents the project and its goals as well as hosted on GitHub Pages when readily available.