{"id":21464287,"url":"https://github.com/marcpinet/polyquiz","last_synced_at":"2025-07-15T04:31:32.922Z","repository":{"id":173020573,"uuid":"650111136","full_name":"marcpinet/polyquiz","owner":"marcpinet","description":"🫳 Parkison-friendly website made as part of a school project.","archived":true,"fork":false,"pushed_at":"2025-02-01T19:28:29.000Z","size":56839,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T05:24:42.357Z","etag":null,"topics":["adaptive","angular","backend","frontend","nodejs","parkinsons-disease","typescript","user-experience","ux-ui"],"latest_commit_sha":null,"homepage":"https://marcpinet.me","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcpinet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-06T11:09:58.000Z","updated_at":"2025-02-01T19:30:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"c0aa29e9-a553-4edc-867d-98bcbb7ef49e","html_url":"https://github.com/marcpinet/polyquiz","commit_stats":null,"previous_names":["marcpinet/polyquiz"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcpinet/polyquiz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Fpolyquiz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Fpolyquiz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Fpolyquiz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Fpolyquiz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcpinet","download_url":"https://codeload.github.com/marcpinet/polyquiz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Fpolyquiz/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265402833,"owners_count":23759237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive","angular","backend","frontend","nodejs","parkinsons-disease","typescript","user-experience","ux-ui"],"created_at":"2024-11-23T07:31:11.752Z","updated_at":"2025-07-15T04:31:32.898Z","avatar_url":"https://github.com/marcpinet.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PS6: Polyquiz\n\n## 📝 Description\n\nPolyquiz is a school project for the course *PS6* at Polytech Nice Sophia. It is a quiz game which aims to be used by\nnursing residents to test their physical and mental capabilities.\n\u003cbr\u003eAs an admin or nurse, you can create quizzes, add questions and answers, and assign them to residents. The residents\ncan then play the quizzes and see their results.\n\nThe whole project is being supervised by the [Amadeus](https://amadeus.com/) company.\n\n## 🎥 Demo\n\nhttps://github.com/user-attachments/assets/2a09c0ed-c344-432a-a5bd-af14697f53ce\n\n## 💡 How to use\n\n### Prerequisites\n\n* Node.js (v16.13.0+)\n\n1. Get a copy of the Project. Assuming you have git installed, open your Terminal and enter:\n\n    ```bash\n    git clone '\u003cproject_url\u003e'\n    ```\n\n2. To run locally, you will need to install Angular CLI. Open your Terminal and enter:\n\n    ```bash\n    npm install -g @angular/cli\n    ```\n\n3. Go to the root of the project. Open your Terminal and install the dependencies:\n\n    ```bash\n    npm install \u0026\u0026 cd backend \u0026\u0026 npm install \u0026\u0026 cd ../frontend \u0026\u0026 npm install \u0026\u0026 cd ..\n    ```\n### Running\n\nAfter that, you can proceed to start the program by running `npm run dev` at the root of the project. This will start\nboth the backend and the frontend.\n\n### Run the end to end tests\n\nBefore running the tests, you need to run your front-end and back-end:\n\n1. Run your backend: `npm run start:e2e`\n\n2. Run your frontend: `npm run start`\n\n3. Run the tests:  `npm run test:e2e`\n\n## Running with Docker\n\n- If you want to run front and back simultaneously, run:\n\n```bash\ndocker compose up\n``` \n\n- If you want to run the tests, run:\n\n```bash\ndocker compose -f docker-compose.e2e.yml up\n``` \n\n*Note for teachers: here is our current progress for Docker:*\n* [X] Step 1\n* [X] Step 2\n* [ ] Step 3 (in progress, not completed yet)\n* [ ] Step 4\n\nThis Docker Compose configuration is composed of two separate service compositions. Both configurations use version \"3.8\" of the Docker Compose specification. Here is a list of observations and explanations about this configuration:\n\n#### First Configuration:\n\n1. **Healthchecks**: There are two services with health checks defined in this configuration, 'backend' and 'frontend'. They use `curl` to check the health of the services by trying to access their respective HTTP endpoints on localhost (`http://localhost:9428` for the backend and `http://localhost:4200` for the frontend). If the HTTP requests fail, the services are considered unhealthy. Health checks are performed every 30 seconds with a timeout of 10 seconds and up to 3 retries.\n\n2. **User**: Both backend and frontend are using a user (appuser) to run the services in a more securized environement.\n\n3. **Accessible Services and URLs**:\n\n- 'backend' service: This service can be accessed on port 9428 of the host machine. As per the configuration, the backend service exposes itself on the 'app-network' network.\n- 'frontend' service: This service can be accessed on port 4200 of the host machine. Like the backend, it also uses the 'app-network' network.\n\n1. **Volumes**: Both 'frontend' and 'backend' services use bind mounts to map code from the host into the service containers. They also have volume mounts for `/app/node_modules` which seem to be aimed at persisting installed node modules across container restarts.\n\n2. **Networks**: Both 'frontend' and 'backend' services are part of a user-defined network named 'app-network'. \n\n#### Second Configuration:\n\n1. **Healthcheck**: The 'front-back-test' service uses `nc` (netcat) to check the health of the service by testing whether port 4200 is open. \n\n2. **User**: Both backend and frontend are using a user (appuser) to run the services in a more securized environement.\n\n3. **Accessible Services and URLs**:\n\n- 'front-back-test' service: This service can be accessed on ports 4200 and 9428 of the host machine. It is also a part of the 'app-network' network.\n- 'frontend-test-e2e' service: As per the configuration, it doesn't expose any ports and thus won't be directly accessible from the host machine.\n\n1. **Volumes**: 'frontend-test-e2e' service uses a named volume 'test-results' to presumably store the test results.\n\n2. **Networks**: Both 'front-back-test' and 'frontend-test-e2e' services are part of the 'app-network' network.\n\n## Continuous Integration\n\nThe project uses GitHub Actions to run the tests and build the project. The husky post-merge hook will also install the\ndependencies for you when you pull from the repository (only if there are newly added ones).\n\n## ✍️ Authors\n\n* **Marc Pinet** - [marcpinet](https://github.com/marcpinet)\n* **Thi Thanh Tu Duong** - [luvluvdt3](https://github.com/luvluvdt3)\n* **Clément Remy** - [ClementREMY2](https://github.com/ClementREMY2)\n* **Loïc Pantano** - [loicpantano](https://github.com/loicpantano)\n* **Loïc Palayer** - [loicpalayer](https://github.com/loicpalayer)\n\n## 📃 License\n\nDistributed under the Mozilla Public License Version 2.0 - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpinet%2Fpolyquiz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcpinet%2Fpolyquiz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpinet%2Fpolyquiz/lists"}