Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
78 changes: 78 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Contributing

Thank you for your interest in contributing to Answer Overflow! If you need any help, please reach out in our [Discord](https://discord.gg/Wny38ap7Tx)!

## If I have a change I want to make, do I create a PR or an issue first?

Please create an issue first, this will help us manage release notes and workshop the issue you wish to address before moving forward

## Development workflow

We use developer containers to ensure a consistent environment across all platforms, it is up to you whether to use them or not and there are instructions for setting up with both.

We recommend the use of dev containers to make your onboarding as easy as possible, below are instructions for setup on both, pick one to follow (dev containers is recommended)

## Dev containers

Follow this [Getting Started Guide](https://code.visualstudio.com/docs/devcontainers/containers) on how to setup dev containers for your system

## Local Environment

We use [yarn](https://pnpm.io) as our package manager, so make sure to [install](https://yarnpkg.com/getting-started/install) it first.

Along with this, you will need to have a [MySQL Server](https://dev.mysql.com/downloads/installer/) running

And an [Elastic Search](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html) server setup

## VSCode users

There is a workspace file called answeroverflow.code-workspace, VSCode lets you open this folder as that workspace and it is recommended that you do your development work inside of this workspace as it will configure all of the settings for you

### Get it running

Copy the .env.example file in the root directory and create a new file titled .env

Follow the steps listed in .env.example to properly configure your environment variables

```bash
# in project root directory
yarn install
yarn db:push
yarn db:wipe
yarn dev
```

### Testing

```bash
# in project root directory
yarn test

# to test an individual package:
cd [apps|packages]/[package_name] yarn test:watch
```

### Linting

```bash
yarn lint:fix
```

### Building

```bash
yarn build
```

## Project overview

This project is a monorepo using Turborepo. In order to keep documentation up to date and accurate, please view the README of the package that you are developing on.

## Style Guide

Formatting is mostly controlled by ESLint, here are a few misc things that aren't:

- snake_case for names
- camelCase for functions
- Colocate test files next to the files that they test, i.e file.ts & file.test.ts
- Destructure props passed into components / functions
75 changes: 54 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,73 @@

<p align='center'>
<a href='https://answeroverflow.com/'>
<img src="https://www.answeroverflow.com/content/branding/AnswerOverflowLOGO.png">
</a>
<a href='https://answeroverflow.com/' target="_blank" rel="noopener">
<img src="https://www.answeroverflow.com/content/branding/AnswerOverflowLOGO.png">
</a>
</p>

<div align="center">
<h1>Answer Overflow</h1>
<h3>Improve & Google Index Discord Help Channels</h3>
<h4>⚠ Currently In Breaking Development ⚠</h4>
<p>While you are welcome to submit issues / PRs - while the project base is created a lot of changes will be happening to the repo</p>
<h3>Google Index Discord Your Help Channels<br /></h3>
<a href="https://github.com/AnswerOverflow/AnswerOverflow/blob/main/LICENSE">
<img alt="AGPL License" src="https://img.shields.io/github/license/AnswerOverflow/AnswerOverflow" />
</a>
<a href="https://discord.gg/Wny38ap7Tx">
<img alt="Discord" src="https://img.shields.io/discord/952724385238761475?color=7389D8&label&logo=discord&logoColor=ffffff" />
</a>
<br />
<a href="https://twitter.com/RhysSullivan">
<img alt="Twitter" src="https://img.shields.io/twitter/url.svg?label=%40RhysSullivan&style=social&url=https%3A%2F%2Ftwitter.com%2RhysSullivan" />
</a>
<a href="https://twitter.com/AnswerOverflow">
<img alt="Twitter" src="https://img.shields.io/twitter/url.svg?label=%40AnswerOverflow&style=social&url=https%3A%2F%2Ftwitter.com%2FAnswerOverflow" />
</a>
<br />
<br />
<figure>
<a href='https://google.com/search?q=site%3Aansweroverflow.com+c%23' target="_blank" rel="noopener">
<img src="./assets/search-result-example.png" alt="Search results from Answer Overflow" />
</a>
<figcaption>
<p align="center">
These results are from questions asked <strong>in Discord help channels</strong> and are now Google indexed so that they can be found by people searching for these questions
</p>
</figcaption>
</figure>
</div>

## Developing
<br />

### Environment Setup
## Intro

Answer Overflow utilizes VSCode features such as workspaces and development containers to provide a fast and consistent cross platform development experience. If you already have VSCode and Docker installed then setting up should be as quick as opening the cloned project in VSCode and running `reopen project in container` along with `open workspace`
Answer Overflow lets you index your Discord help channels into Google so that you can:

#### Windows
- Grow your community
- Stop answering repeat questions
- Improve the quality of life of people using your project

1. [Install VSCode](https://code.visualstudio.com/)
### Features

2. [Install Docker](https://www.docker.com/)
- 🔍&nbsp; Index questions into Google.
- 📈&nbsp; Powerful analytics - Learn what questions are asked the most, who is most helpful, and other community insights
- ✅&nbsp; Improved Help Channels - Mark questions as solved, organize content, and keep discussions on track
- 🐻&nbsp; Easy - Simple menus to control settings

3. Clone & Open
## Quickstart

### Develop
Go to [Answer Overflow](https://www.answeroverflow.com/), add the bot your server, and use /channel-settings to get started

With Visual Studio opened in a development container, open a folder in the root workspace
## Star History

* Run the whole project
<a href="https://star-history.com/#AnswerOverflow/AnswerOverflow"><img src="https://api.star-history.com/svg?repos=AnswerOverflow/AnswerOverflow&type=Date" alt="Star History Chart" width="600" /></a>

```yarn run dev```
* Run a single app
## All contributors ✨

```yarn turbo run dev --filter='app-name'```
* Install a package
```yarn workspace <workspace> add <package>```
> Answer Overflow is developed by [Rhys Sullivan](https://twitter.com/RhysSullivan)

Want to contribute? First, read the <a href="https://github.com/AnswerOverflow/AnswerOverflow/blob/main/CONTRIBUTING.md">Contributing Guidelines</a> before creating PRs or issues. Need any help? Join us on <a href="https://discord.gg/Wny38ap7Tx">Discord</a>!

<a href="https://github.com/AnswerOverflow/AnswerOverflow/graphs/contributors">
<p align="center">
<img src="https://contrib.rocks/image?repo=AnswerOverflow/AnswerOverflow" alt="A table of avatars from the project's contributors" />
</p>
</a>
3 changes: 3 additions & 0 deletions answeroverflow.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@
"elastic-types",
],
"jest.autoRun": "off",
"cSpell.words": [
"Turborepo"
],
},
"extensions": {
"recommendations": [
Expand Down
Binary file added assets/search-result-example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.