Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
5670210
ignore node_modules
dendenso May 1, 2025
bd0ddba
Looking to have this type of feel to it
James-Cheaper May 1, 2025
39a2a57
wip
Urbanmisfit90 May 5, 2025
d72e355
wip
Urbanmisfit90 May 6, 2025
c18bae0
Merge pull request #7 from Urbanmisfit90/main
James-Cheaper May 7, 2025
e6fb29f
input image
dendenso May 7, 2025
c64fae1
workflow
dendenso May 7, 2025
1d1dde6
Merge branch 'main' of https://github.com/James-Cheaper/cheaperFrontE…
dendenso May 7, 2025
17eab5f
remove image
dendenso May 7, 2025
fef0cf2
wordmark image added
dendenso May 7, 2025
1186bb8
added to git ignore list and removed @wext/validate
dendenso May 7, 2025
02bb14e
increased code coverage
dendenso May 10, 2025
65efd6c
placeholder
dendenso May 10, 2025
8552d04
remove wext agane
dendenso May 10, 2025
f7c5e84
remove wext from build workflow
dendenso May 10, 2025
8d2ec8c
syntax for lighthouse
dendenso May 10, 2025
e8fb4cb
additional chrome flags
dendenso May 10, 2025
6d4aea0
added s to http://localhost:3000
dendenso May 10, 2025
bdf1f71
circumventing security
dendenso May 10, 2025
87822ad
edit build file to wait for server to load
dendenso May 10, 2025
1ad54b7
further troubleshooting
dendenso May 10, 2025
bd9304b
sleep before verify to wait for server to start
dendenso May 10, 2025
93d4f37
health monitoring check
dendenso May 10, 2025
ac10450
more logs
dendenso May 10, 2025
456ca56
yaml troubleshooting
dendenso May 10, 2025
75e3ac1
included icon images
dendenso May 11, 2025
ec74831
added base apple image
dendenso May 11, 2025
44c5396
reduce retries and renamed
dendenso May 11, 2025
ff2a6dd
nomenclature
dendenso May 11, 2025
f039ea5
potential fix
dendenso May 11, 2025
ed8c6aa
precedence and added additional check for the icons
dendenso May 11, 2025
eba8c48
change some things with build
dendenso May 11, 2025
df35610
indenting and naming
dendenso May 11, 2025
59ff866
syntax
dendenso May 11, 2025
08a1f3a
replaced eslintrc to eslint.config.js
dendenso May 11, 2025
de59c29
removed root
dendenso May 11, 2025
4cae658
lint
dendenso May 11, 2025
f5e7f4d
formatting and conversion of file type
dendenso May 11, 2025
89dcf4b
new package
dendenso May 22, 2025
3026c16
troubleshooting to 9+ eslint
dendenso May 22, 2025
e497e06
added type module to package json
dendenso May 22, 2025
25c4a33
eslint 9.27
dendenso May 22, 2025
cb46afe
install eslintrc through npm
dendenso May 22, 2025
1057a24
eslintrc and removed type:module
dendenso May 22, 2025
3ca98cc
fresh package-lock.json
dendenso May 22, 2025
a2b1d9c
eslint8 hardcoded
dendenso May 22, 2025
a141d9d
troubleshooting build
dendenso May 22, 2025
6f3a202
lighthouse edits
dendenso May 22, 2025
2180c62
small syntax issues
dendenso May 22, 2025
fac0a29
tweaks to index.html
dendenso May 22, 2025
f4da827
so need to make a maskable icon and create a separate manifest for li…
dendenso May 22, 2025
c6318a4
put in some syntax tweaking and pathing
dendenso May 22, 2025
379ee08
naming
dendenso May 22, 2025
6279d6c
edit service worker and index.html dupes, serviceworker script
dendenso May 22, 2025
a2027db
added logs for troubleshooting
dendenso May 22, 2025
e7b8f16
url change
dendenso May 22, 2025
7814cc3
build errors and precedence
dendenso May 22, 2025
7f5ff5d
updated with a copyAssets script and making it viable for node.js
dendenso May 22, 2025
0647573
installed serve and npx for production build within the build file
dendenso May 22, 2025
2f93b43
installed wait-on dependency for server to load
dendenso May 22, 2025
af1f369
some command tweaking
dendenso May 22, 2025
c212943
lighthouse edits
dendenso May 22, 2025
28953c7
naming
dendenso May 22, 2025
08732a6
dotfiles
dendenso May 22, 2025
8125f8c
remove artifact
dendenso May 22, 2025
baea9cc
temporarily remove lighthouse until further notice
dendenso May 22, 2025
bf92f3b
remove package size step
dendenso May 22, 2025
ccbe0d4
manifest build saved
dendenso May 22, 2025
6274f25
Merge pull request #14 from James-Cheaper/JamesFixBuildYml
James-Cheaper May 22, 2025
5a325b0
wip
Urbanmisfit90 May 30, 2025
00beb82
wip
Urbanmisfit90 May 31, 2025
d3e93d5
wip
Urbanmisfit90 Jun 13, 2025
21ec535
wip
Urbanmisfit90 Jun 14, 2025
bd52f99
wip
Urbanmisfit90 Jun 14, 2025
23875e0
wip
Urbanmisfit90 Jun 17, 2025
293f5d4
wip
Urbanmisfit90 Jun 17, 2025
bff8d78
wip
Urbanmisfit90 Jun 18, 2025
e7411af
Update: adjusted tests, sign in, sign up and layout
Urbanmisfit90 Jun 25, 2025
d034385
wip
Urbanmisfit90 Jun 26, 2025
11f2bf5
Regenerated package-lock.json to sync with package.json
Urbanmisfit90 Jun 26, 2025
a13a61a
wip
Urbanmisfit90 Jun 26, 2025
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
41 changes: 41 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
module.exports = {
parser: "@babel/eslint-parser",
parserOptions: {
requireConfigFile: false,
babelOptions: {
presets: ["@babel/preset-react"],
},
ecmaVersion: "latest",
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
},
env: {
browser: true,
node: true,
es6: true,
jest: true,
},
plugins: ["react", "react-hooks", "jsx-a11y"],
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:jsx-a11y/recommended",
],
settings: {
react: {
version: "detect",
},
},
rules: {
"no-console": ["warn", { allow: ["warn", "error"] }],
eqeqeq: ["error", "always"],
"no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
"react/prop-types": "off",
"react/react-in-jsx-scope": "off",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
},
};
152 changes: 152 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
name: CI Pipeline (Lint + Build + Test + Validate)

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

env:
CI: true
NODE_VERSION: '18'

jobs:
lint_and_test:
name: Lint & Test
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'

- name: Install ESLintv8
run: npm install --save-dev eslint@8

- name: Run ESLint
run: npx eslint src --ext .js,.jsx --max-warnings=0

- name: Run Jest tests
run: npm run test:ci

# - name: Run Lighthouse CI
# run: npx lhci autorun --config=.lighthouserc.js

- name: Upload test coverage
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage/
retention-days: 7

build_and_validate:
name: Build & Validate
runs-on: ubuntu-latest
needs: lint_and_test
strategy:
matrix:
node-version: [18.x]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Install serve
run: npm install -g serve

- name: Build project
run: |
npm run build
ls -la build

- name: Set Public Url
run: echo "PUBLIC_URL=." >> $GITHUB_ENV

- name: Start Server and Log Output
run: |
npx serve -s build -l 8080 > server.log 2>&1 &

- name: Wait for server
run: npx wait-on http://localhost:8080

- name: Display Server Logs
run: cat server.log

- name: verify server running
run: |
for i in {1..3}; do
echo "Attempt $i to check server status..."
if curl -s http://localhost:8080 | grep -q "<html>"; then
echo "Server is up!"
break
else
echo "Server not ready yet... retrying in 5 seconds"
sleep 5
fi
done
curl -I http://localhost:8080 || (echo "Server is not running after 3 attempts" && exit 1)

- name: Check service worker
run: |
grep -i "serviceWorker" build/index.html || echo "❌ No service worker registered"
ls build/service-worker.js || echo "❌ service-worker.js not found"

- name: List build content
run: ls -la build

- name: Log server contents
run: cat server.log

- name: Debug loaded HTML
run: curl -s http://localhost:8080 | tee page.html

- name: Debug Build Output
run: |
echo "🔍 Build manifest.json:"
cat build/manifest.json || echo "❌ manifest.json missing"

echo "🔍 Check index.html for manifest link:"
grep -i "manifest" build/index.html || echo "❌ Manifest not linked"

echo "🔍 Apple touch icon:"
grep -i "apple-touch-icon" build/index.html || echo "❌ Not linked"

echo "🔍 Check icons folder:"
ls -lh build/icons || echo "❌ Icons folder missing"
#
# - name: Run Lighthouse audit
# uses: treosh/lighthouse-ci-action@v9
# with:
# configPath: './.lighthouserc.json'
# temporaryPublicStorage: false

# - name: Check bundle size
# run: |
# npm install -g size-limit
# size-limit

- name: Package Extension
run: npm run package

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: production-artifacts
path: |
build/
dist/
retention-days: 7
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#node modules take up alot of space after npm install
#build related
node_modules
/build
/dist
*.map

#logs
logs
*.log
npm-debug.log*

# Mac related commits
.DS_Store
.AppleDouble
.LSOverride
Icon
#linux related commits
*~

#sensitive code
.settings/
.vscode/
coverage/
25 changes: 25 additions & 0 deletions .lighthouserc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"ci": {
"collect": {
"url": ["http://localhost:8080"],
"numberOfRuns": 3,
"settings": {
"chromeFlags": " --enable-logging =stderr --v=1 --no-sandbox --headless --ignore-certificate-errors",
"onlyCategories": ["performance", "accessibility", "best-practices", "seo"]
}
},
"assert": {
"preset": "lighthouse:recommended",
"assertions": {
"categories:performance": ["error", {"minScore": 0.9}],
"categories:accessibility": ["error", {"minScore": 0.95}],
"categories:best-practices": ["error", {"minScore": 0.9}],
"categories:seo": ["error", {"minScore": 0.9}]
}
},
"upload":{
"target": "temporary-public-storage"
}
}
}

28 changes: 0 additions & 28 deletions build.yml

This file was deleted.

24 changes: 24 additions & 0 deletions coverage/clover.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1746909840920" clover="3.2.0">
<project timestamp="1746909840920" name="All files">
<metrics statements="15" coveredstatements="14" conditionals="9" coveredconditionals="8" methods="6" coveredmethods="5" elements="30" coveredelements="27" complexity="0" loc="15" ncloc="15" packages="1" files="1" classes="1"/>
<file name="App.js" path="D:\Cheaper\cheaperFrontEnd\cheaperFrontEnd\src\App.js">
<metrics statements="15" coveredstatements="14" conditionals="9" coveredconditionals="8" methods="6" coveredmethods="5"/>
<line num="6" count="9" type="stmt"/>
<line num="7" count="9" type="stmt"/>
<line num="8" count="9" type="stmt"/>
<line num="9" count="9" type="stmt"/>
<line num="11" count="9" type="stmt"/>
<line num="12" count="1" type="stmt"/>
<line num="13" count="1" type="stmt"/>
<line num="16" count="1" type="stmt"/>
<line num="17" count="1" type="stmt"/>
<line num="23" count="1" type="stmt"/>
<line num="24" count="1" type="stmt"/>
<line num="28" count="9" type="stmt"/>
<line num="45" count="3" type="stmt"/>
<line num="60" count="1" type="stmt"/>
<line num="70" count="0" type="stmt"/>
</file>
</project>
</coverage>
2 changes: 2 additions & 0 deletions coverage/coverage-final.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{"D:\\Cheaper\\cheaperFrontEnd\\cheaperFrontEnd\\src\\App.js": {"path":"D:\\Cheaper\\cheaperFrontEnd\\cheaperFrontEnd\\src\\App.js","statementMap":{"0":{"start":{"line":6,"column":44},"end":{"line":6,"column":56}},"1":{"start":{"line":7,"column":40},"end":{"line":7,"column":55}},"2":{"start":{"line":8,"column":40},"end":{"line":8,"column":55}},"3":{"start":{"line":9,"column":56},"end":{"line":9,"column":68}},"4":{"start":{"line":11,"column":23},"end":{"line":26,"column":3}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":25}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":25}},"7":{"start":{"line":16,"column":4},"end":{"line":25,"column":13}},"8":{"start":{"line":17,"column":26},"end":{"line":21,"column":7}},"9":{"start":{"line":23,"column":6},"end":{"line":23,"column":36}},"10":{"start":{"line":24,"column":6},"end":{"line":24,"column":28}},"11":{"start":{"line":28,"column":2},"end":{"line":78,"column":4}},"12":{"start":{"line":45,"column":14},"end":{"line":51,"column":20}},"13":{"start":{"line":60,"column":23},"end":{"line":60,"column":94}},"14":{"start":{"line":70,"column":27},"end":{"line":70,"column":53}}},"fnMap":{"0":{"name":"App","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":12}},"loc":{"start":{"line":5,"column":15},"end":{"line":79,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":23},"end":{"line":11,"column":24}},"loc":{"start":{"line":11,"column":39},"end":{"line":26,"column":3}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":15},"end":{"line":16,"column":16}},"loc":{"start":{"line":16,"column":21},"end":{"line":25,"column":5}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":44,"column":30},"end":{"line":44,"column":31}},"loc":{"start":{"line":45,"column":14},"end":{"line":51,"column":20}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":60,"column":17},"end":{"line":60,"column":18}},"loc":{"start":{"line":60,"column":23},"end":{"line":60,"column":94}},"line":60},"5":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":21},"end":{"line":70,"column":22}},"loc":{"start":{"line":70,"column":27},"end":{"line":70,"column":53}},"line":70}},"branchMap":{"0":{"loc":{"start":{"line":35,"column":7},"end":{"line":37,"column":7}},"type":"binary-expr","locations":[{"start":{"line":35,"column":7},"end":{"line":35,"column":18}},{"start":{"line":36,"column":8},"end":{"line":36,"column":71}}],"line":35},"1":{"loc":{"start":{"line":39,"column":7},"end":{"line":57,"column":7}},"type":"binary-expr","locations":[{"start":{"line":39,"column":7},"end":{"line":39,"column":19}},{"start":{"line":39,"column":23},"end":{"line":39,"column":34}},{"start":{"line":40,"column":8},"end":{"line":56,"column":14}}],"line":39},"2":{"loc":{"start":{"line":43,"column":11},"end":{"line":55,"column":11}},"type":"cond-expr","locations":[{"start":{"line":44,"column":12},"end":{"line":52,"column":14}},{"start":{"line":54,"column":12},"end":{"line":54,"column":88}}],"line":43},"3":{"loc":{"start":{"line":66,"column":7},"end":{"line":76,"column":7}},"type":"binary-expr","locations":[{"start":{"line":66,"column":7},"end":{"line":66,"column":26}},{"start":{"line":67,"column":8},"end":{"line":75,"column":14}}],"line":66}},"s":{"0":9,"1":9,"2":9,"3":9,"4":9,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":9,"12":3,"13":1,"14":0},"f":{"0":9,"1":1,"2":1,"3":3,"4":1,"5":0},"b":{"0":[9,1],"1":[9,8,1],"2":[1,0],"3":[9,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8167e691cfaee5596c0e870f7ca50a4c7651285f"}
}
Loading
Loading