Feedback#1
Conversation
…for any test cases that need to pass for CI check to pass
… exiting with code 1
Feature/initial docker setup
AI percentage
Hotfix/missing expo package
Iteration 1 documentation update. Bypassing the PR code review rule by one approver as discussed during team meeting to get release of iteration 1 out.
merge all update from development branch to main. Bypassing the PR code review rule by one approver as discussed during team meeting to get release of iteration 1 out.
iteration 1 documents update
* Add playable Game1 & Game2 with GameMenu and required components * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com>
* simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * hotfix: Docker+Expo runbook, compose cleanup, frontend auth feedback (#26) * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Feature/game1 (#29) * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * ran npm install to update package-lock.json * change linting to accept browser globals --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Feature/buddy pictures (#23) * update .gitignore * made Cat study buddy * changed default color of cat to orange * added comments * reformated cat buddy to make further buddy creation easier * generalize eyes so they can be used with all buddies * use backticks to create strings for easier reading * added dead eyes * added other eye styles * added comments * added a deer * added buddy to home screen * changed cat to be react components instead of functions * changed deer to react component * buddy status connected to backend * changed location of buddyEyes.js * removed console.log statement * changed buddies to use viewBox for easier to read code * change size based on exp * added comments * changed tests to fit new Home screen * removed package-lock from .gitignore * changed function into React Hook * added default buddy values --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Add react-native-svg dependency and keep buddy visible when API has no data (#32) * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend (#33) * iteration 1 documents update * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.1 to 7.5.2. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v7.5.1...v7.5.2) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update team.md (#19) * iteration 1 documents update * update team.md --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> * Timer (#25) * Timer * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * change initial route for login (#35) * Game Page UI (#34) * Game Page UI * Update GameMenu.test.js * unit test update * initial route fixed --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * merge feature/game1 into develop * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip * fix testing * Updated documents for iteration 2 (#42) * updated documents for iteration 2 * update docs for iteration2 * updated progress report --------- Co-authored-by: QtinzIa <qtin28@gmail.com> * Prepare merge (#43) * iteration 1 documents update * Feature/game1 (#37) * Add playable Game1 & Game2 with GameMenu and required components * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Revert "Feature/game1 (#37)" (#41) This reverts commit da14612. --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com>
Bumps and [js-yaml](https://github.com/nodeca/js-yaml). These dependencies needed to be updated together. Updates `js-yaml` from 3.14.1 to 3.14.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](isaacs/node-glob@v10.4.5...v10.5.0) --- updated-dependencies: - dependency-name: glob dependency-version: 10.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com>
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com>
* simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * hotfix: Docker+Expo runbook, compose cleanup, frontend auth feedback (#26) * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Feature/game1 (#29) * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * ran npm install to update package-lock.json * change linting to accept browser globals --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Feature/buddy pictures (#23) * update .gitignore * made Cat study buddy * changed default color of cat to orange * added comments * reformated cat buddy to make further buddy creation easier * generalize eyes so they can be used with all buddies * use backticks to create strings for easier reading * added dead eyes * added other eye styles * added comments * added a deer * added buddy to home screen * changed cat to be react components instead of functions * changed deer to react component * buddy status connected to backend * changed location of buddyEyes.js * removed console.log statement * changed buddies to use viewBox for easier to read code * change size based on exp * added comments * changed tests to fit new Home screen * removed package-lock from .gitignore * changed function into React Hook * added default buddy values --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Add react-native-svg dependency and keep buddy visible when API has no data (#32) * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend (#33) * iteration 1 documents update * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.1 to 7.5.2. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v7.5.1...v7.5.2) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update team.md (#19) * iteration 1 documents update * update team.md --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> * Timer (#25) * Timer * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * change initial route for login (#35) * Game Page UI (#34) * Game Page UI * Update GameMenu.test.js * unit test update * initial route fixed --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * merge feature/game1 into develop * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip * fix testing * Updated documents for iteration 2 (#42) * updated documents for iteration 2 * update docs for iteration2 * updated progress report --------- Co-authored-by: QtinzIa <qtin28@gmail.com> * Prepare merge (#43) * iteration 1 documents update * Feature/game1 (#37) * Add playable Game1 & Game2 with GameMenu and required components * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Revert "Feature/game1 (#37)" (#41) This reverts commit da14612. --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> * Create frontend-ci.yml (#40) Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * add calendar to frontend (#36) * add calendar to frontend * solve date inconsistent issue * Feature/buddy database updates (#30) * Timer * gitignore ignores all .env files * added a text input and a save button * added package-lock.json to .gitignore * separated numericalInput into separate file * visual indication for time left in goal added * uses shim that mimics data from API to calculate time left * added goal to home screen * added comment to note what needs to be changed later * remove goal from home page * changed goal to minutes per week * changed goal to hours per week * changed daily_goal to goal in database and accessed goal from frontend * can change goal with settings page * added local storage * remove non-functional local storage * removed package-lock from .gitignore * formating * added unit tests * updated comments * created tests * added last_updated to buddy database * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code * update exp when timer logs * status increases when goal is finished * removed energy * fix exports * separated functions into new file * update status before use * removed unnessisary code * removed updateEnergy due to energy no longer existing * added better error catching to studySessions * deleted tests surrounding energy and updated exp tests * remove unnessisary code from update exp test * fixed bug failing to fetch api * fixed bug status not being pulled * databases without the column last_updated now update --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Feature/navigation bar (#49) * add navigation tab * update jets.config.js * AI percentage * change study screen nav * icons no longer breaks jest * mocked calendar * all tests passed for frontend * separate tab styles into styles folder * AI percentage --------- Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Set study goal (#22) * gitignore ignores all .env files * added a text input and a save button * added package-lock.json to .gitignore * separated numericalInput into separate file * visual indication for time left in goal added * uses shim that mimics data from API to calculate time left * added goal to home screen * added comment to note what needs to be changed later * remove goal from home page * changed goal to minutes per week * changed goal to hours per week * changed daily_goal to goal in database and accessed goal from frontend * can change goal with settings page * added local storage * remove non-functional local storage * removed package-lock from .gitignore * formating * added unit tests * updated comments * changed goals to be in minutes * added comment to db to clarify format of data * changed functions to React Hooks * added backend routes * name is rendered in settings page correctly * creates buddy when new user is created or in the settings screen if no buddy already exists * fixed create buddy test to account for buddy being created on user creation * Feature/validate and sanitize (#46) * added password security checker * added appropiate error message for repeat username * fixed login tests * added tests --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * write scripts for run dev and install all (#21) * write scripts for run dev and install all * Update README.md --------- Co-authored-by: IgpayAtenlay <mscron7@gmail.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Feature/died screen (#50) * get buddy data * Update Home.js home alert when buddy status is 0. home refresh and get latest data when it gets focus * added some test buttons to the home screen to improve testing * update buddy refresh logic when buddy status changed, home is refreshed. When buddy status hit 0, alert shown on home. * home reset to origional state --------- Co-authored-by: IgpayAtenlay <mscron7@gmail.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Revert "Feature/died screen (#50)" (#60) This reverts commit 0262ef0. * Feature/died screen (#61) * get buddy data * Update Home.js home alert when buddy status is 0. home refresh and get latest data when it gets focus * added some test buttons to the home screen to improve testing * update buddy refresh logic when buddy status changed, home is refreshed. When buddy status hit 0, alert shown on home. * home reset to origional state * Revert "home reset to origional state" This reverts commit 6462954. * revert home to origional state without breaking things --------- Co-authored-by: bohan0lin <bohan0lin@gmail.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> * added settings to nav bar (#59) * Feature/status constraints (#53) * changed updateStatus to have constraints * added tests * update comments to reflect AI use * removed hardcodded variables * Feature/reset buddy on death (#47) * Timer * gitignore ignores all .env files * added a text input and a save button * added package-lock.json to .gitignore * separated numericalInput into separate file * visual indication for time left in goal added * uses shim that mimics data from API to calculate time left * added goal to home screen * added comment to note what needs to be changed later * remove goal from home page * changed goal to minutes per week * changed goal to hours per week * changed daily_goal to goal in database and accessed goal from frontend * can change goal with settings page * added local storage * remove non-functional local storage * removed package-lock from .gitignore * formating * added unit tests * updated comments * created tests * added last_updated to buddy database * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code * update exp when timer logs * status increases when goal is finished * removed energy * fix exports * separated functions into new file * update status before use * removed unnessisary code * removed updateEnergy due to energy no longer existing * added better error catching to studySessions * deleted tests surrounding energy and updated exp tests * remove unnessisary code from update exp test * fixed bug failing to fetch api * fixed bug status not being pulled * added reset path * also update status on calling buddy values * buddy resets when you dismiss the buddy died alert * fixed imports * pull token from auth context --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Feature/choose animal type (#54) * added type to database and can change it * uses a picker so user can see all options and can't accidentally choose unavalible one * changed model to test for valid buddy types * added tests --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Feature/duplicate jwt logic (#64) * cursor suggestion * modify token experation function * removing more duplicate logic * fixed test by making valid-looking fake token * accounts for atob and btoa not being in react native * Changed Login and Settings UI (#62) * first attempt at login screen * changed settings styles * changed styles to match studying page * separated gameMenuStyles * made the border width for inputs thicker * style the buddy type box * reset starting page * edit card shadow to match study screen --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * Update style (#48) * Update style * Update style * update * update * cleaned up some code * fixed imports * removed extranious button from studying screen * updated styles import to match other styles imports --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Feature/ci security checks (#68) * Remove the exclusion of studytimer tests from docker build * Add security CI * Remove redundant workflow * Resolve osv scanner issue * Switch gitleaks with trufflehog * Fix OSV scan step to install scanner directly * Fix OSV scan by installing scanner via Go instead of tarball * Fix OSV findings by upgrading glob/js-yaml/validator * Pin istanbul js-yaml to 3.14.2 to clear OSV alert * Remove no-update flag from trufflehog * Fix secrets scan by running TruffleHog via Docker filesystem mode * Fix security CI workflow indentation and SARIF uploads * Fail CI when CodeQL reports alerts and fix trufflehog error * Make CodeQL fail step skip when no SARIF is present * Handle missing CodeQL SARIF gracefully * Adjust CodeQL and workflows to run only on PR's rather than push * switch back to run on PR and push for all branches so that people can check their code easily * Update github-action.yml comments. * Make codeql workflow fail on errors * Fix indentation error * Fix indentation error * Fix indentation error * update calendar to match other screen (#66) * update calendar to match other screen * add safe area, card horizontal center * stats screen header added * stats fetch data everytime it gets focus. https://bu-team-cs673team3.atlassian.net/jira/software/projects/KAN/boards/1?selectedIssue=KAN-304 * Adjust calendar screen for safe areas, scrolling, and spacing * Make the same fix on studying on statistics --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Create dev and prod docker for local development vs deployment (#69) Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Fix navigation flow and clear key warning (#70) * Fix navigation flow and clear key warning * Fix login and home tests by simplyfying the auth context based on changes --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Feature/refactor study timer (#67) * Refactor study timer code and add safe areas instead of padding. Remove progress bar as its redundant and make study timer tick down instead of up * Add styles for timer and add safe areas instead of padding constant * Change UI for transparent safe area * Move the page a bit higher * fixed timer test --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> * added swagger docs from buddy and study routes (#73) * created last_updated date using javascript instead of SQL (#72) Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * updated readme and added .env.example (#71) * Gen ai buddy (#58) * gen ai * Add all emotion --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> * Feature/integrate ai buddy (#76) * cropped empty space out of images * implimented buddy img * removed deprecated svg buddy * make sure that study_buddy name is not null * properly getting buddy type * Feature/buddy name (#65) * Update style * Update style * update * update * cleaned up some code * fixed imports * removed extranious button from studying screen * updated styles import to match other styles imports * fixed background UI * fixed logout button * Stylized the buddy name * Text displays buddy's name * get values through authcontext * make sure status is updating * update imports * fixed broken test * restore home --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> * finished merge * merge github actions * merge authcontext test * merge tests * updated package-lock.json * fix backend package-lock * delete redudant Dockerfile * delete redudant file * Hotfix/prepare for merge (#83) * Develop (#44) * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * hotfix: Docker+Expo runbook, compose cleanup, frontend auth feedback (#26) * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Feature/game1 (#29) * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * ran npm install to update package-lock.json * change linting to accept browser globals --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Feature/buddy pictures (#23) * update .gitignore * made Cat study buddy * changed default color of cat to orange * added comments * reformated cat buddy to make further buddy creation easier * generalize eyes so they can be used with all buddies * use backticks to create strings for easier reading * added dead eyes * added other eye styles * added comments * added a deer * added buddy to home screen * changed cat to be react components instead of functions * changed deer to react component * buddy status connected to backend * changed location of buddyEyes.js * removed console.log statement * changed buddies to use viewBox for easier to read code * change size based on exp * added comments * changed tests to fit new Home screen * removed package-lock from .gitignore * changed function into React Hook * added default buddy values --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Add react-native-svg dependency and keep buddy visible when API has no data (#32) * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend (#33) * iteration 1 documents update * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.1 to 7.5.2. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v7.5.1...v7.5.2) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update team.md (#19) * iteration 1 documents update * update team.md --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> * Timer (#25) * Timer * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * change initial route for login (#35) * Game Page UI (#34) * Game Page UI * Update GameMenu.test.js * unit test update * initial route fixed --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * merge feature/game1 into develop * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip * fix testing * Updated documents for iteration 2 (#42) * updated documents for iteration 2 * update docs for iteration2 * updated progress report --------- Co-authored-by: QtinzIa <qtin28@gmail.com> * Prepare merge (#43) * iteration 1 documents update * Feature/game1 (#37) * Add playable Game1 & Game2 with GameMenu and required components * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Revert "Feature/game1 (#37)" (#41) This reverts commit da14612. --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * Bump js-yaml in /code/Study buddy/frontend (#56) Bumps and [js-yaml](https://github.com/nodeca/js-yaml). These dependencies needed to be updated together. Updates `js-yaml` from 3.14.1 to 3.14.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump glob from 10.4.5 to 10.5.0 in /code/Study buddy/backend (#57) Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](isaacs/node-glob@v10.4.5...v10.5.0) --- updated-dependencies: - dependency-name: glob dependency-version: 10.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Bump js-yaml from 3.14.1 to 3.14.2 in /code/Study buddy/backend (#55) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * finished merge * merge github actions * merge authcontext test * merge tests * updated package-lock.json * fix backend package-lock * delete redudant Dockerfile * delete redudant file --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * Creates basic rate limiting (#84) * added general rate limiter and auth specific one * changed auth limit * update comments to match code --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> Co-authored-by: dexzhang <158587311+qfcvds@users.noreply.github.com>
| name: React Frontend Linting and Testing | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v3 | ||
|
|
||
| - name: Set up Node.js | ||
| uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 22 | ||
|
|
||
| - name: Install dependencies | ||
| run: | | ||
| cd "code/Study buddy/frontend/" | ||
| npm ci | ||
|
|
||
| - name: Lint React code | ||
| run: | | ||
| cd "code/Study buddy/frontend/" | ||
| npm run lint | ||
|
|
||
| - name: Run React Unit Tests | ||
| run: | | ||
| cd "code/Study buddy/frontend/" | ||
| npm test | ||
|
|
||
| ## Backend checks | ||
| backend: |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 6 months ago
To fix this issue, add an explicit permissions block to the workflow, either at the root level (to apply to all jobs by default) or per job. Since none of the jobs require write access to repository resources, setting permissions: contents: read at the root level is best practice. This limits the GITHUB_TOKEN to only read repository contents, minimizing risk. The change should be added immediately below the workflow name (name: CI Pipeline), before the on: block begins. No other modifications or additions are necessary for this change.
| @@ -6,6 +6,8 @@ | ||
|
|
||
|
|
||
| name: CI Pipeline | ||
| permissions: | ||
| contents: read | ||
|
|
||
| on: | ||
| push: |
| name: Backend Linting and Testing | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v3 | ||
|
|
||
| - name: Set up Node.js | ||
| uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 22 | ||
|
|
||
| - name: Install dependencies | ||
| run: | | ||
| cd "code/Study buddy/backend/" | ||
| npm ci | ||
|
|
||
| - name: Lint Backend code | ||
| run: | | ||
| cd "code/Study buddy/backend/" | ||
| npm run lint | ||
|
|
||
| - name: Run Backend Tests | ||
| run: | | ||
| cd "code/Study buddy/backend/" | ||
| npm test | ||
|
|
||
| # Ensure Dockerfiles build successfully (no push) | ||
| tests-in-docker: |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 6 months ago
To fix this problem, we should add a permissions block limiting the GITHUB_TOKEN to the least privilege needed by all jobs. In this workflow, no job needs write access; they only need to check out repository code (which requires contents: read). The best practice is to set permissions: contents: read at the workflow root, so all jobs that don't specify their own permissions inherit it. This change should be made at the top level of .github/workflows/github-actions.yml, directly under the name: CI Pipeline key (or after it, before on:). Only this addition is required; no further imports or method definitions are needed.
| @@ -6,6 +6,8 @@ | ||
|
|
||
|
|
||
| name: CI Pipeline | ||
| permissions: | ||
| contents: read | ||
|
|
||
| on: | ||
| push: |
| name: Run Tests in Docker Images | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v3 | ||
|
|
||
| - name: Set up Docker Buildx | ||
| uses: docker/setup-buildx-action@v3 | ||
|
|
||
| - name: Build backend image | ||
| run: | | ||
| docker build -t studybuddy-backend:ci -f "code/Study buddy/backend/Dockerfile" "code/Study buddy/backend" | ||
|
|
||
| - name: Build frontend image | ||
| run: | | ||
| docker build -t studybuddy-frontend:ci -f "code/Study buddy/frontend/Dockerfile.dev" "code/Study buddy/frontend" | ||
|
|
||
| - name: Backend tests in Docker | ||
| run: | | ||
| docker run --rm -w /app studybuddy-backend:ci npm test | ||
|
|
||
| - name: Frontend tests in Docker | ||
| env: | ||
| CI: true | ||
| run: | | ||
| docker run --rm -w /app studybuddy-frontend:ci npm test |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 6 months ago
The best fix is to explicitly add a permissions key with a minimal value at the workflow root (top-level, just after the name: field and before on:), to apply to all jobs by default. Since the workflow consists only of jobs that check out code and build/test, contents: read suffices. This change does not alter the existing functionality and adheres to the principle of least privilege, reducing the risk in case new steps are added or default permissions change.
Edit the file .github/workflows/github-actions.yml by inserting:
permissions:
contents: readjust below the line containing name: CI Pipeline. No additional imports, method definitions, or dependencies are needed.
| @@ -6,6 +6,8 @@ | ||
|
|
||
|
|
||
| name: CI Pipeline | ||
| permissions: | ||
| contents: read | ||
|
|
||
| on: | ||
| push: |
* simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * hotfix: Docker+Expo runbook, compose cleanup, frontend auth feedback (#26) * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Feature/game1 (#29) * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * ran npm install to update package-lock.json * change linting to accept browser globals --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Feature/buddy pictures (#23) * update .gitignore * made Cat study buddy * changed default color of cat to orange * added comments * reformated cat buddy to make further buddy creation easier * generalize eyes so they can be used with all buddies * use backticks to create strings for easier reading * added dead eyes * added other eye styles * added comments * added a deer * added buddy to home screen * changed cat to be react components instead of functions * changed deer to react component * buddy status connected to backend * changed location of buddyEyes.js * removed console.log statement * changed buddies to use viewBox for easier to read code * change size based on exp * added comments * changed tests to fit new Home screen * removed package-lock from .gitignore * changed function into React Hook * added default buddy values --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Add react-native-svg dependency and keep buddy visible when API has no data (#32) * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend (#33) * iteration 1 documents update * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.1 to 7.5.2. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v7.5.1...v7.5.2) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update team.md (#19) * iteration 1 documents update * update team.md --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> * Timer (#25) * Timer * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * change initial route for login (#35) * Game Page UI (#34) * Game Page UI * Update GameMenu.test.js * unit test update * initial route fixed --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * merge feature/game1 into develop * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip * fix testing * Updated documents for iteration 2 (#42) * updated documents for iteration 2 * update docs for iteration2 * updated progress report --------- Co-authored-by: QtinzIa <qtin28@gmail.com> * Prepare merge (#43) * iteration 1 documents update * Feature/game1 (#37) * Add playable Game1 & Game2 with GameMenu and required components * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Revert "Feature/game1 (#37)" (#41) This reverts commit da14612. --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> * Create frontend-ci.yml (#40) Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * add calendar to frontend (#36) * add calendar to frontend * solve date inconsistent issue * Feature/buddy database updates (#30) * Timer * gitignore ignores all .env files * added a text input and a save button * added package-lock.json to .gitignore * separated numericalInput into separate file * visual indication for time left in goal added * uses shim that mimics data from API to calculate time left * added goal to home screen * added comment to note what needs to be changed later * remove goal from home page * changed goal to minutes per week * changed goal to hours per week * changed daily_goal to goal in database and accessed goal from frontend * can change goal with settings page * added local storage * remove non-functional local storage * removed package-lock from .gitignore * formating * added unit tests * updated comments * created tests * added last_updated to buddy database * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code * update exp when timer logs * status increases when goal is finished * removed energy * fix exports * separated functions into new file * update status before use * removed unnessisary code * removed updateEnergy due to energy no longer existing * added better error catching to studySessions * deleted tests surrounding energy and updated exp tests * remove unnessisary code from update exp test * fixed bug failing to fetch api * fixed bug status not being pulled * databases without the column last_updated now update --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Feature/navigation bar (#49) * add navigation tab * update jets.config.js * AI percentage * change study screen nav * icons no longer breaks jest * mocked calendar * all tests passed for frontend * separate tab styles into styles folder * AI percentage --------- Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Set study goal (#22) * gitignore ignores all .env files * added a text input and a save button * added package-lock.json to .gitignore * separated numericalInput into separate file * visual indication for time left in goal added * uses shim that mimics data from API to calculate time left * added goal to home screen * added comment to note what needs to be changed later * remove goal from home page * changed goal to minutes per week * changed goal to hours per week * changed daily_goal to goal in database and accessed goal from frontend * can change goal with settings page * added local storage * remove non-functional local storage * removed package-lock from .gitignore * formating * added unit tests * updated comments * changed goals to be in minutes * added comment to db to clarify format of data * changed functions to React Hooks * added backend routes * name is rendered in settings page correctly * creates buddy when new user is created or in the settings screen if no buddy already exists * fixed create buddy test to account for buddy being created on user creation * Feature/validate and sanitize (#46) * added password security checker * added appropiate error message for repeat username * fixed login tests * added tests --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * write scripts for run dev and install all (#21) * write scripts for run dev and install all * Update README.md --------- Co-authored-by: IgpayAtenlay <mscron7@gmail.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Feature/died screen (#50) * get buddy data * Update Home.js home alert when buddy status is 0. home refresh and get latest data when it gets focus * added some test buttons to the home screen to improve testing * update buddy refresh logic when buddy status changed, home is refreshed. When buddy status hit 0, alert shown on home. * home reset to origional state --------- Co-authored-by: IgpayAtenlay <mscron7@gmail.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Revert "Feature/died screen (#50)" (#60) This reverts commit 0262ef0. * Feature/died screen (#61) * get buddy data * Update Home.js home alert when buddy status is 0. home refresh and get latest data when it gets focus * added some test buttons to the home screen to improve testing * update buddy refresh logic when buddy status changed, home is refreshed. When buddy status hit 0, alert shown on home. * home reset to origional state * Revert "home reset to origional state" This reverts commit 6462954. * revert home to origional state without breaking things --------- Co-authored-by: bohan0lin <bohan0lin@gmail.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> * added settings to nav bar (#59) * Feature/status constraints (#53) * changed updateStatus to have constraints * added tests * update comments to reflect AI use * removed hardcodded variables * Feature/reset buddy on death (#47) * Timer * gitignore ignores all .env files * added a text input and a save button * added package-lock.json to .gitignore * separated numericalInput into separate file * visual indication for time left in goal added * uses shim that mimics data from API to calculate time left * added goal to home screen * added comment to note what needs to be changed later * remove goal from home page * changed goal to minutes per week * changed goal to hours per week * changed daily_goal to goal in database and accessed goal from frontend * can change goal with settings page * added local storage * remove non-functional local storage * removed package-lock from .gitignore * formating * added unit tests * updated comments * created tests * added last_updated to buddy database * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code * update exp when timer logs * status increases when goal is finished * removed energy * fix exports * separated functions into new file * update status before use * removed unnessisary code * removed updateEnergy due to energy no longer existing * added better error catching to studySessions * deleted tests surrounding energy and updated exp tests * remove unnessisary code from update exp test * fixed bug failing to fetch api * fixed bug status not being pulled * added reset path * also update status on calling buddy values * buddy resets when you dismiss the buddy died alert * fixed imports * pull token from auth context --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Feature/choose animal type (#54) * added type to database and can change it * uses a picker so user can see all options and can't accidentally choose unavalible one * changed model to test for valid buddy types * added tests --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Feature/duplicate jwt logic (#64) * cursor suggestion * modify token experation function * removing more duplicate logic * fixed test by making valid-looking fake token * accounts for atob and btoa not being in react native * Changed Login and Settings UI (#62) * first attempt at login screen * changed settings styles * changed styles to match studying page * separated gameMenuStyles * made the border width for inputs thicker * style the buddy type box * reset starting page * edit card shadow to match study screen --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * Update style (#48) * Update style * Update style * update * update * cleaned up some code * fixed imports * removed extranious button from studying screen * updated styles import to match other styles imports --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Feature/ci security checks (#68) * Remove the exclusion of studytimer tests from docker build * Add security CI * Remove redundant workflow * Resolve osv scanner issue * Switch gitleaks with trufflehog * Fix OSV scan step to install scanner directly * Fix OSV scan by installing scanner via Go instead of tarball * Fix OSV findings by upgrading glob/js-yaml/validator * Pin istanbul js-yaml to 3.14.2 to clear OSV alert * Remove no-update flag from trufflehog * Fix secrets scan by running TruffleHog via Docker filesystem mode * Fix security CI workflow indentation and SARIF uploads * Fail CI when CodeQL reports alerts and fix trufflehog error * Make CodeQL fail step skip when no SARIF is present * Handle missing CodeQL SARIF gracefully * Adjust CodeQL and workflows to run only on PR's rather than push * switch back to run on PR and push for all branches so that people can check their code easily * Update github-action.yml comments. * Make codeql workflow fail on errors * Fix indentation error * Fix indentation error * Fix indentation error * update calendar to match other screen (#66) * update calendar to match other screen * add safe area, card horizontal center * stats screen header added * stats fetch data everytime it gets focus. https://bu-team-cs673team3.atlassian.net/jira/software/projects/KAN/boards/1?selectedIssue=KAN-304 * Adjust calendar screen for safe areas, scrolling, and spacing * Make the same fix on studying on statistics --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Create dev and prod docker for local development vs deployment (#69) Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Fix navigation flow and clear key warning (#70) * Fix navigation flow and clear key warning * Fix login and home tests by simplyfying the auth context based on changes --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> * Feature/refactor study timer (#67) * Refactor study timer code and add safe areas instead of padding. Remove progress bar as its redundant and make study timer tick down instead of up * Add styles for timer and add safe areas instead of padding constant * Change UI for transparent safe area * Move the page a bit higher * fixed timer test --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> * added swagger docs from buddy and study routes (#73) * created last_updated date using javascript instead of SQL (#72) Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * updated readme and added .env.example (#71) * Gen ai buddy (#58) * gen ai * Add all emotion --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> * Feature/integrate ai buddy (#76) * cropped empty space out of images * implimented buddy img * removed deprecated svg buddy * make sure that study_buddy name is not null * properly getting buddy type * Feature/buddy name (#65) * Update style * Update style * update * update * cleaned up some code * fixed imports * removed extranious button from studying screen * updated styles import to match other styles imports * fixed background UI * fixed logout button * Stylized the buddy name * Text displays buddy's name * get values through authcontext * make sure status is updating * update imports * fixed broken test * restore home --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> * finished merge * merge github actions * merge authcontext test * merge tests * updated package-lock.json * fix backend package-lock * delete redudant Dockerfile * delete redudant file * Hotfix/prepare for merge (#83) * Develop (#44) * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * hotfix: Docker+Expo runbook, compose cleanup, frontend auth feedback (#26) * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Feature/game1 (#29) * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * ran npm install to update package-lock.json * change linting to accept browser globals --------- Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Feature/buddy pictures (#23) * update .gitignore * made Cat study buddy * changed default color of cat to orange * added comments * reformated cat buddy to make further buddy creation easier * generalize eyes so they can be used with all buddies * use backticks to create strings for easier reading * added dead eyes * added other eye styles * added comments * added a deer * added buddy to home screen * changed cat to be react components instead of functions * changed deer to react component * buddy status connected to backend * changed location of buddyEyes.js * removed console.log statement * changed buddies to use viewBox for easier to read code * change size based on exp * added comments * changed tests to fit new Home screen * removed package-lock from .gitignore * changed function into React Hook * added default buddy values --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Add react-native-svg dependency and keep buddy visible when API has no data (#32) * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend (#33) * iteration 1 documents update * Bump tar from 7.5.1 to 7.5.2 in /code/Study buddy/frontend Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.1 to 7.5.2. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v7.5.1...v7.5.2) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update team.md (#19) * iteration 1 documents update * update team.md --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> * Timer (#25) * Timer * docs(readme): add Docker + Expo runbook and troubleshooting chore(compose): remove obsolete version, drop misleading frontend API_BASE_URL env chore(backend): add .dockerignore to avoid host node_modules and junk feat(frontend): show auth error messages; keep debug logs during development * chore(gitignore): ignore frontend .env and backend sqlite db files * chore(docker): update backend+frontend Dockerfiles for dev (node 22, reproducible npm ci, expo tunnel) * ci: build Dockerfiles and run tests inside Docker images * chore(frontend): align lockfile with React 19.2.0 to satisfy react-test-renderer peer * ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI * chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json * Revert "chore(frontend): align Expo SDK 54 deps (expo ~54.0.21, dev-client ~6.0.16, react/react-dom 19.1.0, react-native 0.81.5, jest-expo ~54.0.13). Ensure no react-test-renderer in package.json" This reverts commit 458e514. * Revert "ci(frontend): remove expo install --fix from Dockerfile to avoid peer-dep conflicts in CI" This reverts commit 4b075a0. * chore: refresh deps and simplify expo tunnel setup * test(frontend): stub fast refresh globals for jest * ci: streamline workflow linting and docker jobs * chore(frontend): declare jest global in setup file * test(frontend): note fetchMock global in LoginForm test * docs: document lint/test commands and CI workflow * Persist study timer progress and sync UI * Fix timer auto-complete and stabilize tests * Stabilize StudyTimer tests for CI * Refine StudyTimer tests and docker CI config * Fix lint warnings in jest native setup * Revert StudyTimer test to baseline setup * Update AI usage in code --------- Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * change initial route for login (#35) * Game Page UI (#34) * Game Page UI * Update GameMenu.test.js * unit test update * initial route fixed --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * merge feature/game1 into develop * Add playable Game1 & Game2 with GameMenu and required components * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip * fix testing * Updated documents for iteration 2 (#42) * updated documents for iteration 2 * update docs for iteration2 * updated progress report --------- Co-authored-by: QtinzIa <qtin28@gmail.com> * Prepare merge (#43) * iteration 1 documents update * Feature/game1 (#37) * Add playable Game1 & Game2 with GameMenu and required components * simple login frontend code using backend API (#18) * simple login frontend code using backend API * Add little style. Use .env in frontend please create .env file in frontend folder and put in API_BASE_URL=http://localhost:3000/api/users where localhost is your IPv4 address. You can get it by using ipconfig in your terminal. * Login page * Update Login.js * Update App.js * Update Login.js * Update Login.js * Update Api * Update API connect * fixed bug with webpage not showing if a different version of react native async storage is already present * Integrated two versions together The early version connects to the backend API. The latest version updates UI. The bug in the late version is fixed. * Change register button * comments and small mods for url. base API url changed. Comments and AI percentage added. CSS styles are not removed to styles folder. It requires some work. Will be done later. Functionality works fine for now. * Update README.md * add authcontext in frontend. Styles move in style.js file Implemented global authcontext to manage user auth state across the app. The context stores the current user and JWT token, provide login and logout function and checks AsyncStorage on app startup to persist login sessions. * frontend test implemented. test env setup * login.js style moved to style.js --------- Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * backend stats code and backend tests are implemented. Test passed. (#20) * backend stats route and model written * optimize the get stats function by only go through db once. * Update README.md * Update README.md * delete week duration * update package-lock.json for merge * game frame changed * add test files * refine game1 ratio and start tip * modify game2 parameters * modify game3 parameters * fix initial route problem * game3 start tip --------- Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> * Revert "Feature/game1 (#37)" (#41) This reverts commit da14612. --------- Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * Bump js-yaml in /code/Study buddy/frontend (#56) Bumps and [js-yaml](https://github.com/nodeca/js-yaml). These dependencies needed to be updated together. Updates `js-yaml` from 3.14.1 to 3.14.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump glob from 10.4.5 to 10.5.0 in /code/Study buddy/backend (#57) Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](isaacs/node-glob@v10.4.5...v10.5.0) --- updated-dependencies: - dependency-name: glob dependency-version: 10.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * Bump js-yaml from 3.14.1 to 3.14.2 in /code/Study buddy/backend (#55) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> * finished merge * merge github actions * merge authcontext test * merge tests * updated package-lock.json * fix backend package-lock * delete redudant Dockerfile * delete redudant file --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: shinushibu1798 <shinu.shibu1798@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> * Creates basic rate limiting (#84) * added general rate limiter and auth specific one * changed auth limit * update comments to match code * Feature/merge documents (#91) * Add updated docs for iteration 3; Update README.md with deployment details. * Slight changes to progress report * commit demo * move demo to appropriate folder --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: bohan0lin <63618439+bohan0lin@users.noreply.github.com> Co-authored-by: Kimi <chen.junzhe2000@gmail.com> Co-authored-by: IgpayAtenlay <mscron7@gmail.com> Co-authored-by: QtinzIa <86401155+QtinzIa@users.noreply.github.com> Co-authored-by: IgpayAtenlay <38770334+IgpayAtenlay@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: QtinzIa <qtin28@gmail.com> Co-authored-by: bohan0lin <bohan0lin@gmail.com> Co-authored-by: dexzhang <158587311+qfcvds@users.noreply.github.com>
Bumps [react-server-dom-webpack](https://github.com/facebook/react/tree/HEAD/packages/react-server-dom-webpack) from 19.0.0 to 19.0.1. - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.1/packages/react-server-dom-webpack) --- updated-dependencies: - dependency-name: react-server-dom-webpack dependency-version: 19.0.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: shinushibu1798 <31847296+shinushibu1798@users.noreply.github.com>
👋! GitHub Classroom created this pull request as a place for your teacher to leave feedback on your work. It will update automatically. Don’t close or merge this pull request, unless you’re instructed to do so by your teacher.
In this pull request, your teacher can leave comments and feedback on your code. Click the Subscribe button to be notified if that happens.
Click the Files changed or Commits tab to see all of the changes pushed to the default branch since the assignment started. Your teacher can see this too.
Notes for teachers
Use this PR to leave feedback. Here are some tips:
For more information about this pull request, read “Leaving assignment feedback in GitHub”.
Subscribed: @IgpayAtenlay @shinushibu1798 @QtinzIa @bohan0lin @KimiChen2000 @qfcvds