Built with the tools and technologies:
- β οΈ Table of Contents
- π Overview
- π₯ Features
- π Project Structure 4.1. π Project Index
- π Getting Started 5.1. π Prerequisites 5.2. β‘ Installation 5.3. π Usage 5.4. π Testing
- π» Roadmap
- π€ Contributing
- π License
- β¨ Acknowledgments
StrategIQ is an AI-powered SWOT analysis platform that transforms any entity β company, URL, or product β into actionable business intelligence. Using advanced language models (Claude, GPT-4) and web-search grounding via Tavily, the system researches, compares, and generates comprehensive SWOT analyses with competitive intelligence from Reddit and the open web.
- π Intelligent URL Analysis - Extracts and analyzes content from any web page
- π§ AI-Powered SWOT - Generates structured SWOT analysis using Claude/GPT-4
- π¬ Reddit Intelligence - Gathers competitive insights from relevant subreddits
- β‘ Async Processing - Celery-based task queue for long-running analysis
- βΏ Accessible UI - WCAG 2.1 AA compliant responsive interface
- π¨ Modern Frontend - SCSS modular architecture with progressive enhancement
- Multi-model support (Anthropic Claude, OpenAI GPT-4o-mini)
- Tool-augmented generation with Reddit intelligence
- Structured output validation with Pydantic
- Async task processing with Celery
- Component-based templates with Jinjax
- HTMX for progressive enhancement
- Modular SCSS architecture (7-1 pattern)
- Full keyboard navigation and screen reader support
- Progressive loading with real-time status updates
- Docker containerization with multi-stage builds
- GitHub Actions CI/CD with Komodo deployment
- Traefik reverse proxy with Let's Encrypt
- Health checks and monitoring
- Environment-based configuration
βββ strategiq/
βββ .github
β βββ workflows
βββ bin
β βββ build.sh
β βββ linux_build.sh
β βββ python_build.sh
β βββ start.sh
βββ compose.yaml
βββ core_requirements.in
βββ core_requirements.txt
βββ dev_requirements.in
βββ dev_requirements.txt
βββ docker
β βββ celery
β βββ pygentic_ai
βββ Dockerfile
βββ pyproject.toml
βββ README.md
βββ src
β βββ app.py
β βββ backend
β βββ cworker.py
β βββ frontend
βββ uv.lockstrategiq/
__root__
β¦Ώ __root__
File Name Summary compose.yaml Code>β― REPLACE-ME core_requirements.in Code>β― REPLACE-ME core_requirements.txt Code>β― REPLACE-ME dev_requirements.in Code>β― REPLACE-ME dev_requirements.txt Code>β― REPLACE-ME Dockerfile Code>β― REPLACE-ME pyproject.toml Code>β― REPLACE-ME
bin
β¦Ώ bin
File Name Summary build.sh Code>β― REPLACE-ME linux_build.sh Code>β― REPLACE-ME python_build.sh Code>β― REPLACE-ME start.sh Code>β― REPLACE-ME
src
β¦Ώ src
File Name Summary app.py Code>β― REPLACE-ME cworker.py Code>β― REPLACE-ME backend
frontend
β¦Ώ src.frontendtemplates
β¦Ώ src.frontend.templates
File Name Summary home.html Code>β― REPLACE-ME result.html Code>β― REPLACE-ME status.html Code>β― REPLACE-ME components
β¦Ώ src.frontend.templates.componentsforms
β¦Ώ src.frontend.templates.components.forms
File Name Summary Form.jinja Code>β― REPLACE-ME Search.jinja Code>β― REPLACE-ME main
β¦Ώ src.frontend.templates.components.main
File Name Summary base.html Code>β― REPLACE-ME Base.jinja Code>β― REPLACE-ME footer.html Code>β― REPLACE-ME Footer.jinja Code>β― REPLACE-ME header.html Code>β― REPLACE-ME Header.jinja Code>β― REPLACE-ME nav.html Code>β― REPLACE-ME Nav.jinja Code>β― REPLACE-ME Scripts.jinja Code>β― REPLACE-ME Stylesheets.jinja Code>β― REPLACE-ME style_sheets.html Code>β― REPLACE-ME snippets
β¦Ώ src.frontend.templates.components.snippets
File Name Summary Css.jinja Code>β― REPLACE-ME js.html Code>β― REPLACE-ME Js.jinja Code>β― REPLACE-ME NavbarBrand.jinja Code>β― REPLACE-ME NavbarMenu.jinja Code>β― REPLACE-ME Result.jinja Code>β― REPLACE-ME ResultEntry.jinja Code>β― REPLACE-ME Spinner.jinja Code>β― REPLACE-ME StatusResult.jinja Code>β― REPLACE-ME
.github
β¦Ώ .githubworkflows
β¦Ώ .github.workflows
File Name Summary bandit.yml Code>β― REPLACE-ME docker-image.yml Code>β― REPLACE-ME
docker
β¦Ώ dockercelery
β¦Ώ docker.celery
File Name Summary start.sh Code>β― REPLACE-ME pygentic_ai
β¦Ώ docker.pygentic_ai
File Name Summary build.sh Code>β― REPLACE-ME python_build.sh Code>β― REPLACE-ME python_start.sh Code>β― REPLACE-ME
This project requires the following dependencies:
- Programming Language: Python 3.13+
- Package Manager: uv (recommended) or pip
- Container Runtime: Docker & Docker Compose
- Task Runner: just (command runner)
- Node.js: For frontend asset compilation (npm)
macOS/Linux:
# macOS
brew install just
# Linux
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/binWindows:
# Using Scoop
scoop install just
# Using Chocolatey
choco install just-
Clone the repository:
git clone https://github.com/FJS-Services-Inc/strategiq
-
Navigate to the project directory:
cd strategiq -
Quick setup with justfile (recommended):
# One command setup: creates .env, installs deps, compiles SCSS just setup -
Manual installation (alternative):
Using docker:
```sh
β― docker build -t s3docker.francissecada.com/pygentic_ai .
```
Using pip:
```sh
β― pip install -r core_requirements.txt, dev_requirements.txt
```
If this fails due to platform-specific issues, try this instead:
```sh
β― pip install -r core_requirements.in, dev_requirements.in
```
Using uv:
```sh
β― uv sync --all-extras --dev
```
Quick start (recommended):
# Terminal 1: Start FastAPI development server
just dev
# Terminal 2: Start Celery worker
just celery
# Terminal 3: Auto-compile SCSS on changes
just scss-watchManual start:
# Using uv (recommended)
uv run python src/app.py # FastAPI server
uv run python src/cworker.py # Celery worker
# Using pip
python src/app.py
python src/cworker.pyWith justfile:
# Build and start all services
just build
just up-d
# Check status
just health
just ps
# View logs
just logs-fManual Docker commands:
# Build image
docker build -t s3docker.francissecada.com/pygentic_ai:latest .
# Start services
docker-compose up -d
# View logs
docker-compose logs -fRun just to see all available commands:
just # List all commands
just --list # Same as above
# Common commands
just setup # First-time setup
just dev # Development server
just test # Run tests
just build [tag] # Build Docker image
just deploy [tag] # Deploy to production
just health # Check service health
just clean # Clean up containersRun all tests:
just test # Quick test run
just test-cov # With coverage reportManual testing:
# Using uv (recommended)
uv run pytest tests/ -v
uv run pytest tests/ --cov=src --cov-report=html
# Using pip
pytest tests/ -vQuality checks:
just lint # Run linters
just format # Format code
just security # Security scan
just check # All checks (pre-commit)This project includes a multi-agent orchestration system for Claude AI to assist with development.
The project includes two key files for Claude integration:
.claude/system-prompt.md- Multi-agent orchestration instructions (personas, MCP routing, patterns)CLAUDE.md- Project initialization guide (architecture, workflows, commands)
Claude activates appropriate personas based on the task:
- ποΈ Architect - System design, architecture decisions, scaling
- π¨ Frontend - UI/UX, SCSS, accessibility, Jinjax components
- βοΈ Backend - FastAPI, Celery, database, AI agents
- π Security - Authentication, secrets, input validation
- π DevOps - Docker, CI/CD, deployment, monitoring
# View Claude context files
just start-claude # Display orchestration context
# When using Claude
# Use /init command to load project context from CLAUDE.md
# Claude will activate appropriate personas for your taskFeature Development:
User: "Add user authentication"
Claude: Activates ποΈ Architect, π Security, βοΈ Backend, π¨ Frontend
- Designs auth architecture
- Implements secure endpoints
- Creates login UI components
- Updates deployment configs
Bug Fixing:
User: "Fix SCSS compilation error"
Claude: Activates π¨ Frontend persona
- Identifies SCSS syntax issues
- Runs just scss to verify fix
- Updates documentation if needed
Quick reference for common just commands:
just setup # First-time project setup
just dev # Start FastAPI dev server
just celery # Start Celery worker
just scss # Compile SCSS once
just scss-watch # Auto-compile SCSS on changes
just npm-install # Install frontend dependenciesjust build [tag] # Build Docker image
just up # Start services
just up-d # Start in detached mode
just down # Stop services
just restart # Restart services
just logs-f # Follow all logs
just logs-web # Follow web service logs
just logs-celery # Follow celery logs
just health # Check service health
just ps # Show container status
just stats # Show resource usagejust test # Run test suite
just test-cov # Run with coverage
just lint # Run linters
just format # Format code
just security # Security scan
just check # All quality checksjust deploy [tag] # Deploy with specific tag
just deploy-dev # Deploy dev environment
just deploy-main # Deploy production
just pull [tag] # Pull Docker imagejust migrate # Run migrations
just migration [name] # Create migrationjust clean # Remove containers
just clean-images # Remove images
just clean-all # Full cleanup
just prune # Remove unused resourcesjust info # Show environment info
just config # Show Docker Compose config
just check-env # Validate environment variables
just init-env # Create .env from templateFor a complete list: just --list
-
Task 1: Bootstrap a minimal application build -
Task 2: Implement DB Backend with PostgreSQL -
Task 3: Integrate user auth and group controls
- π¬ Join the Discussions: Share your insights, provide feedback, or ask questions.
- π Report Issues: Submit bugs found or log feature requests for the
StrategIQproject. - π‘ Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/FJS-Services-Inc/strategiq
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
StrategIQ is protected under the LICENSE License. For more details, refer to the LICENSE file.
- Credit
contributors,inspiration,references, etc.