Skip to content

ABC User Feedback is a standalone web application that manages Voice of Customer (VoC) data. It allows you to gather and organize feedback from your customers.

License

Notifications You must be signed in to change notification settings

line/abc-user-feedback

Repository files navigation

ABC User Feedback

cover image

ABC User Feedback is a standalone web application that manages Voice of Customer (VoC) data. It allows you to gather and sort feedback from your customers. The product is being applied and used in services worth 10 million MAU.

sample image

Table of Contents

Features

ABC User Feedback provides the following features:

data field image feedback tag image issue tracker image single sign-on image role management image dashboard image

Getting Started

The frontend is built with NextJS and the backend is built with NestJS. We provide Docker images for fast and easy setup.

System Requirements

πŸ’‘ Before you begin, make sure you have the following installed:

Required

Optional

  • SMTP - for mail verification during making accounts
  • OpenSearch v7 - for performance on searching feedback

You can use docker-compose.infra-amd64.yml file for requirements.

for arm architecture, use docker-compose.infra-arm64.yml file

Docker Hub Images

We publish two images to https://hub.docker.com at every release.

docker pull line/abc-user-feedback-web
docker pull line/abc-user-feedback-api

Configuration

Frontend

πŸ‘‰ Go to Frontend README

You can configure the frontend for session password, maximum time span to query, etc.

Backend

πŸ‘‰ Go to Backend README

You can configure the backend for MySQL, SMTP for email verification, OpenSearch-powered improved search experience, etc.

Integration

If you want to integrate ABC User Feedback with your service, you can use the following features:

  1. RESTful Web API - API document page.
  2. Accept images from user - S3 Integration.
  3. Webhooks - Webhook specification.

Development

Setup Dev Environment using Command Line Tool without Dependencies

ABC User Feedback supports a command line tool(auf-cli) that easily runs both the frontend and backend.

With this command line tool, you can initialize the infrastructure and run the app powered by a pre-configured Docker image. Since the CLI is executable with npx, only an npm environment is required, and no other dependencies are necessary.

npx auf-cli init # initialize infrastructure
npx auf-cli start # start app
npx auf-cli stop # stop app

Please refer to the following npm package site: https://www.npmjs.com/package/auf-cli

Setup Dev Environment Manually (Local)

ABC User Feedback is using a monorepo (powered by TurboRepo) with multiple apps and packages.

Follow the instructions below to set up a local development environment.

  1. Clone the repository and install dependencies:
git clone https://github.com/line/abc-user-feedback
cd abc-user-feedback
pnpm install
  1. Spin up all required infrastructure (Mysql, OpenSearch, etc.) using Docker Compose:
docker-compose -f docker/docker-compose.infra-amd64.yml up -d
  1. Make an .env file in apps/api and apps/web by referring to .env.example (web environment variables, api environment variables)

  2. Apply database migrations:

cd apps/api
npm run migration:run
  1. To start developing, run the dev target of both of apps in root directory:
pnpm dev
  1. Also, you can run the dev target of one of apps in root directory:
# web
pnpm turbo run dev --filter=web

# api
pnpm turbo run dev --filter=api

Build Docker Image

For your code build, you can build docker image using docker-compose. Please refer to remote caching and deploying with docker using turborepo.

docker-compose build

Then, run docker-compose

docker-compose up -d

Contributing Guidelines

Please follow the contributing guidelines to contribute to the project.

License

Copyright 2024 LY Corporation

LY Corporation licenses this file to you under the Apache License,
version 2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at:

  https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.

See LICENSE for more details.