Skip to content

jaktestowac/gad-gui-api-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Introduction

GAD

Tip

πŸ’‘ Choose your language:

This application (called 🦎 GAD) was prepared and developed only for testing purposes. It provides:

  • A graphical user interface (GUI)
  • REST API
  • Integrated Swagger documentation

The 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.

🦎 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.

P.S. In addition, the application has some serious design flaws - I wonder if you will notice them?πŸ˜‰

Important

Want to quickly test the application?

  • clone or download the repository
  • run npm i
  • run npm run start
  • open http://localhost:3000 in your browser
  • enjoy testing and automating 🦎 GAD!

Table of Contents

Features

Features of 🦎 GAD:

  • GUI (front-end)
  • REST API and WebSockets (back-end)
  • Two Application Domains:
    • Testers Blog
      • Resources - Articles, Users, Comments, and more
      • Functionalities - Likes, Comments, Tags, and user engagement tools
      • Insights - Statistics and charts (e.g., likes per user, comments per article)
      • Authentication and Authorization
    • Practice pages
      • A collection of pages featuring automation challenges, such as:
        • Iframes
        • File uploads
        • Drag-and-drop
        • Dynamic elements
        • Likes, labels, and surveys
        • Banners, pop-ups, front-end, and back-end logic
        • Games and more!
  • Swagger Documentation - API documentation for seamless integration
  • Simple Database - JSON-based database with REST API endpoints for clearing/restoring data
  • Various Data Sets - Small, medium, and large datasets to simulate real-world scenarios
  • Dynamic Configuration - Adjust application settings easily from the UI
    • Feature Flags - Enable or disable features
    • Bug Flags - Introduce or remove bugs for testing purposes
  • Different data presentation (charts, tables etc.)
  • Challenging elements for test automation (iframes, file uploads, drag&drop, 2 factor authentication, labels, surveys, banners, pop-ups, logic on front-end and back-end, dynamic elements, games etc.)
  • Admins' Backoffice: Includes advanced functionalities such as:
    • Database reset
    • SQL playground for experimenting and testing queries

Deployment

Instructions how to deploy presented service to various free hosting sites.

Deploy on Local

Requirements:

  • node.js installed in the system
    • tested on node.js v20 and v22
  • git installed in the system

First use

Steps:

  1. Open the project root directory in cmd/terminal
  2. Clone the repository using git clone ...
    • this is the preferred way to use this application
  3. Run npm i
    • to install modules (don't use node.js global packages!)
  4. Run npm run start
    • to start GAD

The application will be available at http://localhost:3000

Update version

If You are using zip package

Steps:

  1. Download zipped repository
  2. Unzip and replace Your local instance of GAD
  3. Run npm i in root directory
    • to install new modules
  4. Run npm run start
    • to start GAD

If You are using cloned repository

Steps:

  1. Open the project root directory in cmd/terminal
  2. Pull latest changes using git pull
  3. Run npm i
    • to install new modules
  4. Run npm run start
    • to start GAD

Update version if You have any changes (e.g. in database)

One possibility is to reset all Your local changes and pull new version.Using this method You will lose all Your local changes and data!

Steps:

  1. Open the project root directory in cmd/terminal
  2. Reset local changes and pull latest changes using:
    git reset --hard HEAD
    git pull
    
  3. Run npm i
    • to install new modules
  4. Run npm run start
    • to start GAD

CLI options

Tip

CLI (Command Line Interface) is an interface that allows you to interact with the application using commands in the terminal.

Option Description
READ_ONLY=1 Run in Read Only mode. This disables all POST, PUT, and PATCH methods, besides login.
PORT=3001 Run on selected port. GAD runs on default port 3000.
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

Warning

⚠️ 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.

Running CLI options

To run GAD with CLI options, use the following commands e.g.:

PowerShell:

$env:PORT=3001; npm run start

Bash:

PORT=3001 npm run start

Windows Cmd:

set PORT=3001 && npm run start

Deploy to Render

Render - a popular Heroku-like PaaS with a free tier and a β€œDeploy to Render” button for one-click deploys.

Deploy to Render

  • name your app
  • hit Apply
  • wait a while and click link to project GUI API Demo
  • click link to open app (under project name and repository)
  • enjoy 750 free hours of service per month

When 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.

Deploy using Docker image

This method can be used:

  • locally
  • in CI/CD services (GitHub Actions, GitLab CI etc.)

Prerequisites:

On local environment:

  • latest Docker is installed

Running

Just run following command to get latest image:

docker run -p 3000:3000 -d jaktestowac/gad

or specific version:

docker run -p 3000:3000 -d jaktestowac/gad:2.5.5

Application should be running under http://localhost:3000/

Images are available at: πŸ‹ https://hub.docker.com/r/jaktestowac/gad

Deploy to Glitch

Warning

⚠️ Warning: This deployment method is obsolete and no longer recommended.

Glitch has changed their platform policies and this deployment method may no longer work as expected. Please use one of the other deployment methods instead.

No account needed - but your project will be deleted in 5 days.

After clicking button below wait a minute or two to finish deployment.

Remix on Glitch

To see website:

- go to bottom buttons - click πŸ”ŽPREVIEW - choose πŸ‘―Preview in a new window

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.

Happy Automation!

We hope you'll have a great time testing and automating this application!

The challenges and features included are designed to help you grow your testing skills while having fun.

If you have any ideas for improvements or encounter any issues, please don't hesitate to open an issue on our GitHub repository.

Your feedback helps make GAD better for everyone!

πŸ“’ Looking forward to your contributions and happy testing!🦎

πŸ” Back to top

πŸ“ž Contact & Support

Feel free to reach out to us:


Learning Resources

We 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.

πŸ‡΅πŸ‡± Polish Resources

AI_Testers

Gain an edge by combining AI knowledge with the most popular tools in the IT market.
We'll show you how to accelerate with AI and build a professional test automation framework. πŸ˜‰

πŸ‡¬πŸ‡§ English Resources

PS. For more resources and updates, follow us on our website and GitHub.


Powered by jaktestowac.pl team! πŸ’šβ€οΈ