{"id":22131170,"url":"https://github.com/popcodelab/yoga","last_synced_at":"2025-10-28T15:21:23.006Z","repository":{"id":242638232,"uuid":"806376031","full_name":"popcodelab/Yoga","owner":"popcodelab","description":"Yoga is a work around full stack application testing","archived":false,"fork":false,"pushed_at":"2024-07-14T15:15:11.000Z","size":2420,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T14:45:36.100Z","etag":null,"topics":["angular","angular-testing","assertions","assertj","cypress","cypress-tests","e2e-tests","integration-testing","jest-mocking","jest-tests","junit-jupiter","mock","mockito","unit-testing","unittest"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/popcodelab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-05-27T04:44:57.000Z","updated_at":"2024-07-14T15:14:04.000Z","dependencies_parsed_at":"2024-06-28T13:55:29.595Z","dependency_job_id":"1ca787d3-bbd9-4b03-9859-78a979fb8041","html_url":"https://github.com/popcodelab/Yoga","commit_stats":null,"previous_names":["popcodelab/yoga"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FYoga","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FYoga/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FYoga/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FYoga/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/popcodelab","download_url":"https://codeload.github.com/popcodelab/Yoga/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245240828,"owners_count":20583102,"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":["angular","angular-testing","assertions","assertj","cypress","cypress-tests","e2e-tests","integration-testing","jest-mocking","jest-tests","junit-jupiter","mock","mockito","unit-testing","unittest"],"created_at":"2024-12-01T18:31:00.371Z","updated_at":"2025-10-28T15:21:22.931Z","avatar_url":"https://github.com/popcodelab.png","language":"Java","readme":"# Yoga\n## Table of contents\n\n- Description and goals\n- Installation\n- Database setup\n- Run application\n- Run tests\n- Technologies\n- Compodoc\n- Screenshots\n\n## Description and goal\n\nYoga application concerns unit, integration and e2e testing for the back and front end.\n\nThis is a full stack application that allow to configure Yoga classrooms and booking system.\nIt's just a proof of concept to work around application testing with JUnit, Jest and Cypress.\n\n## Installation\n\n### Clone the Project\n\nClone these repositories :\n\u003e git clone https://github.com/popcodelab/Yoga\n\n### Install Dependencies\n\n#### Back-End:\n\n\u003e mvn clean install\n\n#### Front-End:\n\n\u003e npm install\n\n### Configuring the Back-End\n\nOpen the `application.properties` file located in the `back/src/main/resources` directory to Replace the properties with your parameters:\n\n```properties\nspring.datasource.url=${APP_DB_URL}\nspring.datasource.username=${APP_DB_USERNAME}\nspring.datasource.password=${APP_DB_PASSWORD}\n```\n\n## Database setup \n\nMake sure that you have MySQL installed on your system.\n\n1. Log into MySQL using the following command :\n\u003e mysql -u `\u003cusername\u003e` -p\n\n2. Create the database :\n\n\u003e CREATE DATABASE `\u003cdatabase_name\u003e`;\n\n3. Select the created database :\n\u003e USE `\u003cdatabase_name\u003e`;\n\n\n### Build the database\n\nUse the SQL script located in `ressources\\sql\\script.sql`  to create the schema :\n\n\u003e SOURCE `\u003cpath_to_script.sql\u003e`;\n     \n\nDefault credential are :\n- login: yoga@studio.com\n- password: test!1234\n\n## Run application\n\n1. Frontend\n   \n   - In your terminal, run the command below.\n    \n        ```bash\n        cd front\n        npm run start\n        ```\n\n     The frontend will launch in your browser at `http://localhost:4200`\n  \n2. Backend\n\n     - In a separate terminal, run the command below.\n\n          ```bash\n          cd back\n          mvn spring-boot:run\n          ```\n\n        The backend server will launch at `http://localhost:8080`\n\n---\n\n## Run Tests\n\n### Backend - Unit and integration tests\n\n1. Run tests and generate a coverage report.\n\n    ```bash\n    cd back\n    mvn clean test\n    ```\n    \n2. The report has been generated in  `back/target/site/jacoco` directory. Open the `index.html` file in a web browser.\n\n![Junit Coverage Report](ressources/test-reports/back.png)\n\n### Frontend - Unit and Integration\n\n1. Run tests and generate a coverage report.\n\n    ```bash\n    cd front\n    npm run test\n    ```\n\n2. The report has been generated in `front/coverage/jest/lcov-report` directory. Open the `index.html` file in a browser.\n\n![Jest Coverage Report](ressources/test-reports/front-jest.png)\n\n### Frontend - End-to-End\n\n1. Run the Cypress Test Runner.\n\n    ```bash\n    npm run e2e\n    ```\n\n2. Run the end-to-end tests and generate the coverage report.\n\n    ```bash\n    npm run e2e:coverage\n    ```\n3. The report has been generated in `front/coverage/lcov-report` directory. Open the `index.html` file in a browser.\n\n![e2e Coverage Report](ressources/test-reports/front-e2e.png)\n\n## Technologies\nFront-end :  \n![Static Badge](https://img.shields.io/badge/Angular-14.2.0-red)\n![Static Badge](https://img.shields.io/badge/Jest-28.1.3-green)\n![Static Badge](https://img.shields.io/badge/Cypress-10.11.0-blue)\n\nBack-end :  \n![Static Badge](https://img.shields.io/badge/Java-17.0.10-orange)\n![Static Badge](https://img.shields.io/badge/Spring_Boot-2.6.1-green)\n![Static Badge](https://img.shields.io/badge/Maven-4.0.0-purple)\n![Static Badge](https://img.shields.io/badge/Junit-5.8.1-red)\n![Static Badge](https://img.shields.io/badge/Jacoco-0.8.5-yellow)\n\n\u003cbr\u003e\n\u003chr\u003e\n\n \u003cdiv align=\"center\"\u003e\n\n [![forthebadge](https://forthebadge.com/images/badges/build-with-spring-boot.svg)](https://forthebadge.com)\n [![forthebadge](https://forthebadge.com/images/badges/uses-git.svg)](https://forthebadge.com)\n [![forthebadge](https://forthebadge.com/images/badges/made-with-typescript.svg)](https://forthebadge.com)\n [![forthebadge](https://forthebadge.com/images/badges/made-with-java.svg)](https://forthebadge.com)\n![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n\u003c/div\u003e\n\u003chr/\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopcodelab%2Fyoga","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpopcodelab%2Fyoga","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopcodelab%2Fyoga/lists"}