{"id":20538179,"url":"https://github.com/jaredloomis/declare","last_synced_at":"2026-04-07T09:31:07.860Z","repository":{"id":50931637,"uuid":"187749366","full_name":"jaredloomis/declare","owner":"jaredloomis","description":"Node.js/React.js platform for creating automated web tests without code","archived":false,"fork":false,"pushed_at":"2021-05-27T11:57:16.000Z","size":5384,"stargazers_count":0,"open_issues_count":41,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-30T03:44:02.317Z","etag":null,"topics":["graphql","nodejs","qa","qa-automation","react","selenium","testing"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaredloomis.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}},"created_at":"2019-05-21T02:44:50.000Z","updated_at":"2021-09-02T04:54:48.000Z","dependencies_parsed_at":"2022-08-26T13:40:56.620Z","dependency_job_id":null,"html_url":"https://github.com/jaredloomis/declare","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredloomis%2Fdeclare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredloomis%2Fdeclare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredloomis%2Fdeclare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredloomis%2Fdeclare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaredloomis","download_url":"https://codeload.github.com/jaredloomis/declare/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224862958,"owners_count":17382283,"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":["graphql","nodejs","qa","qa-automation","react","selenium","testing"],"created_at":"2024-11-16T00:45:50.603Z","updated_at":"2025-12-30T21:32:17.839Z","avatar_url":"https://github.com/jaredloomis.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Declare QA\n\n![Declare QA Logo](https://raw.githubusercontent.com/jaredloomis/declare/master/assets/dist/declare_logo_banner.png)\n\n**Declare QA** makes it easy for anyone to create robust website tests without code!\nDeclare's powerful visual interface handles the details of creating dependable tests, so\nyou can focus on testing the functionality of your product.\n\n**Design \u0026 Implementation Slideshow:** [Google Docs](https://docs.google.com/presentation/d/15bFoPJEJzJWeDyA1zzsxqcS4AooK2U5TPgiYnaC0LHM/edit?usp=sharing)\n\nMost automated testing platforms provide little in the way of test maintenance tools. Tests\nbreak often and are time consuming to repair, wasting time that could be spent creating new\ntests. This leads to many automation projects falling into a cycle of perpetual maintenance,\nunable to test new functionality without losing coverage to flakiness.\n\nDeclare solves this by introducing tools for reducing duplicated functionality and improving\norganization of tests.\n\n### Powerful Page Navigation\n\n![Declare Page Link](https://raw.githubusercontent.com/jaredloomis/declare/master/assets/dist/screenshot_page_view_link.png)\n\nDeclare eliminates the need for writing test steps to navigate between pages. With the concept\nof links between pages, you describe how to get from page to page. Declare handles the rest.\n\n### Intuitive Page-Based Test Management\n\n![Declare Page List](https://raw.githubusercontent.com/jaredloomis/declare/master/assets/dist/screenshot_page_list.png)\n\nWith Declare, organizing your tests cases is dead simple, even as these test cases grow. Tests\nare grouped by page for automatic organization.\n\n### Stable Tests with the Power of Saved Elements Selectors\n\n![Declare Elements](https://raw.githubusercontent.com/jaredloomis/declare/master/assets/dist/screenshot_elements.png)\n\nDeclare's saved elements make test maintenance a snap! Element selectors are stored in an\norganized list, which is customizable to allow for increased clarity.\n\n# Simple Installation\n\nDeclare can be installed on multiple nodes as a distributed system, but can be\neasily installed on any compute, whether in the cloud or on a physical machine.\n\nThe \"full\" installation architecture of the application comprises two node types\n(running on EC2 instances, for example), with a third acting as a database.\n\nThis document describes how to install all components on a single system.\n\n**Installing Dependencies**\n\n- `nginx` running as a service (`systemctl start nginx`)\n- `mongodb` running as a service (`systemctl start mongodb`)\n- `node` installed and in `PATH`\n- `gulp` installed and in `PATH`\n- `yarn` installed and in `PATH`\n\n**Running the server**\n\nDownload the source code from git, then run the server!\nThis may take a few minutes to download additional dependencies.\n\n```bash\n$ git clone https://github.com/jaredloomis/declare\n$ cd declare\n$ yarn run start\n```\n\nYour server is now running on port 3000!\n\n**Remote Installation**\n\nIf you are running Declare on a cloud server, you need to set up\nan nginx reverse proxy to proxy requests coming from public port\n`80`, to your server running on port `3000`.\n\n```bash\n$ sudo bash scripts/register_nginx_proxy.sh\n```\n\nNow your server can receive outside requests.\n\n### Server controls\n\nThe server can be restarted or stopped\n\n```bash\n$ yarn run restart\n$ yarn run stop\n```\n\n# Technology Stack\n\n- [Node.js](https://nodejs.org/) handles all backend compute\n- [GraphQL](https://graphql.org/) is the client-server communication protocol\n\n- [React.js](https://reactjs.org/) for all frontend rendering\n- [Redux](https://redux.js.org/) to manage frontend state\n- [SASS](https://sass-lang.com/) and [Bulma](https://bulma.io/) keep things pretty\n\n- [Selenium](https://www.seleniumhq.org/) runs tests in a chrome browser\n- [nginx](https://www.nginx.org/) proxies requests from the outside world\n- [webpack](https://gulpjs.com/) is responsible for building the client\n- [gulp](https://gulpjs.com/) builds the server\n\n# Contribute\n\nI will graciously accept any contributions, and may be able to provide minimal\ncompensation as an added plus (contact me). Please see the\n[public Trello board](https://trello.com/b/8rqPTLFl/declare).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredloomis%2Fdeclare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaredloomis%2Fdeclare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredloomis%2Fdeclare/lists"}