Skip to content

A Github template repository for documenting technical skill-building challenges

License

Notifications You must be signed in to change notification settings

ggeerraarrdd/eevveerryyddaayy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

75 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

eevveerryyddaayy

A Github template repository for documenting technical skill-building challenges

Table of Contents

Note

ALL CONTENTS IN THIS REPO ARE FOR EDUCATIONAL PURPOSES ONLY.

Description

eevveerryyddaayy is a GitHub template repository. It is the templatized version of SQL Everyday, a personal skill-building challenge that necessitated an automated and streamlined framework to enable consistent daily practice and to manage an ever-growing coding portfolio.

eevveerryyddaayy automates many of the tedious manual work associated with the documentation process, such as handling file creation and organizing project materials. This frees up more time on what matters mostβ€”the actual learning.

The Crickets (Everyday, it's a gettin' closer / Goin' faster than a roller coaster / Skills like yours will surely come my way, a-hey, a-hey-hey / Skills like yours will surely come my way)

Target Users

eevveerryyddaayy is intended for self-directed learners, such as:

  • Those committing to consistent technical skill practice.
  • Those seeking to track their progress for quick reference, knowledge retention and accountability.
  • Those wanting their record of daily practice organized into an accessible portfolio.
  • Those hoping to automate as much of the project management as possible.

Features

  • 🌐 Portfolio Builder - Transforms a Github repository into a coding portfolio website with README.md serving as the homepage
  • πŸ“ Automated File Management - Creates and organizes daily practice files
  • πŸ—‚οΈ Automated Indexing - Creates and maintains a table of contents of your files for quick reference and access
  • ✨ Dynamic Markdown Tables - Intelligently adjust column widths to accommodate new content, maintaining alignment and readability
  • πŸ“Š Daily Progress Tracking - Visualizes your learning journey in tabular form
  • πŸ“š Solution Repository - Showcases different approaches to programming challenges
  • ⚑ Jupyter Notebook Interface - Simplifies data entry through a form-like template

Project Structure

eevveerryyddaayy/
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── __init__.py
β”‚   β”‚
β”‚   β”œβ”€β”€ forms/
β”‚   β”‚   └── __init__.py
β”‚   β”‚
β”‚   β”œβ”€β”€ handlers/
β”‚   β”‚   └── __init__.py
β”‚   β”‚
β”‚   β”œβ”€β”€ templates/
β”‚   β”‚   └── __init__.py
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── __init__.py
β”‚   β”‚
β”‚   └── app.py
β”‚   
β”œβ”€β”€ solutions/
β”‚
β”œβ”€β”€ every_entry.ipynb
β”œβ”€β”€ every_start.ipynb
β”œβ”€β”€ every_update.ipynb
β”‚
β”œβ”€β”€ .vscode
β”œβ”€β”€ assets/
β”œβ”€β”€ docs/
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .pylintrc
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
└── requirements.txt

Prerequisites

  • Python 3.12
    • Not tested on other versions
  • VS Code as your development environment
  • Familiarity with Jupyter Notebooks
  • Jupyter extension for VS Code
    • Required for running notebook files
    • IMPORTANT: Install specifically version v2024.11.0 - not tested on any other version
    • From VS Code marketplace: Extensions icon β†’ βš™οΈ icon next to Jupyter β†’ Install Another Version β†’ Select v2024.11.0

Getting Started

Dependencies

  • See requirements.txt

Installation

  1. Follow Github's documentation on Creating a repository from a template

  2. Clone the new repository

    git clone your-repository-url
  3. Set up a Python virtual environment

    python3 -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    pip install --upgrade pip
    pip install -r requirements.txt

Configuration

  1. Default settings

    Project Title:

    • The default title is "[ ] Everyday". You can choose a different title.

    Index Table:

    • The default index table has 5 columns. You can add a 6th column.
    • The default name of an activated sixth column is "NB". You can choose a different name.
    • The first column uses sequential numbering as default (e.g. "001", "002"). You can switch to date format.

    Form:

  2. Initialize project with default settings

    1. Open the every_start.ipynb notebook in the root directory.
    2. Run all code cells by clicking Run All.
    3. Skip to #5.
  3. Initialize project with custom settings

    1. Open the every_start.ipynb notebook in the root directory.

    2. Modify the code cell containing configuration settings (see #4 for details of options):

      # Project: Title
      PROJ_TITLE='[ ] Everyday'
      
      # Index Table: Extra Column
      NB=0
      NB_NAME='NB'
      
      # Index Table: Sequential Numbering
      SEQ_NOTATION=0
      
      # Index Table: Sequential Gaps
      SEQ_SPARSE=0
      
      # Form: Site Options
      SITE_OPTIONS=['Codewars', 'DataLemur', 'LeetCode']
    3. Run all code cells by clicking Run All.

  4. Configuration options explained

    Project Title:

    • Change PROJ_TITLE to your preferred project title.

    Index Table:

    • To add a 6th column: NB=1
    • To customize the 6th column name: NB_NAME='Your Preferred Name'
    • To switch to date format instead of sequential numbering: SEQ_NOTATION=1
    • To allow gaps in sequential numbering: SEQ_SPARSE=1

    Form:

    • Customize SITE_OPTIONS with your preferred sites as a list of strings.
    • If there is only one item in the list, that site becomes the only option and default value.
  5. Customize README.md

    After the project has been initialized, README.template.md should be the new README.md in the root directory. A copy of the previous README.md with the project documentation is stored in docs.

    Feel free to make changes to the new README.md, including the title and description of your project.

    ⚠️ IMPORTANT: The Index table, including its enclosing markdown comments, can be placed elsewhere but must not be modified in any other way or deleted.

Usage

  1. Open the project folder on VS Code, if not already.

  2. Open every_entry.ipynb in the root directory.

  3. Execute the cell containing the python code or Run All to display the form interface.

  4. Fill in the fields and click the submit button.

    πŸŽ‰ Congratulations! You're a day closer to achieving your goal!

System Administration

Configuration Updates

⚠️ Note: Configuration updates after initialization will be supported in a future version.

If you need to modify your project settings after initialization:

  • The upcoming feature will support configuration updates through every_update.ipynb.
  • This will allow you to change project settings without starting from scratch.
  • Currently, some settings like Index Table structure can only be set during initialization.

Author(s)

Version History

Release Notes

Initial Release

  • eevveerryyddaayy is the templatized version of SQL Everyday.

Future Work

  • Filter for the enhancement label in Issues.

License

Contributing

  • This project is not accepting contributions at this time.

Acknowledgments

  • Coeus

Screenshots

eevveerryyddaayy

eevveerryyddaayy

Frontispiece

Buddy Holly and The Crickets performing "That'll Be The Day" [Still from broadcast]. The Ed Sullivan Show. CBS, December 1, 1957.