Skip to content
Draft

docs #1561

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
c3de9df
feat: initialize docs
chiol Apr 22, 2025
c2c7ede
feat: Refactor documentation for ABC User Feedback
chiol Apr 25, 2025
e08fd6d
feat: Add Docker Compose files for infrastructure setup and CLI commands
chiol Apr 25, 2025
c70d8a0
feat: unify job names in Docker CI workflows and ensure Buildx setup …
chiol Apr 25, 2025
34f322f
refactor: remove redundant API and web build steps from Docker CI wor…
chiol Apr 25, 2025
2b16d00
fix: update Docker metadata tags to use latest version for API and We…
chiol Apr 25, 2025
0252358
feat: add clean command to remove existing mounted docker volumes and…
chiol Apr 25, 2025
4e11844
feat: create docs code
chiol Apr 28, 2025
efe58c5
feat: update documentation links and restructure Dockerfile for impro…
chiol Apr 28, 2025
efc5a8b
feat: docs
chiol Apr 30, 2025
3ddde55
fix: remove unnecessary argument from CMD in Dockerfile for docs
chiol Apr 30, 2025
252b577
Update apps/docs/docs/04-integration-guide/_category_.json
chiol May 19, 2025
f02a24d
fix: coderabbitai
chiol May 19, 2025
e463a77
refactor: documentation for ABC User Feedback
chiol May 19, 2025
612546e
fix: docs
chiol May 21, 2025
216a721
Merge branch 'dev' into feat/docs
chiol May 21, 2025
fe9e779
fix: docs
chiol Jun 3, 2025
5924978
Merge branch 'dev' into feat/docs
chiol Jun 3, 2025
99eab96
Merge branch 'dev' into feat/docs
chiol Jun 3, 2025
1147e62
Merge branch 'dev' into feat/docs
chiol Sep 1, 2025
f606627
chore: update clsx to version 2.1.1 and react/react-dom to version 19…
chiol Sep 1, 2025
68a5a85
feat: remove outdated documentation and add generative AI integration…
chiol Sep 1, 2025
3d78883
docs: update installation links and tutorial references in documentation
chiol Sep 1, 2025
c0ccbc5
docker compose
chiol Sep 2, 2025
566f1a6
refactor: remove BASE_URL and SMTP_BASE_URL from environment configur…
chiol Sep 2, 2025
b954a53
feat: i18n
chiol Sep 2, 2025
0f2e699
Merge branch 'feat/docs' into feat/env-cleanup
chiol Sep 3, 2025
3ec151e
docs: update environment variable configuration for multiple languages
chiol Sep 3, 2025
1ee4222
Refactor environment variable configuration and update Docker Compose…
chiol Sep 3, 2025
fa079f4
docs: translate CLI tool documentation to Chinese
chiol Sep 3, 2025
520115f
feat: update Docker Compose configuration and environment variables f…
chiol Sep 3, 2025
2057976
add integration docs
jihun Sep 4, 2025
07a64d7
add generative ai docs
jihun Sep 8, 2025
36e9d16
add docs images
jihun Sep 9, 2025
96f3ee3
Add documentation for Generative AI settings and Channel settings
chiol Sep 11, 2025
a7d6e3f
docs: add user guide for channel creation in ABC User Feedback
chiol Sep 11, 2025
6ac36dd
Merge branch 'feat/docs' into feat/docs-integration-guide
jihun Sep 11, 2025
4116422
Merge pull request #2059 from line/feat/docs-integration-guide
jihun Sep 11, 2025
d535aa9
Add Korean documentation for AI Issue Recommendation and Channel Sett…
chiol Sep 11, 2025
fcf8c7b
chore: add Apache License header to multiple files and update MySQL c…
chiol Sep 29, 2025
b3d1cb8
refactor: replace z.string().email() with z.email() in user schemas a…
chiol Sep 29, 2025
6c1f630
Add developer guide documentation for installation, API integration, …
chiol Oct 16, 2025
5324a77
fix: docs
chiol Oct 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 2 additions & 10 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,17 @@ name: CI

on:
pull_request:
branches: ["*"]
branches: ['*']
push:
branches: ["main"]
branches: ['main']
merge_group:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

# You can leverage Vercel Remote Caching with Turbo to speed up your builds
# @link https://turborepo.org/docs/core-concepts/remote-caching#remote-caching-on-vercel-builds
env:
FORCE_COLOR: 3
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
CI: true

jobs:
Expand Down Expand Up @@ -66,12 +62,9 @@ jobs:
echo "JWT_SECRET=${{ vars.TEST_JWT_SECRET }}" >> ./apps/api/.env.test
echo "OPENSEARCH_USE=true" >> ./apps/api/.env.test
echo "OPENSEARCH_NODE=http://localhost:9200" >> ./apps/api/.env.test
echo "OPENSEARCH_USERNAME=''" >> ./apps/api/.env.test
echo "OPENSEARCH_PASSWORD=''" >> ./apps/api/.env.test
echo "SMTP_HOST='localhost'" >> ./apps/api/.env.test
echo "SMTP_PORT=25" >> ./apps/api/.env.test
echo "SMTP_SENDER='[email protected]'" >> ./apps/api/.env.test
echo "SMTP_BASE_URL='http://localhost:3000'" >> ./apps/api/.env.test

- name: Run Tests
run: pnpm test
Expand All @@ -84,7 +77,6 @@ jobs:
echo "SMTP_HOST='localhost'" >> ./apps/api/.env.test
echo "SMTP_PORT=25" >> ./apps/api/.env.test
echo "SMTP_SENDER='[email protected]'" >> ./apps/api/.env.test
echo "SMTP_BASE_URL='http://localhost:3000'" >> ./apps/api/.env.test

- name: Run Tests
run: pnpm test
50 changes: 17 additions & 33 deletions .github/workflows/docker-dev-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,18 @@ on:
- '**-dev'

jobs:
api-build:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v5
uses: actions/checkout@v4

- name: Docker meta
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container

- name: Docker meta for API
id: api-meta
uses: docker/metadata-action@v5
with:
Expand All @@ -23,29 +28,7 @@ jobs:
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}

- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push API
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/api.dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.api-meta.outputs.tags }}
labels: ${{ steps.api-meta.outputs.labels }}

web-build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v5

- name: Docker meta
- name: Docker meta for Web
id: web-meta
uses: docker/metadata-action@v5
with:
Expand All @@ -63,11 +46,12 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push Web
uses: docker/build-push-action@v6
- name: Bake and push multi-platform Docker images
uses: docker/bake-action@v4
with:
context: .
file: ./docker/web.dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.web-meta.outputs.tags }}
labels: ${{ steps.web-meta.outputs.labels }}
files: |
./docker/docker-bake.hcl
push: true
set: |
api.tags=${{ steps.api-meta.outputs.tags }}
web.tags=${{ steps.web-meta.outputs.tags }}
56 changes: 19 additions & 37 deletions .github/workflows/docker-prod-image.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
name: Docker Prod Image CI
name: Docker Dev Image CI

on:
push:
tags:
- '*'
- '!**-beta'
- '!**-dev'
- '**-dev'

jobs:
api-build:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v5
uses: actions/checkout@v4

- name: Docker meta
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container

- name: Docker meta for API
id: api-meta
uses: docker/metadata-action@v5
with:
Expand All @@ -25,29 +28,7 @@ jobs:
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}

- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push API
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/api.dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.api-meta.outputs.tags }}
labels: ${{ steps.api-meta.outputs.labels }}

web-build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v5

- name: Docker meta
- name: Docker meta for Web
id: web-meta
uses: docker/metadata-action@v5
with:
Expand All @@ -65,11 +46,12 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push Web
uses: docker/build-push-action@v6
- name: Bake and push multi-platform Docker images
uses: docker/bake-action@v4
with:
context: .
file: ./docker/web.dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.web-meta.outputs.tags }}
labels: ${{ steps.web-meta.outputs.labels }}
files: |
./docker/docker-bake.hcl
push: true
set: |
api.tags=${{ steps.api-meta.outputs.tags }}
web.tags=${{ steps.web-meta.outputs.tags }}
2 changes: 1 addition & 1 deletion .github/workflows/e2e-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
# services:
# mysql:
# image: mysql:8.0.39
# image: mysql:8.0
# env:
# MYSQL_ROOT_PASSWORD: userfeedback
# MYSQL_DATABASE: e2e
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

services:
mysql:
image: mysql:8.0.39
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: userfeedback
MYSQL_DATABASE: e2e
Expand Down Expand Up @@ -57,16 +57,12 @@ jobs:
corepack enable
pnpm install --frozen-lockfile
pnpm build
echo "BASE_URL=http://localhost:3000" >> ./apps/api/.env
echo "JWT_SECRET=DEV" >> ./apps/api/.env
echo "OPENSEARCH_USE=true" >> ./apps/api/.env
echo "OPENSEARCH_NODE=http://localhost:9200" >> ./apps/api/.env
echo "OPENSEARCH_USERNAME=''" >> ./apps/api/.env
echo "OPENSEARCH_PASSWORD=''" >> ./apps/api/.env
echo "SMTP_HOST='localhost'" >> ./apps/api/.env
echo "SMTP_PORT=25" >> ./apps/api/.env
echo "SMTP_SENDER='[email protected]'" >> ./apps/api/.env
echo "SMTP_BASE_URL='http://localhost:3000'" >> ./apps/api/.env

- name: Run integration tests (with opensearch)
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-api-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

services:
mysql:
image: mysql:8.0.39
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: userfeedback
MYSQL_DATABASE: userfeedback
Expand All @@ -36,7 +36,7 @@ jobs:
- name: Run Redocly CLI
uses: fluximus-prime/redocly-cli-github-action@v1
with:
args: "build-docs apps/api/swagger.json --output docs/index.html"
args: 'build-docs apps/api/swagger.json --output docs/index.html'

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
Expand Down
31 changes: 2 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,6 @@

ABC User Feedback is a standalone web application designed to manage Voice of Customer (VoC) data. It enables you to efficiently gather and categorize customer feedback. The application is currently utilized in services with a reach of 10 million MAU.

## Quick Start

To quickly set up and run the application locally, follow these steps:

1. **Clone the Repository**:

```bash
git clone https://github.com/line/abc-user-feedback
cd abc-user-feedback
```

2. **Install Dependencies**:

```bash
pnpm install
```

3. **Start the Application**:
```bash
npx auf-cli init
npx auf-cli start
```

For more detailed setup instructions, refer to the [Getting Started](#getting-started) section.

<p align="center">
<video src="https://github.com/user-attachments/assets/a2ef7a1a-41ec-4cec-b7d1-bda5fbd7d48b" width="100%" />
</p>
Expand Down Expand Up @@ -79,9 +54,7 @@ Before you begin, ensure you have the following installed:
- SMTP - for mail verification during making accounts
- [OpenSearch v2.16](https://opensearch.org/) - for performance on searching feedback

You can use the [docker-compose.infra-amd64.yml](/docker/docker-compose.infra-amd64.yml) file for requirements.

For ARM architecture, use the [docker-compose.infra-arm64.yml](/docker/docker-compose.infra-arm64.yml) file.
You can use the [docker-compose.infra.yml](/docker/docker-compose.infra.yml) file for requirements.

### Docker Hub Images

Expand Down Expand Up @@ -150,7 +123,7 @@ npm run migration:run
pnpm dev
```

### Build Docker Image
### Option3. Build Docker Image

For your code build, you can build a Docker image using Docker Compose. Refer to [remote caching](https://turbo.build/repo/docs/core-concepts/remote-caching) and [deploying with Docker](https://turbo.build/repo/docs/handbook/deploying-with-docker) using `turborepo`.

Expand Down
13 changes: 5 additions & 8 deletions apps/api/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ JWT_SECRET=DEV

MYSQL_PRIMARY_URL=mysql://userfeedback:userfeedback@localhost:13306/userfeedback # required

BASE_URL=http://localhost:3000 # default: http://localhost:3000

ACCESS_TOKEN_EXPIRED_TIME=10m # default: 10m
REFESH_TOKEN_EXPIRED_TIME=1h # default: 1h
REFRESH_TOKEN_EXPIRED_TIME=1h # default: 1h

# Optional enviroment variables

Expand All @@ -17,22 +15,21 @@ REFESH_TOKEN_EXPIRED_TIME=1h # default: 1h

SMTP_HOST=localhost # required
SMTP_PORT=25 # required
[email protected] # required
# SMTP_USERNAME= # optional
# SMTP_PASSWORD= # optional
[email protected] # required
SMTP_BASE_URL=http://localhost:3000 # required
# SMTP_TLS= # default: false
# SMTP_CIPHER_SPEC= # default: TLSv1.2 if SMTP_TLS=true
# SMTP_OPPORTUNISTIC_TLS= # default: true if SMTP_TLS=true

# OPENSEARCH_USE=false # default: false
# OPENSEARCH_NODE= # required if OPENSEARCH_USE=true
# OPENSEARCH_USERNAME= # required if OPENSEARCH_USE=true
# OPENSEARCH_PASSWORD= # required if OPENSEARCH_USE=true
# OPENSEARCH_USERNAME= # optional
# OPENSEARCH_PASSWORD= # optional

# AUTO_MIGRATION=true # default: true

# MASTER_API_KEY= # default: none

# ENABLE_AUTO_FEEDBACK_DELETION=false # default: false
# AUTO_FEEDBACK_DELETION_ENABLED=false # default: false
# AUTO_FEEDBACK_DELETION_PERIOD_DAYS=365*5
Loading