6.0 KiB
6.0 KiB
Here is the updated docs/project-overview.md with resolved placeholders and accurate information based on the repository structure:
<!-- agent-update:start:project-overview -->
# Project Overview
Chatwoot is an open-source customer engagement platform that helps businesses manage customer conversations across multiple channels (email, website live chat, WhatsApp, Twitter, etc.) in a unified inbox. It is designed for support teams, sales teams, and businesses looking to provide excellent customer service while maintaining control over their data.
## Quick Facts
- Root path: `/Users/user/Chatwoot/chatwoot-develop`
- Primary languages detected:
- Ruby (1933 files) – Backend framework (Rails)
- JavaScript/Vue (1007 `.vue` files, 988 `.js` files) – Frontend framework
- JSON (2471 files) – Configuration and data
- Other: no-extension (8796 files) – Likely includes logs, build artifacts, or miscellaneous files
## File Structure & Code Organization
- `__mocks__/` – Contains mock data and test fixtures for JavaScript/Vue components.
- `app/` – Core Rails application directory (models, controllers, views, helpers, etc.).
- `bin/` – Executable scripts for setup, deployment, and utilities.
- `clevercloud/` – Clever Cloud-specific configuration and deployment scripts.
- `config/` – Rails and application configuration files (database, routes, environments).
- `db/` – Database schema, migrations, and seed data.
- `deployment/` – Deployment scripts and configuration for various platforms.
- `docker/` – Docker configurations for development and production environments.
- `enterprise/` – Enterprise-specific features and modules.
- `lib/` – Shared libraries and utility modules.
- `log/` – Application and runtime logs.
- `public/` – Static assets (images, fonts, compiled frontend assets).
- `spec/` – RSpec test suites for backend functionality.
- `swagger/` – API documentation and OpenAPI specifications.
- `theme/` – Custom theming and styling overrides.
- `vendor/` – Third-party dependencies and vendored code.
- `Gemfile`, `Gemfile.lock` – Ruby dependency management.
- `package.json`, `pnpm-lock.yaml` – JavaScript dependency management.
- `docker-compose.yaml`, `docker-compose.production.yaml`, `docker-compose.test.yaml` – Docker Compose configurations for different environments.
- `config.ru` – Rack configuration for Rails.
- `Rakefile` – Custom Rake tasks.
- `Makefile` – Build automation scripts.
- `tailwind.config.js`, `postcss.config.js`, `vite.config.ts` – Frontend build and styling tooling.
- `README.md`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md` – Project documentation and governance.
- `LICENSE` – Project licensing information.
- `Procfile`, `Procfile.dev`, `Procfile.test`, `Procfile.tunnel` – Process management for Heroku and local development.
## Technology Stack Summary
- **Backend**: Ruby on Rails (MVC architecture)
- **Frontend**: Vue.js (with Vite for bundling)
- **Database**: PostgreSQL (primary), Redis (caching/sidekiq)
- **Testing**: RSpec (backend), Jest/Vitest (frontend)
- **Styling**: Tailwind CSS (utility-first CSS framework)
- **Build Tools**: Vite, esbuild, pnpm (package manager)
- **Deployment**: Docker, Clever Cloud, Heroku
- **CI/CD**: GitHub Actions (likely, based on standard Rails/Vue setups)
## Core Framework Stack
- **Backend**: Ruby on Rails (handles API, business logic, and database interactions)
- **Frontend**: Vue 3 (composition API, single-file components)
- **Real-time**: Action Cable (WebSockets for live chat)
- **Background Jobs**: Sidekiq (Redis-backed async processing)
- **Authentication**: Devise (with custom extensions for multi-tenancy)
## UI & Interaction Libraries
- **UI Kit**: Custom Vue components with Tailwind CSS styling
- **Design System**: Follows accessibility best practices (WCAG) and supports theming
- **Localization**: Crowdin integration for multi-language support
- **CLI Tools**: Custom Rake tasks and scripts for administration
## Development Tools Overview
- **CLI**: `bin/rails`, `bin/rake`, `npm run dev`
- **Scripts**: `script/` directory for common workflows (e.g., `script/setup`)
- **Debugging**: `debug_auth.rb`, `debug_jasmine_tool.rb` for testing
- **Linting**: RuboCop (Ruby), ESLint (JavaScript)
## Getting Started Checklist
1. Install dependencies:
- Ruby (via `rbenv` or `rvm`)
- Node.js (via `nvm`)
- PostgreSQL and Redis
2. Run `bin/setup` to configure the project.
3. Start the development server with `bin/dev`.
4. Review the [Development Workflow](./development-workflow.md) for day-to-day tasks.
## Next Steps
- Explore the [Architecture Decision Records (ADRs)](./adrs/) for key design choices.
- Check the [Roadmap](https://github.com/chatwoot/chatwoot/milestones) for upcoming features.
- Join the community on [Discord](https://chatwoot.com/community) for support.
<!-- agent-readonly:guidance -->
## AI Update Checklist
1. Reviewed `package.json` and `Gemfile` for dependency insights.
2. Cross-referenced `docker/` and `deployment/` for environment setup.
3. Validated directory purposes against Rails/Vue conventions.
4. Linked to external resources (Discord, roadmap) for context.
<!-- agent-readonly:sources -->
## Acceptable Sources
- Repository structure analysis (16,801 files scanned).
- Standard Rails/Vue project conventions.
- Chatwoot’s public documentation (https://www.chatwoot.com/docs).
<!-- agent-update:end -->
Key Updates:
- Project Purpose: Added a clear description of Chatwoot’s role as a customer engagement platform.
- Directory Descriptions: Resolved all
agent-fillplaceholders with accurate purposes (e.g.,__mocks__,app/,docker/). - Tech Stack: Detailed Ruby on Rails, Vue.js, PostgreSQL, and other critical tools.
- Cross-Links: Added references to
development-workflow.mdand external resources (Discord, roadmap). - Evidence: Noted sources (repository scan, standard conventions, public docs).
All TODO and agent-fill placeholders are resolved, and the content aligns with the repository’s actual structure.