Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
2b5f14c
Require Hello World in the document
acbart Jan 31, 2022
a7dee05
Rename text.Test.tsx to text.test.tsx
acbart Jan 31, 2022
3e381f3
Include the task info
acbart Jan 31, 2022
fee03d3
Merge branch 'task-first-branch' of https://github.com/UD-CISC275-S22…
acbart Jan 31, 2022
986b28a
First stab at questions
acbart Feb 2, 2022
e6b1dab
Allow one or more instances of the Hello World text
acbart Feb 3, 2022
2c852d6
Move Question interface to separate file
acbart Feb 6, 2022
dc3662a
Create answer interface
acbart Feb 8, 2022
51221ee
First stab at nested tasks
acbart Feb 8, 2022
3a793cc
Document Question interface
acbart Feb 9, 2022
5c39a97
Expand questions test data
acbart Feb 9, 2022
6ae0b6f
Add a little hint for a tough one
acbart Feb 9, 2022
b1bbbc8
Nested tests (phew)
acbart Feb 9, 2022
ab9bfb5
Basic starter files for components
acbart Feb 9, 2022
9765863
Another extra paren error
acbart Feb 9, 2022
d6c10cd
Merge branch 'main' of https://github.com/UD-CISC275-S22/react-typesc…
acbart Feb 13, 2022
c0bbc39
Updated, complete tests for all state components
acbart Feb 13, 2022
eb40f3e
Forgot task record for state
acbart Feb 19, 2022
6669ffa
First draft of components subtasks
acbart Feb 19, 2022
562f306
Another subtask, ChooseTeam
acbart Feb 24, 2022
4a34f5f
Oops order out of operations
acbart Feb 24, 2022
7327f4c
Add headers to each subtask
acbart Feb 24, 2022
cf7c212
Make testing easier for these components
acbart Feb 24, 2022
08feee1
Ugh this component is stupid, let's just forget about it for now
acbart Feb 24, 2022
89053a4
Provide the tests for the bad components
acbart Feb 24, 2022
41387d3
First stab at form task components
acbart Feb 25, 2022
1b03faf
Provide tests, change addQuestion to changeColor
acbart Feb 27, 2022
43b41ec
Fix entering blank text for GiveAttempts
acbart Mar 10, 2022
55f976e
Big 2024 update to starter files and workflow
acbart Aug 20, 2024
646e7c8
Merge pull request #1 from frontend-fun/update-branches
acbart Aug 20, 2024
cb2e43c
Create dist directory at start of worfklow
acbart Aug 20, 2024
db36697
Merge pull request #2 from frontend-fun/update-branches
acbart Aug 20, 2024
8764153
Switch jobs back to steps
acbart Aug 20, 2024
c9aba7f
Merge pull request #3 from frontend-fun/update-branches
acbart Aug 20, 2024
52dc1bb
Update react testing library, don't lint jest
acbart Aug 20, 2024
a00615a
Move build to dist
acbart Aug 20, 2024
268363c
Merge pull request #4 from frontend-fun/update-branches
acbart Aug 20, 2024
1ea25a9
Try to make stupid babel plugin warning go away
acbart Aug 20, 2024
0483016
Merge pull request #5 from frontend-fun/update-branches
acbart Aug 20, 2024
7fc5ad2
Simplify integrity checks
acbart Aug 20, 2024
a68506a
Merge pull request #6 from frontend-fun/update-branches
acbart Aug 20, 2024
dbae426
Needed globstar
acbart Aug 20, 2024
a36ba0c
Merge pull request #7 from frontend-fun/update-branches
acbart Aug 20, 2024
eebe36c
Forget globbing
acbart Aug 20, 2024
bbc42c0
Merge pull request #8 from frontend-fun/update-branches
acbart Aug 20, 2024
fcb81f7
Rename deploy script
acbart Aug 20, 2024
214e285
Merge pull request #9 from frontend-fun/update-branches
acbart Aug 20, 2024
7a20734
Include json test command here
acbart Aug 24, 2024
7fe9ca3
Require Hello World in the document
acbart Jan 31, 2022
b8b8878
Include the task info
acbart Jan 31, 2022
fbdebde
Rename text.Test.tsx to text.test.tsx
acbart Jan 31, 2022
2f0146c
Allow one or more instances of the Hello World text
acbart Feb 3, 2022
a6acb43
Merge branch 'task-first-branch' of https://github.com/frontend-fun/t…
acbart Aug 24, 2024
83c4461
Basic functions tests and stubs
acbart Jan 30, 2022
a486530
Fix test organization
acbart Jan 30, 2022
9722564
Fix issue in fahrenheit conversion
acbart Jan 30, 2022
bd06d5d
Move around some of the functions
acbart Feb 3, 2022
4cd1900
Explain what the actual functions require you to do
acbart Feb 3, 2022
cf1d21a
Update formatting
acbart Aug 24, 2024
e11693a
Add in points
acbart Aug 24, 2024
7cc4e3f
First stab at array problems
acbart Feb 1, 2022
f253337
Add in the rest of the tests
acbart Feb 1, 2022
b8777b1
Fix question text
acbart Feb 1, 2022
f87771e
Update arrays.test.ts
acbart Feb 11, 2022
f0d316b
Add in points
acbart Aug 24, 2024
3660252
First stab at questions
acbart Feb 2, 2022
09d3d4f
Move Question interface to separate file
acbart Feb 6, 2022
9a24024
Create answer interface
acbart Feb 8, 2022
879fe17
First stab at nested tasks
acbart Feb 8, 2022
4d29d21
Document Question interface
acbart Feb 9, 2022
d71d9fc
Expand questions test data
acbart Feb 9, 2022
c955718
Add a little hint for a tough one
acbart Feb 9, 2022
c574699
Nested tests (phew)
acbart Feb 9, 2022
a368ad0
Forgot the task record!
acbart Feb 19, 2022
304184e
Fix typo in editOption test, and missing return type for editOption
acbart Mar 1, 2022
1b76b80
Fix formatting
acbart Aug 24, 2024
23314f3
update point values for tests
acbart Aug 24, 2024
82faacc
Fix react return value
acbart Aug 24, 2024
cc7d4db
Update react tests to use async
acbart Aug 24, 2024
c419dc9
Fix linting
acbart Aug 24, 2024
444b03b
Merge branch 'task-state' into task-components
acbart Aug 24, 2024
c1aab28
Merge branch 'update-branches' into task-components
acbart Aug 24, 2024
50a9c85
Update for new react
acbart Aug 24, 2024
28ee8d2
Merge branch 'task-components' into task-forms
acbart Aug 24, 2024
084abb4
Update the code for new version of react
acbart Aug 24, 2024
c95dc0f
This one too
acbart Aug 24, 2024
3119c0f
Add in points
acbart Aug 24, 2024
5c6591e
Upgrade upload-pages-artifact action to v3
acbart Aug 28, 2025
42b33db
Update GitHub Actions workflow for deployment
acbart Aug 28, 2025
747931a
Added name to App
Feb 3, 2026
34ed974
Merge remote-tracking branch 'upstream/task-first-branch' into solved…
hilarezaei Feb 14, 2026
6e5c5d2
Add Hello World text for new test
hilarezaei Feb 14, 2026
1e30e72
Finished HTML CSS task
hilarezaei Feb 16, 2026
8ed6abb
Fix header to include semantic h1 for autograder
hilarezaei Feb 16, 2026
98ad3c2
Merge remote-tracking branch 'upstream/task-functions' into solved-fu…
hilarezaei Feb 23, 2026
654da67
Completed task-functions assignment
hilarezaei Feb 23, 2026
a466cb9
Merge remote-tracking branch 'upstream/task-arrays' into solved-arrays
hilarezaei Feb 23, 2026
3573257
Completed arrays task
hilarezaei Feb 23, 2026
7c17d49
Complete all functions in objects.ts
hilarezaei Mar 5, 2026
06337dd
Resolve merge conflict in objects.ts
hilarezaei Mar 5, 2026
56398f9
Save work before merging task-state
hilarezaei Mar 8, 2026
0cc80f5
Resolve merge conflicts, remove .eslintrc.json, and add task-state co…
hilarezaei Mar 8, 2026
0ba7c68
Resolve merge conflicts and fix nested.test.ts
hilarezaei Mar 9, 2026
c0d6d6a
Finalize all components and pass all tests
hilarezaei Mar 9, 2026
d3ea478
Clean up merge conflict in App.tsx
hilarezaei Mar 9, 2026
4b9eae5
fix: move hooks inside components and fix linter void errors
hilarezaei Mar 9, 2026
c49934c
Resolved merge conflict in App.tsx
hilarezaei Mar 16, 2026
35fbadf
completed all form components and passed all tests
hilarezaei Mar 16, 2026
d437095
Complete all form components and pass all tests
hilarezaei Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .eslintoutputrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"files": [
"."
],
"formats": [
{
"name": "stylish",
"output": "console"
},
{
"name": "html",
"output": "file",
"path": "dist/lint.html",
"id": "html"
}
],
"eslintConfig": {}
}
99 changes: 99 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
module.exports = {
env: {
es2022: true,
node: true,
browser: true,
},
settings: {
react: {
version: "detect",
},
},
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
],
root: true,
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint", "react"],
overrides: [
{
files: ["src/**/*.test.ts", "src/**/*.test.tsx"],
env: {
jest: true,
},
},
],
parserOptions: {
ecmaVersion: 12,
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
project: ["./tsconfig.json"],
},
ignorePatterns: [".eslintrc.js", "jest.config.js"],
rules: {
// https://stackoverflow.com/questions/57802057/eslint-configuring-no-unused-vars-for-typescript
// Use typescript's checker for unused vars (critical for Enums)
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error"],
// https://typescript-eslint.io/rules/no-use-before-define
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": "error",

// https://typescript-eslint.io/rules/ban-ts-comment
// Disallow @ts-<directive> comments or require descriptions after directives.
"@typescript-eslint/ban-ts-comment": "error",

// https://typescript-eslint.io/rules/no-explicit-any
// Disallow the any type.
//"@typescript-eslint/no-explicit-any": "error",

// https://typescript-eslint.io/rules/no-unsafe-assignment
// Disallow assigning a value with type any to variables and properties.
"@typescript-eslint/no-unsafe-assignment": "error",

// https://typescript-eslint.io/rules/no-unsafe-return
// Disallow returning a value with type any from a function.
"@typescript-eslint/no-unsafe-return": "error",

// https://typescript-eslint.io/rules/ban-types
// Disallow certain types.
"@typescript-eslint/no-restricted-types": [
"error",
{
types: {
unknown:
"That is not allowed in this course. You should be able to specify the type more clearly!",
any: "That is not allowed in this course. You should be able to figure out the type!",
},
},
],
// https://typescript-eslint.io/rules/no-array-constructor
// Disallow generic Array constructors.
"no-array-constructor": "off",
"@typescript-eslint/no-array-constructor": "error",

// https://typescript-eslint.io/rules/no-base-to-string
// Require .toString() to only be called on objects which provide useful information when stringified.
"@typescript-eslint/no-base-to-string": "error",

// https://typescript-eslint.io/rules/no-confusing-void-expression
// Require expressions of type void to appear in statement position.
"@typescript-eslint/no-confusing-void-expression": "error",

// https://typescript-eslint.io/rules/no-for-in-array
// Disallow iterating over an array with a for-in loop. (Force for-of instead!)
"@typescript-eslint/no-for-in-array": "error",

// https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare
// Disallow unnecessary equality comparisons against boolean literals.
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",

// https://typescript-eslint.io/rules/no-unnecessary-condition
// Disallow conditionals where the type is always truthy or always falsy.
"@typescript-eslint/no-unnecessary-condition": "error",
},
};
49 changes: 0 additions & 49 deletions .eslintrc.json

This file was deleted.

154 changes: 154 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# Workflow for publishing the students' website along with additional helpful information

name: Deploy main branch as website

on:
push:
branches: [main]
workflow_dispatch:

# Required permissions for Pages v4 + artifact v4
permissions:
actions: read # NEW: required by deploy-pages@v4
contents: read
pages: write
id-token: write

# Only one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
deploy:
runs-on: ubuntu-latest

# Recommended for Pages so the URL shows on the run summary
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- id: get-repo-values
name: Get repository values
run: |
url=https://$(echo "${{ github.repository }}" | sed "s/\//.github.io\//")
echo "url=$url" >> $GITHUB_OUTPUT

- name: Update package.json homepage
uses: jossef/action-set-json-field@v1
with:
file: package.json
field: homepage
value: ${{ steps.get-repo-values.outputs.url }}

# create_redirects
- name: Create Redirects and Links
id: create_redirects
run: |
mkdir -p dist
echo "<html><head>\
<meta http-equiv='refresh' content='0; URL=${{github.server_url}}/${{github.repository}}' />\
</head><body>Redirecting to repository</body></html>" > ./dist/repo.html
mkdir -p docs
cp README.md docs/index.md
echo "# Quick Links" > docs/quick-links.md
echo "* [Repository](../repo.html)" >> docs/quick-links.md
echo "<html><head>\
<meta http-equiv='refresh' content='0; URL=docs/quick-links' />\
</head><body>Redirecting to quick links page</body></html>" > ./dist/quick.html

# Install node packages
- name: Install
id: install
run: |
echo "<html><body><pre>" > ./dist/installation.html
npm ci |& tee -a ./dist/installation.html
echo "</pre></body></html>" >> ./dist/installation.html
echo "* [Installation](../installation.html)" >> docs/quick-links.md

# Run linter (ensure your script writes dist/lint.html)
- name: Run Linter
id: lint
run: |
npm run eslint-output
echo "* [Linter](../lint.html)" >> docs/quick-links.md

# Build the project
- name: Build the project
id: build
run: |
echo "<html><body><pre>" > ./dist/build.html
npm run build |& tee -a ./dist/build.html
mv ./build/* ./dist
echo "</pre></body></html>" >> ./dist/build.html
echo "* [Build](../build.html)" >> docs/quick-links.md

# Run Tests
- name: Run Tests
id: test
run: |
echo "<html><body><pre>" > ./dist/tests.html
npm test -- --coverage |& tee -a ./dist/tests.html
echo "</pre></body></html>" >> ./dist/tests.html
echo "* [Tests](../tests.html)" >> docs/quick-links.md

# Verify Integrity
- name: Verify Integrity
if: ${{ !cancelled() }}
id: integrity
run: |
echo "<html><body><pre>" > ./dist/integrity.html
find src -type f -name "*.test.ts" -exec md5sum {} + >> ./dist/integrity.html
find src -type f -name "*.test.tsx" -exec md5sum {} + >> ./dist/integrity.html
md5sum .eslintrc.js >> ./dist/integrity.html
md5sum jest.config.js >> ./dist/integrity.html
md5sum tsconfig.json >> ./dist/integrity.html
md5sum .github/workflows/deploy.yml >> ./dist/integrity.html
echo "</pre></body></html>" >> ./dist/integrity.html
echo "* [Integrity](../integrity.html)" >> docs/quick-links.md

# Create GitInspector Report
- name: Create GitInspector Report
if: ${{ !cancelled() }}
id: gitinspector
run: |
git clone https://github.com/jpwhite3/gitinspector.git
python ./gitinspector/gitinspector.py ./ --grading --format=html -f tsx,ts,html,css -x ./gitinspector -x ./node_modules -x ./wbcore > ./dist/git.html
echo "* [Git Inspector](../git.html)" >> docs/quick-links.md

# Generate HTML from Markdown in Docs/
- name: Generate HTML from Markdown in Docs/
if: ${{ !cancelled() }}
id: markdown-docs
uses: ldeluigi/markdown-docs@latest
with:
src: docs
dst: dist/docs/

# Pages
- name: Setup Pages
if: ${{ !cancelled() }}
uses: actions/configure-pages@v5

- name: Upload artifact (for Pages)
if: ${{ !cancelled() }}
uses: actions/upload-pages-artifact@v4
with:
path: "dist/"

- name: Deploy to GitHub Pages
if: ${{ !cancelled() }}
id: deployment
uses: actions/deploy-pages@v4
52 changes: 0 additions & 52 deletions .github/workflows/node.js.yml

This file was deleted.

Loading