Skip to content

spider-hand/kingyo

Repository files navigation

kingyo

CI License: MIT python codecov

Self-hosted test planner inspired by Azure Test Plans

Kingyo means goldfish 🐠 in Japanese - a lightweight, no-fuss test planner your team can start using today.

Features

  • Create & manage test plans and cases with ease
  • Instant setup - start using in seconds
  • Self-host on your own infrastructure

Demo

Try it out here.

Use the following credentials to log in:
Username: kingyo-demo
Password: guest1234!

Local development

Prerequisite

Project setup

  1. Clone this repository:
git clone https://github.com/spider-hand/kingyo.git
cd kingyo
  1. Set up environment variables:
cp .env.example .env
cp server/.env.example server/.env
cp client/.env.example client/.env

Change the values if needed.

  1. Build and start the services:
docker-compose up --build -d
  1. Set up the database:
# Create a superuser based on the environment variable and seed initial data
docker-compose exec server python manage.py seed

# Create a superuser
docker-compose exec server python manage.py createsuperuser
  1. Access the application

Management

Docker services management:

# Start services
docker-compose up -d

# Stop services
docker-compose down

# Rebuild services
docker-compose up --build

# View logs
docker-compose logs server
docker-compose logs client

Django management:

# Create migrations
docker-compose exec server python manage.py makemigrations

# Run migrations
docker-compose exec server python manage.py migrate

# Seed database
docker-compose exec server python manage.py seed

# Create superuser
docker-compose exec server python manage.py createsuperuser

# Collect static files
docker-compose exec server python manage.py collectstatic

# Django shell
docker-compose exec server python manage.py shell

Database management:

# Access PostgreSQL
docker-compose exec db psql -U user -d kingyo_db

Development workflow

This project uses OpenAPI schema generation to keep the frontend and backend in sync. Here's the typical development workflow:

Prerequisite

  1. Backend API schema update

When you make changes to Django API, run:

# This will update OpenAPI schema (schema.yaml)
docker-compose exec server python manage.py migrate
  1. Frontend API client update
# Navigate to client directory
cd client

# Generate API client
npm run generate:api

Virtualenv

You need to set up virtualenv to run pre-commit hook.

Prerequisite

# Navigate to server directory
uv virtualenv

# Activate virtualenv
source .venv/bin/activate

# Install dependencies
uv sync

Contribution

  • Bug fix PRs are always welcome.
  • UI changes or new features should not be submitted without prior discussion. Please open an issue first to propose and discuss them.

Thanks for your understanding and contributions.

License

MIT