Skip to content
/ kiko Public

Kiko is a sleek pointing poker application written in Rust.

License

Notifications You must be signed in to change notification settings

SeedyROM/kiko

Repository files navigation

🫵 Kiko

GitHub License: MIT License

A simple but elegant pointing poker app for agile teams to estimate user stories and tasks.

📚 Meaning of Kiko

Kiko is a Hawaiian word meaning "dot," "point," or "spot" - referring to small marks or punctuation. In the context of this app, it refers to marking estimates for user stories and tasks during agile planning sessions.

👨‍💻 Development

📓 Prerequisite Dependencies

  • rust (v1.88.0 or later)

  • node (v20.0.0 or later) for npx

    • Install tailwind globally npm i -g tailwindcss

🏃‍♂️ Running Locally

./bin/dev (--release)

  • This runs the entire app in development or release mode
  • The frontend is served at http://localhost:8080 and the backend at http://localhost:3030 respectively
  • The frontend and backend are reloaded automatically when you make changes to the code
    • The frontend is built using trunk and the backend is built using cargo watch, read the documentation on each tool for more details

📖 Documentation

To generate documentation for all workspace crates without external dependencies:

cargo doc --no-deps --document-private-items

Add --open to automatically open the docs in your browser after generation.

🔧 Pre-commit Hooks

Pre-commit hooks are configured to run cargo fmt and cargo clippy automatically on each commit:

# Install pre-commit hooks (one-time setup)
pre-commit install

# Run hooks manually on all files
pre-commit run --all-files

The hooks will format code and check for linting issues, treating warnings as errors.

🐳 Docker Deployment

For production deployment with optimized builds and compression:

# Development mode
docker-compose up

# Production mode with resource limits
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

# Build all images
docker-compose build

# Build individual services
docker-compose build frontend
docker-compose build backend

Building and Pushing Images

Use the convenient build scripts to create and push Docker images:

# Build images locally (defaults to 'sleazyrom' username)
./bin/docker/docker-build [username]

# Push images to Docker Hub
./bin/docker/docker-push [username]

# Build and push in one command
./bin/docker/docker-build-and-push [username]

Examples:

# Build with custom username
./bin/docker/docker-build myusername

# Build and push with default username
./bin/docker/docker-build-and-push

Docker Architecture

  • Multi-stage builds: Optimized Dockerfiles for both services
  • Frontend: Rust 1.88 builder → Alpine runtime with nginx and brotli compression
  • Backend: Rust 1.88 builder → Debian slim runtime
  • Compression: Brotli compression provides 70-85% size reduction for frontend assets
  • Security: Non-root containers with health checks

🚀 Production Deployment

For complete production deployment with SSL/TLS certificates and domain setup:

See DEPLOYMENT.md for detailed production deployment instructions.

About

Kiko is a sleek pointing poker application written in Rust.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •