{"id":20548793,"url":"https://github.com/zenika/skillz","last_synced_at":"2025-04-14T10:53:43.459Z","repository":{"id":37721426,"uuid":"306325090","full_name":"Zenika/skillZ","owner":"Zenika","description":"App to manage consultants' skills and technical appetites.","archived":false,"fork":false,"pushed_at":"2025-04-01T05:59:49.000Z","size":9390,"stargazers_count":6,"open_issues_count":70,"forks_count":2,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-05T14:35:24.004Z","etag":null,"topics":["internal"],"latest_commit_sha":null,"homepage":"https://skillz.zenika.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zenika.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":"2020-10-22T12:10:03.000Z","updated_at":"2025-02-24T09:32:13.000Z","dependencies_parsed_at":"2023-10-02T07:26:40.916Z","dependency_job_id":"558a6df4-525f-409b-a446-a4c90041ddcf","html_url":"https://github.com/Zenika/skillZ","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zenika%2FskillZ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zenika%2FskillZ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zenika%2FskillZ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zenika%2FskillZ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zenika","download_url":"https://codeload.github.com/Zenika/skillZ/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868773,"owners_count":21174757,"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":["internal"],"created_at":"2024-11-16T02:14:48.925Z","updated_at":"2025-04-14T10:53:43.453Z","avatar_url":"https://github.com/Zenika.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"public/logo/skillz-light.png\"\u003e\n\u003c/p\u003e\n\n# Skillz\n\nSkillZ is an application for managing the skills and competences of Zenika's different collaborators. It aims at gathering the feedbacks in order to match the different profiles with missions or trainings that correspond the best.\n\nActually there is 3 diferents applications all functional, and linked to each other :\n\n- Skillz web app\n- Skillz Slack bot\n- Skillz analytics this version is available for DT to analyze Skillz datas\n\nIn this repository, you can access to Skillz web app and Skillz Slack bot.\n\nIf you have any questions about the diferents projects, don't hesitate to open issues on this repository, or ask your questions on the channel **#project-skillz** in the Zenika's Slack.\n\n# Web application\n\n## Requirements\n\n- Node 22\n- NPM\n- Docker\n\n## Quick start\n\n### Install dependencies\n\nInstall dependencies\n\n```bash\nnpm install\n```\n\n### Create an .env file \u003ca name=\".env\"\u003e\u003c/a\u003e\n\nCreate an file named `.env`, then add these variables :\n\n```bash\n# If you're using Linux, your local (or distant) hasura endpoint url should looks like this :\nNEXT_PUBLIC_GRAPHQL_URL=http://localhost:8080/v1/graphql\nNEXT_PUBLIC_BASE_URL=http://localhost:3000\nNEXT_API_BEARER_TOKEN=Bearer key\n\n## HASURA\nSKILLZ_GRAPHQL_JWT_SECRET={\"type\": \"RS512\", \"key\": \"{your-certificate}\"}\nHASURA_ACHIEVEMENTS_ENDPOINT=http://172.17.0.1:3000/api/achievement\nHASURA_ADMIN_SECRET=key\n\n## AUTH0\nNEXT_PUBLIC_AUTH0_CONNECTION=google-oauth2\nNEXT_PUBLIC_AUTH0_DOMAIN=\nNEXT_PUBLIC_AUTH0_CLIENT_ID=\nNEXT_PUBLIC_AUTH0_AUDIENCE=\nNEXT_PUBLIC_AUTH0_CALLBACK=/auth\n```\n\n### Run postgres and hasura locally with docker \u003ca name=\"postgres\"\u003e\u003c/a\u003e\n\nStart by running `docker compose up -d` to launch the postgres database and the hasura graphql-engine.\n\nCheck that engine is running by going to `http://localhost:8080` (do not modify schemas through this URL).\n\n### Run the hasura migrations \u003ca name=\"hasuramigrations\"\u003e\u003c/a\u003e\n\nIn order to initialize / update the database run :\n\n```bash\n# Sets up the schema\nnpm run hasura migrate apply\n\n# Sets up GraphQL\nnpm run hasura metadata apply\n\n# Optional : seeds/cleans up the database with referential data\nnpm run hasura seed apply\n```\n\n### Develop with hasura\n\nFor hasura to to keep track of schema changes in the hasura/migrations folder and generate the migration files properly the hasura console must be run apart from the \"in-app\" hasura engine\nand console.\n\n```bash\n# Runs in another console\nnpm run hasura console\n```\n\n### Run the app\n\n```bash\n# Runs in another console\nnpm run dev\n```\n\nThe application should be available at the URL specified in your .env file under `NEXT_PUBLIC_BASE_URL`.\n\n## Tests\n\n### Unit tests\n\nRun the following command :\n\n```bash\nnpm run test:unit\n```\n\n### 2E2 Tests\n\nBefore running cypress tests, all data from the test user should be deleted.\n\nCreate a file named `.env.test`, with the same content as the .env.\nReplace the value of the variable `NEXT_PUBLIC_AUTH0_CONNECTION` with `Username-Password-Authentication`\n\nCreate a file named `cypress.env.json` at the root of the project with the following content :\n\n```json\n{\n  \"test_username\": \"\",\n  \"test_password\": \"\"\n}\n```\n\nIn order to run all tests :\n\n```bash\n# start the webapp\nnpm run build:e2e\nnpm run start:e2e\n## or\nNODE_ENV=test npm run dev\n\n# start cypress tests\nnpm run cypress:run\n## or with ui\nnpm run cypress:open\n```\n\n# Documentation\n\n## Management rules\n\nSee all rules in `doc/rg.md`. You can find the part of the code corresponding to each rule in the comments of the code.\n\n# Github\n\n## Actions\n\n### Update referentials\n\nThis Github Actions is located in `.github/workflows/update-referentials.yml`\n\n- Run every monday à 6:00am UTC\n- Get all approved data from skills.zenika.com\n- Update files located in hasura/seeds with new approved data\n- Create a merge request\n\n## Dependabot\n\nDependabot helps us keep our dependencies up to date. It checks our dependency files for outdated requirements and opens\nindividual PRs.\n\nThe configuration file is located in `.github/dependabot.yml`\n\n- Run every first day of the month\n- Create PR for skills-app and skills-bot","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenika%2Fskillz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzenika%2Fskillz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenika%2Fskillz/lists"}