Skip to content

Commit

Permalink
initial structure
Browse files Browse the repository at this point in the history
  • Loading branch information
skedwards88 committed Feb 25, 2024
0 parents commit 5e534cb
Show file tree
Hide file tree
Showing 42 changed files with 1,316 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
module.exports = {
env: {
node: true,
browser: true,
"shared-node-browser": true,
es2021: true,
jest: true,
},
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
],
overrides: [],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
},
plugins: ["react"],
rules: {
"react/prop-types": "off",
},
ignorePatterns: ["dist/*"],
settings: {
react: {
version: "detect",
},
},
};
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/add_word.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Add word to dictionary
description: Let us know about words that you think should be in the game's dictionary
title: "[Add words]: "
body:
- type: markdown
attributes:
value: |
Note: The repository owner will make the final decision about whether to add words to the dictionary. Words that are deemed uncommon will not be included.
- type: textarea
id: request
attributes:
label: What words do you want to add? (The repository owner will make the final decision about whether to add words to the dictionary. Words that are deemed uncommon will not be included.)
validations:
required: true
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Bug Report
description: Let us know about a bug that you encountered
title: "[Bug]: "
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Please include screenshots to help us understand the problem.
- type: input
id: version
attributes:
label: Version
description: What version of the app are you using? You can find this info by clicking the info button in the app and looking at the version number below the "Play" button.
validations:
required: true
- type: textarea
id: platform
attributes:
label: Platform
description: What device are you using? Please tell us the device, operating system, and browser. (e.g. Google Pixel 6 Pro running Android version 13 and Google Chrome)
placeholder: Please tell us the device, operating system, and browser.
validations:
required: true
- type: textarea
id: bug
attributes:
label: What is wrong?
description: Tell us about the bug that you encountered. Please include screenshots.
placeholder: Please include as much info as possible to help us understand the bug. Screenshots are helpful.
validations:
required: true
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Feature Request
description: Let us know about a feature that you are interested in having
title: "[Request]: "
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to share your thoughts!
- type: textarea
id: request
attributes:
label: What is your request?
description: Tell us about the feature that you would like us to add.
placeholder: Please include as much info as possible to help us understand your request.
validations:
required: true
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/remove_word.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Remove word from dictionary
description: Let us know about words that you think should be removed from the game's dictionary
title: "[Remove words]: "
body:
- type: markdown
attributes:
value: |
Note: The repository owner will make the final decision about whether to remove words to the dictionary.
- type: textarea
id: request
attributes:
label: What words do you want to remove? (The repository owner will make the final decision about whether to remove words from the dictionary.)
validations:
required: true
68 changes: 68 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Deploy static content to Pages

on:
push:
branches: ["main"]
paths-ignore:
- "README.md"
- "TODO.md"
- ".github/ISSUE_TEMPLATE/*"
- ".eslintrc.json"
- ".gitignore"
- ".prettierignore"
- ".prettierrc.json"
- ".stylelintrc.json"
workflow_dispatch:

permissions:
contents: write # Required for bumping version (read-only required for deployment)
pages: write # Required for deployment
id-token: write # Required for deployment

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install requirements
run: npm install

- name: Run tests
run: npm test

- name: Setup git config
run: |
git config --global user.name "skedwards88"
git config --global user.email "skedwards88@gmail.com"
- name: Bump version
run: npm version patch

- name: Push the version bump
run: |
git push origin main
- name: Build
run: npm run build

- name: Setup Pages
uses: actions/configure-pages@v2

- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: "./dist/"

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
26 changes: 26 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Lint

on:
pull_request:

permissions:
contents: read

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install requirements
run: npm ci

- name: Prettier
run: npx prettier -c src/ README.md .github/workflows

- name: ES lint
run: npx eslint --ignore-path .gitignore .

- name: Stylelint
run: npx stylelint '**/*.css'
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
dist
PWA_Builder
.vscode/settings.json
.env
.env.test
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
TODO.md
src/privacy.html
src/App.css
4 changes: 4 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"bracketSpacing": false,
"trailingComma": "all"
}
10 changes: 10 additions & 0 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"extends": "stylelint-config-standard",
"rules": {
"selector-class-pattern": null,
"selector-id-pattern": null,
"custom-property-pattern": null,
"keyframes-name-pattern": null,
"declaration-block-no-redundant-longhand-properties": null
}
}
78 changes: 78 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
## package.json

remove deps if not workd game:

"@skedwards88/word_lists": "latest",
"@skedwards88/word_logic": "2.0.7",
"@babel/plugin-syntax-import-assertions": "^7.22.5",

remove if uneeded

"seedrandom": "3.0.5"
"lodash.clonedeep": "^4.5.0",

bump package versions

## index.js

if custom url instead of default gh pages url, adjust path and scope vars

## .github/ISSUE_TEMPLATE

- If this is a word game:
- Add the `.github/ISSUE_TEMPLATE/add_word.yaml` and `.github/ISSUE_TEMPLATE/remove_word.yaml` issue templates.
- Add any issue templates

## workflows

- If this is a word game:
- Add the `repository_dispatch` trigger to the `.github/workflows/deploy.yml` workflow
- Add the steps to update the word list to the `.github/workflows/deploy.yml` workflow

## jest

- If this is not a word game:
- Remove the transform ignore patterns for word lists/word logic from jest.config.cjs

## readme

customize

## index.html

adust the theme color in index.html
adjust the name and description in index.html
add favicon image, update icons in webpack and in index.html

## privacy

update repo and urls in privacy html

## manifest.json

- if custom url, update start_url
- update name
- update short_name
- update description
- update id
- change or remove orientation if needed
- update background and theme color
- update categories
- update icons
- update screenshots

## images

add an svg favicon and reflect it in webpack and in manifest and in html

delete unneeded icons

## `src/components/Heart.js`

If this isn't a word game, remove the word data attribution

## todo

search for crossjig

TODO disable all workflows in the template repo
18 changes: 18 additions & 0 deletions babel.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
],
"@babel/preset-react"
],
"plugins": [
// required since @skedwards88/word_lists uses
// the import ... assert { type: "json" } syntax
"@babel/plugin-syntax-import-assertions"
]
}
7 changes: 7 additions & 0 deletions jest.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module.exports = {
transform: {
"^.+\\.[jt]sx?$": "babel-jest",
},
// ignore all node modules except @skedwards88/word_lists and @skedwards88/word_logic
transformIgnorePatterns: ['/node_modules/(?!@skedwards88/word_lists|@skedwards88/word_logic)'],
};
58 changes: 58 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"name": "template-app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest",
"build": "webpack",
"dev": "webpack-dev-server --mode development",
"start": "webpack-dev-server",
"eslint": "npx eslint --ignore-path .gitignore . --fix",
"prettier": "npx prettier --write .",
"style": "npx stylelint '**/*.css' --fix",
"lint": "npm run eslint && npm run prettier && npm run style"
},
"repository": {
"type": "git",
"url": "git+https://github.com/skedwards88/template-app.git"
},
"keywords": [],
"author": "",
"license": "",
"bugs": {
"url": "https://github.com/skedwards88/template-app/issues"
},
"homepage": "https://github.com/skedwards88/template-app#readme",
"dependencies": {
"@skedwards88/word_lists": "latest",
"@skedwards88/word_logic": "2.0.7",
"lodash.clonedeep": "^4.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"seedrandom": "3.0.5"
},
"devDependencies": {
"@babel/core": "^7.23.2",
"@babel/plugin-syntax-import-assertions": "^7.22.5",
"@babel/preset-env": "^7.23.2",
"@babel/preset-react": "^7.16.7",
"babel-jest": "^29.7.0",
"babel-loader": "^8.2.3",
"copy-webpack-plugin": "^10.2.4",
"css-loader": "^6.6.0",
"eslint": "^8.11.0",
"eslint-plugin-react": "^7.29.4",
"eslint-plugin-react-hooks": "^4.6.0",
"html-webpack-plugin": "^5.5.0",
"jest": "^29.7.0",
"prettier": "^2.6.0",
"style-loader": "^3.3.1",
"stylelint": "^14.6.0",
"stylelint-config-standard": "^25.0.0",
"webpack": "^5.68.0",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.7.4",
"workbox-webpack-plugin": "^6.5.2"
}
}
Loading

0 comments on commit 5e534cb

Please sign in to comment.