Skip to content

Latest commit

 

History

History
203 lines (156 loc) · 6.42 KB

README.md

File metadata and controls

203 lines (156 loc) · 6.42 KB

Official Backend for Quash

Welcome to the Quash Backend repository, part of the Quash project. This repository contains the code for the Quash Web Backend, a crucial component of your ultimate in-app bug reporting tool. Built by developers for developers, this backend supports the web dashboard in capturing everything you need to start fixing issues right away, including crash logs, session replays, network logs, device information, and much more.

Logo

Reporting 🗒️ Resolution Collaboration 🤝🏻
Raise comprehensive tickets with minimal effort Know exactly where the bug is - and how to fix it Manage all your testing workflows in a single place

Table of Contents

Project Architecture

The project is structured into the following layers:

  • Controller
  • Service
  • Repository
  • Model
  • DTO
  • Utility
Architecture

DB Schema

Flow

Report Generation Flow

Flow

This guide will provide you steps to setup and configure the Backend for Quash.

Quash Backend is built using the following technologies:

Installation

# Move to your workspace
cd your-workspace

# Clone the parent repository
git clone https://github.com/Oscorp-HQ/quash-max.git

# Move to the backend directory
cd quash-max/backend

# Run this maven command
mvn clean install

Configuration

Application.properties

Navigate to the resources directory and open the application.properties file. Here you will add your database connection strings, access tokens, secret keys for different integrations and services.

MongoDB Connection String for Database

spring.data.mongodb.uri=mongodb_connection_string

JWT configurations -

jwt.secret='your_secret'
jwt.expirationMs='expiration_time'
token.signing.key='jwt_singing_key'

Set a Jasypt Password Encryption Key

jasypt.encryption.password='encryption_password'

Add your Frontend URL

spring.frontend.url='your_frontend_url'

Add your Spring Base URL

spring.url='your_spring_url'

Set Access and Refresh Token expiry time

# Access Token expiry - 6 days
token.accessToken.expiration=518400000
# Refresh Token expiry - 8 days
token.refreshToken.expiration=691200000

Some extra properties

spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=15MB
spring.servlet.multipart.max-request-size=15MB
management.endpoints.web.exposure.include=*
spring.main.lazy-initialization=true

Mail Service Setup a mail service and get required credentials

spring.mail.host='email_host'
spring.mail.username='email_username'
spring.mail.password='email_password'
spring.mail.properties.mail.transport.protocol=smtp
spring.mail.properties.mail.smtp.port='mail_port'
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
from.email.address='[email protected]'

Optionally you can use Google OAuth for signin and signup.

Google OAuth

spring.security.oauth2.client.registration.google.client-id='google_client_id'
spring.security.oauth2.client.registration.google.client-secret='google_client_secret'

Optional Integrations

Below are some integrations where you can export your tickets to. Configure the integration of your choice by adding the required credentials mentioned.

Jira integration

Add your Jira account credentials
spring.atlassian.jira.client_id='jira_client_id'
spring.atlassian.jira.client_secret='jira_client_secret'
spring.atlassian.jira.auth_endpoint=https://auth.atlassian.com/oauth/token
spring.atlassian.jira.accessible_resource_endpoint=https://api.atlassian.com/oauth/token/accessible-resources

Slack integration

Add your Slack account credentials

spring.slack.clientId='slack_client_id'
spring.slack.clientSecret='slack_client_secret'
spring.slack.quash.redirectUri='slack_redirect_uri'

Linear integration

Add your Linear account credentials

spring.linear.redirect_uri='linear_redirect_uri'
spring.linear.auth_endpoint='auth_endpoint'
spring.linear.client_id='linear_client_id'
spring.linear.client_secret='linear_client_secret'

Github

Add your Github account credentials

spring.github.client_id='github_client_id'
spring.github.client_secret='github_client_secret'

Run Locally

Run the QuashApplication File

mvn spring-boot:run

Repository Structure

This backend repository is part of the larger Quash project, located in the parent repository at https://github.com/Oscorp-HQ/quash-max. The parent repository contains multiple components of the Quash project, including this backend.

For information on other components and how they interact, please refer to the main README in the parent repository.

Contributing

For contribution guidelines, please refer to the CONTRIBUTING.md file in the parent repository.

License

This project is licensed under the terms specified in the LICENSE file in the parent repository.