Skip to content

Latest commit

Β 

History

History
136 lines (102 loc) Β· 4.78 KB

File metadata and controls

136 lines (102 loc) Β· 4.78 KB

Wicebot : Slack Assistant πŸ’¬πŸ€–

Wicebot banner

Java Spring Boot Maven Slack OpenAI

Wicebot is a feature-rich, Java-powered Slack assistant that automates everyday workflows, answers questions with GPT-4o, and keeps your workspace humming.

Watch the demo


πŸ“’ Table of Contents

  1. Features
  2. Screenshots
  3. How It Works (Architecture)
  4. Quick Start
  5. Project Structure
  6. Command Reference
  7. Development Workflow
  8. Roadmap
  9. Contributing
  10. License & Acknowledgements

✨ Features

Category Description
πŸ€– AI Assistant Natural-language Q&A, summarization, sentiment analysis (OpenAI GPT-4o)
πŸ’¬ Slash Commands /wice help, /wice sentiment, /wice jira, /wice weather, /wice standup
πŸ—“οΈ Schedulers Cron-style reminders & daily stand-up digest
πŸ“Œ Interactive Blocks Modals & dialogs (e.g. create Jira ticket)
πŸ”Œ Plug-in System Add new commands via Spring @Component without touching core
πŸ“‘ Event Listeners Reacts to message_added, reaction_added, member_joined events
πŸ”­ Observability Prometheus metrics + structured JSON logs
πŸ›‘οΈ Security Slack signing secret validation & OAuth 2.0 token rotation

πŸ—οΈ How It Works (Architecture)

Wicebot banner

πŸš€ Quick Start

Prerequisites: Java 17, Maven, a Slack workspace, and an OpenAI API key.

git clone https://github.com/yashjani/slackbot.git && cd slackbot
cp .env.sample .env # fill in secrets
./mvnw spring-boot:run

Docker compose docker compose up -d will spin up Wicebot + Postgres + Redis.

πŸ“‚ Project Structure

slackbot/
β”œβ”€β”€ docs/               # Images / GIFs / extra docs
β”œβ”€β”€ src/main/java/
β”‚   β”œβ”€β”€ bot/            # Core Bolt app & config
β”‚   β”œβ”€β”€ commands/       # Slash command handlers
β”‚   β”œβ”€β”€ events/         # Event listeners
β”‚   β”œβ”€β”€ schedulers/     # Quartz jobs
β”‚   └── plugins/        # Drop-in feature modules
β”œβ”€β”€ src/test/java/      # Unit & integration tests
β”œβ”€β”€ .github/workflows/  # CI pipeline
└── docker-compose.yml

πŸ—‚οΈ Command Reference

Command Purpose Example
/wice help Show help & feature list β€”
/wice sentiment <text> Detect sentiment via GPT-4o /wice sentiment good job
/wice jira <title>; <desc> Open Jira modal to file ticket /wice jira Login bug; Login fails on 2FA
/wice weather <city> Current weather via Open-Meteo /wice weather Vancouver
/wice standup Start daily stand-up thread β€”

Tip: Enable shortcuts to surface commands in message composer.

πŸ”§ Development Workflow

GitHub Actions β†’ mvn test β†’ Build JAR β†’ Containerize β†’ Push to ghcr.io/yashjani/slackbot.

gantt
dateFormat  YYYY-MM-DD
section CI/CD Pipeline
Checkout Code     :done, 2025-05-10, 5m
Unit Tests         :done, after Checkout Code, 3m
Build JAR          :done, after Unit Tests, 4m
Docker Build       :done, after Build JAR, 4m
Deploy to Staging  :active, after Docker Build, 5m
Loading

πŸ›£οΈ Roadmap

  • AI Thread Summaries – auto-summarize active channels every 6 h
  • GitHub Releases Feed – notify on new tags
  • Voice Transcription – convert voice messages to text (Whisper-cpp)
  • Custom Helm Chart – push to Artifact Hub

🀝 Contributing

Guidelines
  1. Fork β†’ create feature branch
  2. Write tests (@SpringBootTest + SlackAppTest)
  3. Run ./mvnw spotless:apply
  4. Submit PR – GitHub Actions must pass 🟒

Feel free to open issues & feature requests. We love πŸ₯‘ first-timers!

βš–οΈ License & Acknowledgements

Licensed under the MIT License – see LICENSE.

Built with ❀ by @yashjani & community.

Special thanks to Slack Bolt team, Spring Boot maintainers, and OpenAI.