From f27e534f6c74dbd2b3de57b94709149086f23637 Mon Sep 17 00:00:00 2001 From: Jimmy Briggs Date: Mon, 5 Aug 2024 00:06:25 -0400 Subject: [PATCH] feat: enhance client template repository --- .gitmodules | 5 +++++ .vscode/README.md | 16 ++++++++++++++++ .vscode/extensions.json | 1 + .vscode/launch.json | 3 +++ .vscode/settings.json | 1 + .vscode/tasks.json | 0 CHANGELOG.md | 5 ++--- README.md | 22 ++++++++++++++++++++-- admin/README.md | 0 brand/README.md | 13 +++++++++++++ config/.env.example | 8 ++++++++ config/README.md | 12 ++++++++++++ config/config.encrypted.yml | 0 data/README.md | 12 ++++++++++++ data/cache/README.md | 8 ++++++++ data/metadata/README.md | 5 +++++ data/model/README.md | 21 +++++++++++++++++++++ data/model/model.dbml | 0 data/model/model.postgres.sql | 0 data/original/README.md | 33 +++++++++++++++++++++++++++++++++ data/reference/README.md | 5 +++++ data/working/README.md | 8 ++++++++ docs/about.md | 0 docs/decisions/00-template.md | 0 docs/decisions/index.md | 0 docs/development/index.md | 0 docs/development/techstack.md | 0 docs/index.md | 0 docs/team.md | 0 src/README.md | 6 ++++++ tools/README.md | 4 ++++ 31 files changed, 183 insertions(+), 5 deletions(-) create mode 100644 .gitmodules create mode 100644 .vscode/README.md create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 admin/README.md create mode 100644 brand/README.md create mode 100644 config/.env.example create mode 100644 config/README.md create mode 100644 config/config.encrypted.yml create mode 100644 data/README.md create mode 100644 data/cache/README.md create mode 100644 data/metadata/README.md create mode 100644 data/model/README.md create mode 100644 data/model/model.dbml create mode 100644 data/model/model.postgres.sql create mode 100644 data/original/README.md create mode 100644 data/reference/README.md create mode 100644 data/working/README.md create mode 100644 docs/about.md create mode 100644 docs/decisions/00-template.md create mode 100644 docs/decisions/index.md create mode 100644 docs/development/index.md create mode 100644 docs/development/techstack.md create mode 100644 docs/index.md create mode 100644 docs/team.md create mode 100644 src/README.md create mode 100644 tools/README.md diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2e05016 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,5 @@ +# Git Sub Modules + +# [submodule "submodule"] +# path = src/ +# url = https://github.com/noclocks/.git diff --git a/.vscode/README.md b/.vscode/README.md new file mode 100644 index 0000000..d57e832 --- /dev/null +++ b/.vscode/README.md @@ -0,0 +1,16 @@ +# VSCode Folder + +> [!NOTE] +> The `.vscode` directory contains files that are used to configure Visual Studio Code for the repository. + +The `.vscode` directory contains the following files: + +- [`extensions.json`](./extensions.json): A default `extensions.json` file that can be used to install recommended extensions for the repository. + +- [`settings.json`](./settings.json): A default `settings.json` file that can be used to configure settings for the repository. + +- [`launch.json`](./launch.json): A default `launch.json` file that can be used to configure launch configurations for the repository. + +- [`tasks.json`](./tasks.json): A default `tasks.json` file that can be used to configure tasks for the repository. + +- [`README.md`](./README.md): A default `README.md` file that can be used to provide information about the `.vscode` directory. diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1 @@ +{} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..bef6011 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,3 @@ +{ + "configurations": [] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..e69de29 diff --git a/CHANGELOG.md b/CHANGELOG.md index 865096d..b476c51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,7 @@ # Changelog -> All notable changes to this project will be documented in this file. The format is based on -[Keep a Changelog](http://keepachangelog.com/) and this project adheres to -[Semantic Versioning](http://semver.org/). +> All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) +> and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] diff --git a/README.md b/README.md index ea1abc6..06cf3b6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,20 @@ -# template-client-repo -Template Client Repository +# Template Client Repository + +> [!NOTE] +> This is a template repository for a high-level *client repository* meant to store all client-related files and assets as well as any potential +> projects and/or source code in the form of a git-submoduled mono-repo. + +> [!WARNING] +> This repository is meant to be used as a template for creating a new client repository and should not be used as a client repository itself. + +*** + +## Contents + +- [admin](admin/): Administrative Files +- [brand](brand/): Client Brand Assets +- [config](config/): Configuration Files +- [data](data/): Data Files +- [docs](docs/): Documentation +- [src](src): Client Project Source Code +- [tools](tools/): Tools diff --git a/admin/README.md b/admin/README.md new file mode 100644 index 0000000..e69de29 diff --git a/brand/README.md b/brand/README.md new file mode 100644 index 0000000..1af68b0 --- /dev/null +++ b/brand/README.md @@ -0,0 +1,13 @@ +# Client Brand + +> [!NOTE] +> Store client brand assets here. This includes logos, color palettes, fonts, images and other asociated or derived +> branding assets for the client. + +## Contents + +- [logos](logos/): Client Logos +- [colors](colors/): Client Color Palettes +- [fonts](fonts/): Client Fonts +- [images](images/): Client Images +- [other](other/): Other Branding Assets diff --git a/config/.env.example b/config/.env.example new file mode 100644 index 0000000..fe26689 --- /dev/null +++ b/config/.env.example @@ -0,0 +1,8 @@ +# example dotenv + +# Database +POSTGRES_USER=postgres +POSTGRES_PASSWORD=postgres +POSTGRES_DB=postgres +POSTGRES_HOST=db +POSTGRES_PORT=5432 diff --git a/config/README.md b/config/README.md new file mode 100644 index 0000000..894905e --- /dev/null +++ b/config/README.md @@ -0,0 +1,12 @@ +# Configuration + +> [!NOTE] +> Store configuration files here. This includes configuration files for the data processing pipeline, models, and other +> code used in the project. +> +> Typical configuration files include a primary `config.yml`, cloud `credentials.json`, tool-specific configuration files (i.e. `slack.yml`), +> and other configuration files specific to the client or client project(s). + +## Contents + +- [config.template.yml](config.template.yml): A template configuration file that can be used to create a `config.yml` file. diff --git a/config/config.encrypted.yml b/config/config.encrypted.yml new file mode 100644 index 0000000..e69de29 diff --git a/data/README.md b/data/README.md new file mode 100644 index 0000000..ff195bd --- /dev/null +++ b/data/README.md @@ -0,0 +1,12 @@ +# Data + +> [!NOTE] +> Store data here. This includes raw data, working data, metadata, and reference data. + +## Contents + +- [Cache](cache/README.md) +- [Metadata](metadata/README.md) +- [Model](model/README.md) +- [Reference](reference/README.md) +- [Working](working/README.md) diff --git a/data/cache/README.md b/data/cache/README.md new file mode 100644 index 0000000..ccb703d --- /dev/null +++ b/data/cache/README.md @@ -0,0 +1,8 @@ +# Cache + +> [!NOTE] +> Store `cache` data here, or *interim* data that is generated during the data processing pipeline and cached to speed up +> processing. Typically anything in this folder will be `.gitignore`'d. +> +> For `R` projects, we use the `qs` (quick serialization) package to cache data. This is a good practice to speed up +> processing and avoid re-running expensive data processing steps. diff --git a/data/metadata/README.md b/data/metadata/README.md new file mode 100644 index 0000000..52e3c4c --- /dev/null +++ b/data/metadata/README.md @@ -0,0 +1,5 @@ +# Metadata + +> [!NOTE] +> Store metadata here. This includes information about the data, such as data sources, data dictionary, data issues, +> data processing, and data transformation. diff --git a/data/model/README.md b/data/model/README.md new file mode 100644 index 0000000..76f4f8f --- /dev/null +++ b/data/model/README.md @@ -0,0 +1,21 @@ +# Data Model (Schema) + +> [!NOTE] +> Store the *data model* here. This is not relevant for all projects, but is useful for projects that have a +> database or data structures that need to be documented. + +## Conceptual Data Model + +Describe the high-level data model here. + +## Logical Data Model + +Describe the logical data model here. + +## Physical Data Model + +Describe the physical data model here. + +## Database Schema + +Describe the database schema here. diff --git a/data/model/model.dbml b/data/model/model.dbml new file mode 100644 index 0000000..e69de29 diff --git a/data/model/model.postgres.sql b/data/model/model.postgres.sql new file mode 100644 index 0000000..e69de29 diff --git a/data/original/README.md b/data/original/README.md new file mode 100644 index 0000000..80ed66f --- /dev/null +++ b/data/original/README.md @@ -0,0 +1,33 @@ +# Original Data + +> [!NOTE] +> Store `raw` data recieved from the client here. +> This data should be stored in its original format and should not be modified in any way. + +## Data Sources + +- [Data Source 1](https://www.example.com/data1) + +## Data Dictionary + +- `column1`: Description of column1 +- `column2`: Description of column2 +- `column3`: Description of column3 + +## Data Issues + +- Issue 1 +- Issue 2 +- Issue 3 + +## Data Processing + +- Step 1: Description of step 1 +- Step 2: Description of step 2 +- Step 3: Description of step 3 + +## Data Transformation + +- Transformation 1: Description of transformation 1 +- Transformation 2: Description of transformation 2 +- Transformation 3: Description of transformation 3 diff --git a/data/reference/README.md b/data/reference/README.md new file mode 100644 index 0000000..d21e36c --- /dev/null +++ b/data/reference/README.md @@ -0,0 +1,5 @@ +# Reference Data + +> [!NOTE] +> Store `reference` data here. This includes any data that is used as a reference in the project, such as lookup tables, code +> lists, or other data that is used to enrich or augment the data. diff --git a/data/working/README.md b/data/working/README.md new file mode 100644 index 0000000..dd3a4fe --- /dev/null +++ b/data/working/README.md @@ -0,0 +1,8 @@ +# Working Data + +> [!NOTE] +> Store `working` data here. This is data that has been cleaned, transformed, processed, and is ready for analysis. +> Do not store any raw data in this folder. This data should be stored in the `original` folder. + +> [!WARNING] +> Any manual steps taken to clean or transform the data should be documented. diff --git a/docs/about.md b/docs/about.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/decisions/00-template.md b/docs/decisions/00-template.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/decisions/index.md b/docs/decisions/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/development/index.md b/docs/development/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/development/techstack.md b/docs/development/techstack.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/team.md b/docs/team.md new file mode 100644 index 0000000..e69de29 diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..0d3bdea --- /dev/null +++ b/src/README.md @@ -0,0 +1,6 @@ +# Source Code + +> [!NOTE] +> Store source code here. For client repositories, this will typically be code held in other repositories and +> referenced as submodules. For internal repositories, this will be the code that is used to generate the data +> processing pipeline, models, and other code used in the project. diff --git a/tools/README.md b/tools/README.md new file mode 100644 index 0000000..4dbe28f --- /dev/null +++ b/tools/README.md @@ -0,0 +1,4 @@ +# Tools + +> [!NOTE] +> Store tools here. This includes scripts, software, and other tools used in the project.