{"id":40952453,"url":"https://github.com/arbisoft/session-portal-frontend","last_synced_at":"2026-01-22T05:15:28.489Z","repository":{"id":274767343,"uuid":"877882126","full_name":"arbisoft/session-portal-frontend","owner":"arbisoft","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-17T12:52:06.000Z","size":1756,"stargazers_count":0,"open_issues_count":3,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-11-17T14:18:44.923Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/arbisoft.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-24T12:08:01.000Z","updated_at":"2025-10-27T13:19:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"96b51c3c-33cf-40b1-ab90-2f04912eddad","html_url":"https://github.com/arbisoft/session-portal-frontend","commit_stats":null,"previous_names":["arbisoft/session-portal-frontend"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/arbisoft/session-portal-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbisoft%2Fsession-portal-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbisoft%2Fsession-portal-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbisoft%2Fsession-portal-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbisoft%2Fsession-portal-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arbisoft","download_url":"https://codeload.github.com/arbisoft/session-portal-frontend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbisoft%2Fsession-portal-frontend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28655490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-01-22T05:15:27.818Z","updated_at":"2026-01-22T05:15:28.477Z","avatar_url":"https://github.com/arbisoft.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- badges --\u003e\n\n![REACT](https://img.shields.io/badge/React%2018.3.1-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB)\n![NEXT JS](https://img.shields.io/badge/next%20js%2014.2.15-000000?style=for-the-badge\u0026logo=nextdotjs\u0026logoColor=white)\n![TYPESCRIPT](https://img.shields.io/badge/TypeScript%205.5.4-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![MATERIAL UI](https://img.shields.io/badge/Material%20UI%206.6.1-007FFF?style=for-the-badge\u0026logo=mui\u0026logoColor=white)\n![PLAYWRIGHT](https://img.shields.io/badge/Playwright%201.43.1-45ba4b?style=for-the-badge\u0026logo=Playwright\u0026logoColor=white)\n![ESLINT](https://img.shields.io/badge/eslint%208.57.1-3A33D1?style=for-the-badge\u0026logo=eslint\u0026logoColor=white)\n![GITHUB ACTIONS](https://img.shields.io/badge/Github%20Actions-282a2e?style=for-the-badge\u0026logo=githubactions\u0026logoColor=367cfe)\n\n# Arbisoft Sessions Portal Frontend\n\n## Getting Started\n\n1. Clone repository\n\n   ```bash\n   git clone https://github.com/arbisoft/session-portal-frontend.git session-portal\n   ```\n\n2. Install dependencies\n\n   ```bash\n   cd session-portal\n   npm install\n   ```\n\n3. Copy example environment file\n\n   ```bash\n   cp example.env.local .env.local\n   ```\n\n4. Run development server\n\n   ```bash\n   npm run dev\n   ```\n\n## For Testing\n\n### Installation\n\n```bash\nnpx playwright install\n```\n\n### Running tests\n\n1. Run development server\n\n   ```bash\n   npm run dev\n   ```\n\n1. Run Playwright\n\n   ```bash\n    npx playwright test --ui\n   ```\n\n   or\n\n   ```bash\n   npx playwright test\n   ```\n\n## Jest Configuration Overview\n\n### 1. **Next.js Jest Setup**\n   - The configuration uses `next/jest` to load the Next.js app's configuration (`next.config.js`) and environment variables (`.env`) into the test environment.\n   - The `dir: \"./\"` option specifies the root directory of the Next.js app.\n\n   ```typescript\n   const createJestConfig = nextJest({\n     dir: \"./\",\n   });\n   ```\n\n### 2. **Custom Jest Configuration**\n   The following custom settings are applied to the Jest configuration:\n\n   - **`coverageProvider: \"v8\"`**: Uses the V8 engine for code coverage analysis, which is faster and more reliable.\n   - **`testEnvironment: \"jsdom\"`**: Sets the test environment to `jsdom`, enabling DOM-based testing for components.\n   - **`setupFilesAfterEnv`**: Specifies a setup file (`jest.setup.ts`) to run before each test. This is useful for configuring global test setups, such as mocking libraries or initializing test utilities.\n     ```typescript\n     setupFilesAfterEnv: [\"\u003crootDir\u003e/jest.setup.ts\"],\n     ```\n   - **`moduleNameMapper`**: Maps CSS and SCSS files to `identity-obj-proxy` to avoid errors when importing styles in tests.\n     ```typescript\n     moduleNameMapper: {\n       \"\\\\.(css|less|scss|sass)$\": \"identity-obj-proxy\",\n     },\n     ```\n   - **`testMatch`**: Defines the pattern for locating test files. It includes:\n     - Files in the `__tests__` directory.\n     - Files with `.test.[jt]s(x)?` or `.spec.[jt]s(x)?` extensions.\n     ```typescript\n     testMatch: [\"**/__tests__/**/*.[jt]s?(x)\", \"**/?(*.)+(test).[jt]s?(x)\"],\n     ```\n      - Ensure your test files follow the naming conventions specified in `testMatch`.\n   - **`coverageThreshold`**: Sets minimum coverage thresholds for the entire project:\n     - Branches: 80%\n     - Functions: 80%\n     - Lines: 80%\n     - Statements: -10 (no threshold, but included for reference)\n     ```typescript\n     coverageThreshold: {\n       global: { branches: 80, functions: 80, lines: 80, statements: -10 },\n     },\n     ```\n   - **`coverageDirectory`**: Specifies the directory where coverage reports will be saved.\n     ```typescript\n     coverageDirectory: \"./coverage/\",\n     ```\n\n### 3. **View Coverage**:\n   After running tests, check the `./coverage/` directory for detailed coverage reports.\n\n# **Using `nvm use` to Switch to Node.js 22 LTS**\n\n## **Overview**\nThis guide explains how to use `nvm` (Node Version Manager) to switch to **Node.js 22 LTS** and ensure that the correct version is being used in your project.\n\n## **1. Install NVM (If Not Installed)**\nIf you don’t have `nvm` installed, follow these steps:\n\n### **For macOS \u0026 Linux:**\nRun the following command:\n```sh\ncurl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash\n```\nThen restart your terminal or run:\n```sh\nsource ~/.nvm/nvm.sh\n```\n\n### **For Windows:**\nUse **nvm-windows**: [Download Here](https://github.com/coreybutler/nvm-windows/releases)\n\n## **2. Verify NVM Installation**\nTo check if `nvm` is installed, run:\n```sh\nnvm --version\n```\nYou should see the version number displayed.\n\n## **3. Install and Use Node.js 22 LTS**\nRun the following command to install Node.js 22 LTS:\n```sh\nnvm install 22\n```\n\nOnce installed, switch to Node.js 22:\n```sh\nnvm use 22\n```\n\nTo verify that the correct version is active, run:\n```sh\nnode -v\n```\nThis should output something like:\n```sh\nv22.x.x\n```\n\n## **4. Set Node.js 22 as the Default Version (Optional)**\nIf you want Node.js 22 LTS to be the default version when opening a new terminal, set it globally:\n```sh\nnvm alias default 22\n```\nNow, every time you open a new terminal session, Node.js 22 will be used.\n\n## **6. Troubleshooting**\n- If `nvm use 22` does not work, make sure you have installed Node.js 22 using `nvm install 22`.  \n- If `nvm` commands are not recognized, restart your terminal or run:\n  ```sh\n  source ~/.nvm/nvm.sh\n  ```\n- On Windows, ensure you're using `nvm-windows` and check `nvm list` for installed versions.\n\n## Inspiration\n\nBoilerplate Inspiration (https://github.com/brocoders/extensive-react-boilerplate).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbisoft%2Fsession-portal-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farbisoft%2Fsession-portal-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbisoft%2Fsession-portal-frontend/lists"}