{"id":22349430,"url":"https://github.com/jaktestowac/gad-gui-api-demo","last_synced_at":"2025-07-30T06:31:22.473Z","repository":{"id":173049771,"uuid":"650140003","full_name":"jaktestowac/gad-gui-api-demo","owner":"jaktestowac","description":"GAD🦎 - Application for learning test automation of GUI and API","archived":false,"fork":false,"pushed_at":"2025-07-26T21:59:33.000Z","size":33021,"stargazers_count":19,"open_issues_count":6,"forks_count":16,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-07-26T23:30:45.043Z","etag":null,"topics":["api","auomation","gui","practice-testing","rest-api","test-automation","testing"],"latest_commit_sha":null,"homepage":"https://jaktestowac.pl/about-gad","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaktestowac.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,"zenodo":null}},"created_at":"2023-06-06T12:29:01.000Z","updated_at":"2025-06-26T17:50:48.000Z","dependencies_parsed_at":"2023-09-04T02:50:13.266Z","dependency_job_id":"33b75142-52f0-4d8d-bd4e-74e374c99ed2","html_url":"https://github.com/jaktestowac/gad-gui-api-demo","commit_stats":null,"previous_names":["jaktestowac/gad-gui-api-demo"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/jaktestowac/gad-gui-api-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaktestowac%2Fgad-gui-api-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaktestowac%2Fgad-gui-api-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaktestowac%2Fgad-gui-api-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaktestowac%2Fgad-gui-api-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaktestowac","download_url":"https://codeload.github.com/jaktestowac/gad-gui-api-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaktestowac%2Fgad-gui-api-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267822137,"owners_count":24149571,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"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":["api","auomation","gui","practice-testing","rest-api","test-automation","testing"],"created_at":"2024-12-04T11:08:17.799Z","updated_at":"2025-07-30T06:31:22.456Z","avatar_url":"https://github.com/jaktestowac.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jaktestowac/gad-gui-api-demo/assets/72373858/eadec2e8-229c-414f-81da-9ec4601b0972\" alt=\"GAD\" width=\"300\" height=\"300\"\u003e\n\u003c/p\u003e\n\n\u003e 💡 Choose your language:\n\u003e\n\u003e - 🇬🇧 [English](./README.md)\n\u003e - 🇵🇱 [Polski](./README.pl.md)\n\nThis application (called **🦎 GAD**) was prepared and developed **only for testing purposes**. It provides:\n\n- A graphical user interface (GUI)\n- REST API\n- Integrated Swagger documentation\n\nThe application includes features such as simple logic, statistics, charts, games, and various resources. It is intentionally designed with **deliberately bugs**🐛 and challenges to simulate real-world project complexities.\n\n**🦎 GAD** is ideal for learning test automation, refining QA techniques, and practicing with scenarios encountered in diverse, **real-world projects** with diverse real-world scenarios.\n\nP.S. In addition, the application has some **serious design flaws** - I wonder if you will notice them?😉\n\n# Table of Contents\n\n- [Features](#features)\n- [Deployment](#deployment)\n  - [Deploy on Local](#deploy-on-local)\n    - [First use](#first-use)\n    - [Update version](#update-version)\n      - [If You are using zip package](#if-you-are-using-zip-package)\n      - [If You are using cloned repository](#if-you-are-using-cloned-repository)\n      - [Update version if You have any changes (e.g. in database)](#update-version-if-you-have-any-changes-eg-in-database)\n    - [CLI options](#cli-options)\n      - [Running CLI options](#running-cli-options)\n  - [Deploy to Glitch](#deploy-to-glitch)\n  - [Deploy to Render](#deploy-to-render)\n  - [Deploy using Docker image](#deploy-using-docker-image)\n    - [Prerequisites:](#prerequisites)\n    - [Running](#running)\n- [Happy Automation!](#happy-automation)\n- [📞 Contact \u0026 Support](#-contact--support)\n- [Learning Resources](#learning-resources)\n  - [🇵🇱 Polish Resources](#-polish-resources)\n  - [🇬🇧 English Resources](#-english-resources)\n\n# Features\n\nFeatures of **🦎 GAD**:\n\n- **GUI** (front-end)\n- **REST API** and **WebSockets** (back-end)\n- **Two Application Domains**:\n  - **Testers Blog**\n    - Resources - Articles, Users, Comments, and more\n    - Functionalities - Likes, Comments, Tags, and user engagement tools\n    - Insights - Statistics and charts (e.g., likes per user, comments per article)\n    - **Authentication** and **Authorization**\n  - **Practice pages**\n    - A collection of pages featuring automation challenges, such as:\n      - Iframes\n      - File uploads\n      - Drag-and-drop\n      - Dynamic elements\n      - Likes, labels, and surveys\n      - Banners, pop-ups, front-end, and back-end logic\n      - Games and more!\n- **Swagger Documentation** - API documentation for seamless integration\n- **Simple Database** - JSON-based database with REST API endpoints for clearing/restoring data\n- **Various Data Sets** - Small, medium, and large datasets to simulate real-world scenarios\n- **Dynamic Configuration** - Adjust application settings **easily from the UI**\n  - **Feature Flags** - Enable or disable features\n  - **Bug Flags** - Introduce or remove bugs for testing purposes\n- Different **data presentation** (charts, tables etc.)\n- **Challenging elements for test automation** (iframes, file uploads, drag\u0026drop, 2 factor authentication, labels, surveys, banners, pop-ups, logic on front-end and back-end, dynamic elements, games etc.)\n- **Admins' Backoffice**: Includes advanced functionalities such as:\n  - Database reset\n  - SQL playground for experimenting and testing queries\n\n# Deployment\n\nInstructions how to deploy presented service to various free hosting sites.\n\n- [Deploy to Local](#deploy-on-local) (recommended)\n- [Deploy to Glitch](#deploy-to-glitch)\n- [Deploy to Render](#deploy-to-render)\n- [Deploy using Docker image](#deploy-using-docker-image)\n\n## Deploy on **Local**\n\nRequirements:\n\n- **node.js** installed in the system\n  - tested on node.js **v20** and **v22**\n- **git** installed in the system\n\n### First use\n\nSteps:\n\n1. Open the project root directory in cmd/terminal\n1. Clone the repository using `git clone ...`\n   - this is the **preferred way** to use this application\n1. Run `npm i`\n   - to install modules (don't use node.js global packages!)\n1. Run `npm run start`\n   - to start GAD\n\nThe application will be available at `http://localhost:3000`\n\n### Update version\n\n#### If You are using zip package\n\nSteps:\n\n1. Download zipped repository\n1. Unzip and replace Your local instance of GAD\n1. Run `npm i` in root directory\n   - to install new modules\n1. Run `npm run start`\n   - to start GAD\n\n#### If You are using cloned repository\n\nSteps:\n\n1. Open the project root directory in cmd/terminal\n1. Pull latest changes using `git pull`\n1. Run `npm i`\n   - to install new modules\n1. Run `npm run start`\n   - to start GAD\n\n### Update version if You have any changes (e.g. in database)\n\nOne possibility is to reset all Your local changes and pull new version.Using this method **You will lose all Your local changes and data**!\n\nSteps:\n\n1. Open the project root directory in cmd/terminal\n1. Reset local changes and pull latest changes using:\n   ```\n   git reset --hard HEAD\n   git pull\n   ```\n1. Run `npm i`\n   - to install new modules\n1. Run `npm run start`\n   - to start GAD\n\n### CLI options\n\n\u003e CLI (Command Line Interface) is an interface that allows you to interact with the application using commands in the terminal.\n\n| Option       | Description                                                                                                                          |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |\n| READ_ONLY=1  | Run in Read Only mode. This disables all POST, PUT, and PATCH methods, besides login.                                                |\n| PORT=3001    | Run on selected port. GAD runs on default port `3000`.                                                                               |\n| DB=\"db_name\" | Use selected database file. GAD uses `db.json` as default database. Example (for PowerShell): `$env:DB=\"db-base-big\"; npm run start` |\n\n⚠️ Warning: Any environment variables set in the terminal will be used by the application. If you want to run the application without any options, make sure to clear the environment variables.\n\n#### Running CLI options\n\nTo run GAD with **CLI options**, use the following commands e.g.:\n\nPowerShell:\n\n```PowerShell\n$env:PORT=3001; npm run start\n```\n\nBash:\n\n```Bash\nPORT=3001 npm run start\n```\n\nWindows Cmd:\n\n```\nset PORT=3001 \u0026\u0026 npm run start\n```\n\n## Deploy to **Render**\n\nRender - a popular Heroku-like PaaS with a free tier and a “Deploy to Render” button for one-click deploys.\n\n- Create free account on: https://dashboard.render.com/register\n- After successful registration hit the button:\n\n[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/jaktestowac/gad-gui-api-demo)\n\n- name your app\n- hit `Apply`\n- wait a while and click link to project `GUI API Demo`\n- click link to open app (under project name and repository)\n- enjoy 750 free hours of service per month\n\nWhen deploying the GAD application on Render, please be aware that the application may not function fully due to the limitations of the Render platform. However, we are making every effort to ensure the highest possible compatibility.\n\n## Deploy using Docker image\n\nThis method can be used:\n\n- locally\n- in CI/CD services (GitHub Actions, GitLab CI etc.)\n\n### Prerequisites:\n\nOn local environment:\n\n- latest Docker is installed\n\n### Running\n\nJust run following command to get latest image:\n\n```\ndocker run -p 3000:3000 -d jaktestowac/gad\n```\n\nor specific version:\n\n```\ndocker run -p 3000:3000 -d jaktestowac/gad:2.5.5\n```\n\nApplication should be running under http://localhost:3000/\n\nImages are available at:\n[🐋 hub.docker.com/repository/docker/jaktestowac](https://hub.docker.com/repository/docker/jaktestowac/gad/general)\n\n## Deploy to **Glitch**\n\n\u003e **⚠️ Warning: This deployment method is obsolete and no longer recommended.**\n\u003e\n\u003e Glitch has changed their [platform policies](https://blog.glitch.com/post/changes-are-coming-to-glitch/) and this deployment method may no longer work as expected. Please use one of the other deployment methods instead.\n\n~~No account needed - but your project will be deleted in 5 days.~~\n\n~~After clicking button below wait a minute or two to finish deployment.~~\n\n~~[![Remix on Glitch](https://cdn.glitch.me/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button-v2.svg)](https://glitch.com/edit/#!/import/github/jaktestowac/gad-gui-api-demo)~~\n\n~~To see website:~~\n\n~~- go to bottom buttons~~\n~~- click `🔎PREVIEW`~~\n~~- choose `👯Preview in a new window`~~\n\n~~When deploying the GAD application on Glitch, please be aware that the application may not function fully due to the limitations of the Glitch platform. However, we are making every effort to ensure the highest possible compatibility.~~\n\n## Happy Automation!\n\nWe hope you'll have a great time testing and automating this application!\n\nThe challenges and features included are designed to help you grow your testing skills while having fun.\n\nIf you have any ideas for improvements or encounter any issues, please don't hesitate to open an issue on our [GitHub repository](https://github.com/jaktestowac/gad-gui-api-demo/issues).\n\nYour feedback helps make GAD better for everyone!\n\n📢 Looking forward to your contributions and happy testing!🦎\n\n[🔝 Back to top](#introduction)\n\n## 📞 Contact \u0026 Support\n\nFeel free to reach out to us:\n\n- 🌐 **Website**: [jaktestowac.pl](https://jaktestowac.pl)\n- 💼 **LinkedIn**: [jaktestowac.pl](https://www.linkedin.com/company/jaktestowac/)\n- 💬 **Discord**: [Polish Playwright Community](https://discord.gg/mUAqQ7FUaZ)\n- 📧 **Support**: Check our website for contact details\n- 🐛 **Issues**: [GitHub Issues](https://github.com/jaktestowac/playwright-tools/issues)\n\n---\n\n## Learning Resources\n\nWe have gathered a collection of resources to help you learn and master Playwright, both in Polish and English. Whether you're a beginner or an advanced user, these resources will help you enhance your skills and knowledge.\n\n### **🇵🇱 Polish Resources**\n\n- [Free Playwright Resources](https://jaktestowac.pl/darmowy-playwright/) - Comprehensive Polish learning materials\n- [Playwright Basics](https://www.youtube.com/playlist?list=PLfKhn9AcZ-cD2TCB__K7NP5XARaCzZYn7) - YouTube series (Polish)\n- [Playwright Elements](https://www.youtube.com/playlist?list=PLfKhn9AcZ-cAcpd-XN4pKeo-l4YK35FDA) - Advanced concepts (Polish)\n- [Playwright MCP](https://www.youtube.com/playlist?list=PLfKhn9AcZ-cCqD34AG5YRejujaBqCBgl4) - MCP course (Polish)\n- [Discord Community](https://discord.gg/mUAqQ7FUaZ) - First Polish Playwright community!\n- [Playwright Info](https://playwright.info/) - first and only Polish Playwright blog\n\n### **🇬🇧 English Resources**\n\n- [VS Code Extensions](https://marketplace.visualstudio.com/publishers/jaktestowac-pl) - Our free Playwright plugins\n- [Playwright Documentation](https://playwright.dev/docs/intro) - Official documentation\n- [Playwright GitHub](https://github.com/microsoft/playwright) - Source code and issues\n\n_PS. For more resources and updates, follow us on our [website](https://jaktestowac.pl) and [GitHub](https://github.com/jaktestowac)._\n\n---\n\nPowered by **[jaktestowac.pl](https://www.jaktestowac.pl) team!** 💚❤️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaktestowac%2Fgad-gui-api-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaktestowac%2Fgad-gui-api-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaktestowac%2Fgad-gui-api-demo/lists"}