diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000000..23ec27392d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,52 @@
+# # Changelog
+
+2023-05-07
+
+**Released [v0.4.0](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.4.0)**, Introducing User/Auth System and OAuth2/Social Login! You can now register and login with an email account or use Google login. Your your previous conversations and presets will migrate to your new profile upon creation. Check out the details in the [User/Auth System](#userauth-system) section of the README.md.
+
+⚠️ **IMPORTANT :** You should register and login with a local account (email and password) for the first time sign-up. if you use login for the first time with a social login account (eg. Google, facebook, etc.), the conversations and presets that you created before the user system was implemented will NOT be migrated to that account.
+
+⚠️ **Breaking - new Env Variables :** You will need to add the new env variables from .env.example for the app to work, even if you're not using multiple users for your purposes.
+
+For discussion and suggestion you can join us: **[community discord server](https://discord.gg/NGaa9RPCft)**
+
+
+
+
+Previous Updates
+
+
+
+2023-04-05
+
+**Released [v0.3.0](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.3.0)**, Introducing more customization for both OpenAI & BingAI conversations! This is one of the biggest updates yet and will make integrating future LLM's a lot easier, providing a lot of customization features as well, including sharing presets! Please feel free to share them in the **[community discord server](https://discord.gg/NGaa9RPCft)**
+
+
+
+
+2023-03-23
+
+**Released [v0.1.0](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.1.0)**, **searching messages/conversations is live!** Up next is more custom parameters for customGpt's. Join the discord server for more immediate assistance and update: **[community discord server](https://discord.gg/NGaa9RPCft)**
+
+
+
+
+2023-03-22
+
+**Released [v0.0.6](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.0.6)**, the latest stable release before **Searching messages** goes live tomorrow. See exact updates to date in the tag link. By request, there is now also a **[community discord server](https://s
+
+
+
+2023-03-20
+
+**Searching messages** is almost here as I test more of its functionality. There've been a lot of great features requested and great contributions and I will work on some soon, namely, further customizing the custom gpt params with sliders similar to the OpenAI playground, and including the custom params and system messages available to Bing.
+
+The above features are next and then I will have to focus on building the **test environment.** I would **greatly appreciate** help in this area with any test environment you're familiar with (mocha, chai, jest, playwright, puppeteer). This is to aid in the velocity of contributing and to save time I spend debugging.
+
+On that note, I had to switch the default branch due to some breaking changes that haven't been straight forward to debug, mainly related to node-chat-gpt the main dependency of the project. Thankfully, my working branch, now switched to default as main, is working as expected.
+
+
+
+##
+
+## [Go Back to ReadMe](README.md)
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
new file mode 100644
index 0000000000..40a5ea40c5
--- /dev/null
+++ b/CONTRIBUTORS.md
@@ -0,0 +1,25 @@
+# Contributors List
+
+Here is a list of all contributors to this project:
+
+- danny-avila (Admin)
+- wtlyu (Contributor)
+- danorlando (Contributor)
+- alfredo-f (Contributor)
+- HyunggyuJang (Contributor)
+- fuegovic (Contributor)
+- toordog (Contributor)
+- heathriel (External Contributor)
+- hackreactor-bot (Contributor)
+- git-bruh (Contributor)
+ zhangsean (Contributor)
+- llk89 (Contributor)
+- adamrb (Contributor)
+
+
+
+If you have contributed to this project and would like to be added to the list of contributors, please submit a pull request updating this file with your name and GitHub username.
+
+##
+
+## [Go Back to ReadMe](README.md)
diff --git a/LICENSE.md b/LICENSE.md
index ee1ca3d9b4..3bc879f70b 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,7 +1,7 @@
-MIT License
+# MIT License
Copyright (c) 2023 Danny Avila
-
+##
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
@@ -12,6 +12,8 @@ furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
+##
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -19,3 +21,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+
+##
+
+## [Go Back to ReadMe](README.md)
diff --git a/README.md b/README.md
index 9af7199d79..90f41ea4b0 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+
+
+
+ Getting Started
+
+ * [Docker Install](/documents/install/docker_install.md)
+ * [Linux Install](documents/install/linux_install.md)
+ * [Mac Install](documents/install/mac_install.md)
+ * [Windows Install](documents/install/windows_install.md)
-Previous Updates
-
-
-2023-04-05
-
-**Released [v0.3.0](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.3.0)**, Introducing more customization for both OpenAI & BingAI conversations! This is one of the biggest updates yet and will make integrating future LLM's a lot easier, providing a lot of customization features as well, including sharing presets! Please feel free to share them in the **[community discord server](https://discord.gg/NGaa9RPCft)**
-
-
-
-
-
-2023-03-23
-
-
-
-**Released [v0.1.0](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.1.0)**, **searching messages/conversations is live!** Up next is more custom parameters for customGpt's. Join the discord server for more immediate assistance and update: **[community discord server](https://discord.gg/NGaa9RPCft)**
-
-
-
-
-
-2023-03-22
-
-
-
-**Released [v0.0.6](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.0.6)**, the latest stable release before **Searching messages** goes live tomorrow. See exact updates to date in the tag link. By request, there is now also a **[community discord server](https://discord.gg/NGaa9RPCft)**
-
-
-
-2023-03-20
-
-
-
-**Searching messages** is almost here as I test more of its functionality. There've been a lot of great features requested and great contributions and I will work on some soon, namely, further customizing the custom gpt params with sliders similar to the OpenAI playground, and including the custom params and system messages available to Bing.
-
-The above features are next and then I will have to focus on building the **test environment.** I would **greatly appreciate** help in this area with any test environment you're familiar with (mocha, chai, jest, playwright, puppeteer). This is to aid in the velocity of contributing and to save time I spend debugging.
-
-On that note, I had to switch the default branch due to some breaking changes that haven't been straight forward to debug, mainly related to node-chat-gpt the main dependency of the project. Thankfully, my working branch, now switched to default as main, is working as expected.
-
-
-
-2023-03-16
-
-
-
-[Latest release (v0.0.4)](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.0.4) includes Resubmitting messages & Branching messages, which mirrors official ChatGPT feature of editing a sent message, that then branches the conversation into separate message paths (works only with ChatGPT)
-
-Full details and [example here](https://github.com/danny-avila/chatgpt-clone/releases/tag/v0.0.4). Message search is on the docket
-
-
-
-2023-03-12
-
-
-
-
-Really thankful for all the issues reported and contributions made, the project's features and improvements have accelerated as result. Honorable mention is [wtlyu](https://github.com/wtlyu) for contributing a lot of mindful code, namely hostname configuration and mobile styling. I will upload images on next release for faster docker setup, and starting updating them simultaneously with this repo.
-
-
-
-Many improvements across the board, the biggest is being able to start conversations simultaneously (again thanks to [wtlyu](https://github.com/wtlyu) for bringing it to my attention), as you can switch conversations or start a new chat without any response streaming from a prior one, as the backend will still process/save client responses. Just watch out for any rate limiting from OpenAI/Microsoft if this is done excessively.
-
-
-Adding support for conversation search is next! Thank you [mysticaltech](https://github.com/mysticaltech) for bringing up a method I can use for this.
-
-
-2023-03-09
-Released v.0.0.2
-
-Adds Sydney (jailbroken Bing AI) to the model menu. Thank you [DavesDevFails](https://github.com/DavesDevFails) for bringing it to my attention in this [issue](https://github.com/danny-avila/chatgpt-clone/issues/13). Bing/Sydney now correctly cite links, more styling to come. Fix some overlooked bugs, and model menu doesn't close upon deleting a customGpt.
-
-
-I've re-enabled the ChatGPT browser client (free version) since it might be working for most people, it no longer works for me. Sydney is the best free route anyway.
-
-
-2023-03-07
-Due to increased interest in the repo, I've dockerized the app as of this update for quick setup! See setup instructions below. I realize this still takes some time with installing docker dependencies, so it's on the roadmap to have a deployed demo. Besides this, I've made major improvements for a lot of the existing features across the board, mainly UI/UX.
-
-
-Also worth noting, the method to access the Free Version is no longer working, so I've removed it from model selection until further notice.
-
-
-2023-03-04
-Custom prompt prefixing and labeling is now supported through the official API. This nets some interesting results when you need ChatGPT for specific uses or entertainment. Select 'CustomGPT' in the model menu to configure this, and you can choose to save the configuration or reference it by conversation. Model selection will change by conversation.
-
-
-2023-03-01
-Official ChatGPT API is out! Removed davinci since the official API is extremely fast and 10x less expensive. Since user labeling and prompt prefixing is officially supported, I will add a View feature so you can set this within chat, which gives the UI an added use case. I've kept the BrowserClient, since it's free to use like the official site.
-
-The Messages UI correctly mirrors code syntax highlighting. The exact replication of the cursor is not 1-to-1 yet, but pretty close. Later on in the project, I'll implement tests for code edge cases and explore the possibility of running code in-browser. Right now, unknown code defaults to javascript, but will detect language as close as possible.
-
-
-2023-02-21
-BingAI is integrated (although sadly limited by Microsoft with the 5 msg/convo limit, 50 msgs/day). I will need to handle the case when Bing refuses to give more answers on top of the other styling features I have in mind. Official ChatGPT use is back with the new BrowserClient. Brainstorming how to handle the UI when the Ai model changes, since conversations can't be persisted between them (or perhaps build a way to achieve this at some level).
-
-
-2023-02-15
-Just got access to Bing AI so I'll be focusing on integrating that through waylaidwanderer's 'experimental' BingAIClient.
-
-
-2023-02-14
-
-Official ChatGPT use is no longer possible though I recently used it with waylaidwanderer's [reverse proxy method](https://github.com/waylaidwanderer/node-chatgpt-api/blob/main/README.md#using-a-reverse-proxy), and before that, through leaked models he also discovered.
-
-Currently, this project is only functional with the `text-davinci-003` model.
-
-
-
-# Table of Contents
-- [Table of Contents](#table-of-contents)
- - [Roadmap](#roadmap)
- - [Tech Stack](#tech-stack)
- - [Getting Started](#getting-started)
- - [Prerequisites](#prerequisites)
- - [Usage](#usage)
- - [Local](#local)
- - [**Automated Installer (Windows)**](#automated-installer-windows)
- - [**In-Depth Instructions**](#in-depth-instructions)
- - [Docker](#docker)
- - [Access Tokens](#access-tokens)
- - [Proxy](#proxy)
- - [User/Auth System](#userauth-system)
- - [Updating](#updating)
- - [Use Cases](#use-cases)
- - [Origin](#origin)
- - [Caveats](#caveats)
- - [Regarding use of Official ChatGPT API](#regarding-use-of-official-chatgpt-api)
- - [Contributing](#contributing)
- - [License](#license)
-
-## Roadmap
-
-> **Warning**
-
-> This is a work in progress. I'm building this in public. FYI there is still a lot of tech debt to cleanup. You can follow the progress here or on my [Linkedin](https://www.linkedin.com/in/danny-avila).
-
-
-
-
-Here are my recently completed and planned features:
-
-- [x] Persistent conversation
-- [x] Rename, delete conversations
-- [x] UI Error handling
-- [x] Bing AI integration
-- [x] AI model change handling (start new convos within existing, remembers last selected)
-- [x] Code block handling (highlighting, markdown, clipboard, language detection)
-- [x] Markdown handling
-- [x] Customize prompt prefix/label (custom ChatGPT using official API)
-- [x] Server convo pagination (limit fetch and load more with 'show more' button)
-- [x] Config file for easy startup (docker compose)
-- [x] Mobile styling (thanks to [wtlyu](https://github.com/wtlyu))
-- [x] Resubmit/edit sent messages (thanks to [wtlyu](https://github.com/wtlyu))
-- [x] Message Search
-- [x] Custom params for ChatGPT API (temp, top_p, presence_penalty)
-- [x] Bing AI Styling (params, suggested responses, convo end, etc.)
-- [x] Add warning before clearing convos
-- [ ] Build test suite for CI/CD
-- [ ] Prompt Templates/Search
-- [ ] Refactor/clean up code (tech debt)
-- [x] Optional use of local storage for credentials (for bing and browser)
-- [ ] ChatGPT Plugins (reverse engineered)
-- [ ] Deploy demo
-
-
-
-### Tech Stack
-
-
-
-This project uses:
-
-
-
-- [node-chatgpt-api](https://github.com/waylaidwanderer/node-chatgpt-api)
-- No React boilerplate/toolchain/clone tutorials, created from scratch with react@latest
-- Use of Tailwind CSS and [shadcn/ui](https://github.com/shadcn/ui) components
-- Docker, useSWR, Redux, Express, MongoDB, [Keyv](https://www.npmjs.com/package/keyv)
-
-
-
-
-## Getting Started
-
-### Prerequisites
-- npm
-- Node.js >= 19.0.0
-- MongoDB installed or [MongoDB Atlas](https://account.mongodb.com/account/login) (required if not using Docker)
- - MongoDB does not support older ARM CPUs like those found in Raspberry Pis. However, you can make it work by setting MongoDB's version to mongo:4.4.18 in docker-compose.yml, the most recent version compatible with
-- [Docker (optional)](https://www.docker.com/get-started/)
-- [OpenAI API key](https://platform.openai.com/account/api-keys)
-- BingAI, ChatGPT access tokens (optional, free AIs)
-
-## Usage
-
-- **Clone/download** the repo down where desired
-```bash
- git clone https://github.com/danny-avila/chatgpt-clone.git
-```
-- If using MongoDB Atlas, remove `&w=majority` from default connection string.
-
-### Local
-### **[Automated Installer (Windows)](https://github.com/fuegovic/chatgpt-clone-local-installer)**
-(Includes a Startup and Update Utility)
-### **[In-Depth Instructions](https://github.com/danny-avila/chatgpt-clone/blob/0d4f0f74c04337aaf51b9a3eef898165a7009156/LOCAL_INSTALL.md)**
-by [@fuegovic](https://github.com/fuegovic)
-
-### Docker
-
-- **Provide** all credentials, (API keys, access tokens, and Mongo Connection String) in [docker-compose.yml](docker-compose.yml) under api service
-- **Run** `docker-compose up` to start the app
-- Note: MongoDB does not support older ARM CPUs like those found in Raspberry Pis. However, you can make it work by setting MongoDB's version to mongo:4.4.18 in docker-compose.yml, the most recent version compatible with
-
-### Access Tokens
-
-
-ChatGPT Free Instructions
-
-To get your Access token For ChatGPT 'Free Version', login to chat.openai.com, then visit https://chat.openai.com/api/auth/session.
-
-
-**Warning:** There may be a high chance of your account being banned with this method. Continue doing so at your own risk.
+ General Information
+ * [Project Origin](documents/general_info/project_origin.md)
+ * [Roadmap](documents/general_info/roadmap.md)
+ * [Tech Stack](documents/general_info/tech_stack.md)
+ * [Changelog](CHANGELOG.md)
+ * [Bing Jailbreak Info](documents/general_info/bing_jailbreak_info.md)
-BingAI Instructions
-The Bing Access Token is the "_U" cookie from bing.com. Use dev tools or an extension while logged into the site to view it.
+ Features
-**Note:** Specific error handling and styling for this model is still in progress.
-
-
-### Proxy
-
-If your server cannot connect to the chatGPT API server by some reason, (eg in China). You can set a environment variable `PROXY`. This will be transmitted to `node-chatgpt-api` interface.
-
-**Warning:** `PROXY` is not `reverseProxyUrl` in `node-chatgpt-api`
-
-
-Set up proxy in local environment
-
-Here is two ways to set proxy.
-- Option 1: system level environment
-`export PROXY="http://127.0.0.1:7890"`
-- Option 2: set in .env file
-`PROXY="http://127.0.0.1:7890"`
-
-**Change `http://127.0.0.1:7890` to your proxy server**
+ * [User Auth System](documents/features/user_auth_system.md)
+ * [Proxy](documents/features/proxy.md)
-Set up proxy in docker environment
-
-set in docker-compose.yml file, under services - api - environment
-
-```
- api:
- ...
- environment:
- ...
- - "PROXY=http://127.0.0.1:7890"
- # add this line ↑
-```
-
-**Change `http://127.0.0.1:7890` to your proxy server**
+ Cloud Deployment
+ * [Heroku](documents/deployment/heroku.md)
-### User/Auth System
-
-**First Time Setup**
-
-In order for the auth system to function properly, there are some environment variables that are needed. Note that this information is also included in the [/api/.env.example](https://github.com/danny-avila/chatgpt-clone/blob/main/api/.env.example) and [/client/.env.example](https://github.com/danny-avila/chatgpt-clone/blob/main/client/.env.example) files.
-
-In /api/.env, you will need to set the following variables:
-```bash
-JWT_SECRET_DEV=secret
-# Add a secure secret for production if deploying to live domain.
-JWT_SECRET_PROD=secret
-# Set the expiration delay for the secure cookie with the JWT token
-# Delay is in millisecond e.g. 7 days is 1000*60*60*24*7
-SESSION_EXPIRY=1000 * 60 * 60 * 24 * 7
-# Note: NODE_ENV should be set to 'development' in the Server configuration section if you want to run in dev mode
-CLIENT_URL_DEV=http://localhost:3090
-SERVER_URL_DEV=http://localhost:3080
-# Change these values to domain if deploying:
-CLIENT_URL_PROD=http://localhost:3080
-SERVER_URL_PROD=http://localhost:3080
-```
-
-In /client/.env, you will need to set the following variables:
-```bash
-VITE_SERVER_URL_DEV=http://localhost:3080
-# Change this to domain if deploying:
-VITE_SERVER_URL_PROD=http://localhost:3080
-```
-
-The first time you run the application, you should register a new account by clicking the "Sign up" link on the login page. The first account registered will be recieve an admin role. The admin account does not currently have extended functionality, but is valuable should you choose to create an admin dashboard for user management.
-
-**Migrating Previous Conversations and Presets to new User Account**
-
-When the first account is registered, the application will automatically migrate any conversations and presets that you created before the user system was implemented to that account.
-
-IMPORTANT: if you use login for the first time with a social login account (eg. Google, facebook, etc.), the conversations and presets that you created before the user system was implemented will NOT be migrated to that account. You should register and login with a local account (email and password) for the first time.
-
-**OAuth2/Social Login**
-
-The application is setup to support OAuth2/Social Login with Google. All of the code is in place for Facebook login as well, but this has not been tested because the setup process with Facebook was honestly just too painful for me to deal with. I plan to add support for other OAuth2 providers including Github and Discord at a later time.
-
-To enable Google login, you must create an application in the [Google Cloud Console](https://cloud.google.com) and provide the client ID and client secret in the [/api/.env](https://github.com/danny-avila/chatgpt-clone/blob/main/api/.env.example) file, then set `VITE_SHOW_GOOGLE_LOGIN_OPTION=true` in the [/client/.env](https://github.com/danny-avila/chatgpt-clone/blob/main/client/.env.example) file.
-
-*Instructions for setting up Google login are provided below.*
-```
-1. Go to "APIs and Services" in your Google Cloud account and click on "Credentials".
-2. Click on "Configure consent screen" and select "External" as the user type.
-3. Add "profile", "email" and "openid" as the scopes for your app. These are the first three checkboxes when you click on "Add or remove scopes".
-4. Click on "Save and continue" and then "Back to dashboard".
-5. Click on "Create Credentials" and then "OAuth client ID".
-6. Select "Web application" as the application type and give it a name.
-7. Add "http://localhost" "http://localhost:3080" and "http://localhost:3090" to the authorized JavaScript origins.
-8. Add "http://localhost:3080/oauth/google/callback" to the authorized redirect URIs.
-9. Click on "Create" and copy your client ID and client secret.
-10. Paste them into your api/.env file.
-11. Enable the feature in the client/.env file
-```
-
-**Email and Password Reset**
-
-Most of the code is in place for sending password reset emails, but is not yet feature-complete as I have not setup an email server to test it. Currently, submitting a password reset request will then display a link with the one-time reset token that can then be used to reset the password. Understanding that this is a considerable security hazard, email integration will be included in the next release.
-
-***Warning***
-
-If you previously implemented your own user system using the original scaffolding that was provided, you will no longer see conversations and presets by switching to the new user system. This is because of a design flaw in the scaffolding implementation that was problematic for the inclusion of social login.
-
-### Updating
-
-- As the project is still a work-in-progress, you should pull the latest and run the steps over. Reset your browser cache/clear cookies and site data.
-
-## Use Cases ##
-
+
+ Contributions
+ * [Code of Conduct](documents/contributions/code_of_conduct.md)
+ * [Contributor Guidelines](documents/contributions/contributor_guidelines.md)
+ * [Documentation Guidelines](documents/contributions/documentation_guidelines.md)
+ * [Testing](documents/contributions/testing.md)
+ * [Pull Request Template](documents/contributions/pull_request_template.md)
+
- Why use this project?
+ Report Templates
- - One stop shop for all conversational AIs, with the added bonus of searching past conversations.
- - Using the official API, you'd have to generate 7.5 million words to expense the same cost as ChatGPT Plus ($20).
- - ChatGPT/Google Bard/Bing AI conversations are lost in space or
- cannot be searched past a certain timeframe.
- - **Customize ChatGPT**
+ * [Bug Report Template](documents/report_templates/bug_report_template.md)
+ * [Custom Issue Template](documents/report_templates/custom_issue_template.md)
+ * [Feature Request Template](documents/report_templates/feature_request_template.md)
+
- 
-
- - **API is not as limited as ChatGPT Free (at [chat.openai.com](https://chat.openai.com/chat))**
-
- 
-
- - **ChatGPT Free is down.**
-
- 
-
-
-
-
-## Origin ##
- This project was started early in Feb '23, anticipating the release of the official ChatGPT API from OpenAI, which is now used. It was originally created as a Minimum Viable Product (or MVP) for the [@HackReactor](https://github.com/hackreactor/) Bootcamp. It was built with OpenAI response streaming and most of the UI completed in under 20 hours. During the end of that time, I had most of the UI and basic functionality done. This was created without using any boilerplates or templates, including create-react-app and other toolchains. I didn't follow any 'un-official chatgpt' video tutorials, and simply referenced the official site for the UI. The purpose of the exercise was to learn setting up a full stack project from scratch. Please feel free to give feedback, suggestions, or fork the project for your own use.
-
-
-## Caveats
-### Regarding use of Official ChatGPT API
-From [@waylaidwanderer](https://github.com/waylaidwanderer/node-chatgpt-api/blob/main/README.md#caveats):
-
-Since `gpt-3.5-turbo` is ChatGPT's underlying model, I had to do my best to replicate the way the official ChatGPT website uses it.
-This means my implementation or the underlying model may not behave exactly the same in some ways:
-- Conversations are not tied to any user IDs, so if that's important to you, you should implement your own user ID system.
-- ChatGPT's model parameters (temperature, frequency penalty, etc.) are unknown, so I set some defaults that I thought would be reasonable.
-- Conversations are limited to roughly the last 3000 tokens, so earlier messages may be forgotten during longer conversations.
- - This works in a similar way to ChatGPT, except I'm pretty sure they have some additional way of retrieving context from earlier messages when needed (which can probably be achieved with embeddings, but I consider that out-of-scope for now).
+##
## Contributing
-Contributions and suggestions welcome! Bug reports and fixes are welcome!
+Contributions and suggestions bug reports and fixes are welcome!
+Please read the documentation before you do!
For new features, components, or extensions, please open an issue and discuss before sending a PR.
- Join the [Discord community](https://discord.gg/NGaa9RPCft)
## License
-This project is licensed under the MIT License.
+This project is licensed under the [MIT License](LICENSE.md).
+##
+
diff --git a/documents/contributions/code_of_conduct.md b/documents/contributions/code_of_conduct.md
new file mode 100644
index 0000000000..2bbade7abb
--- /dev/null
+++ b/documents/contributions/code_of_conduct.md
@@ -0,0 +1,132 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+https://t.me/proffapt.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
+
+##
+
+## [Go Back to ReadMe](../../README.md)
diff --git a/documents/contributions/contributor_guidelines.md b/documents/contributions/contributor_guidelines.md
new file mode 100644
index 0000000000..53edc91aa1
--- /dev/null
+++ b/documents/contributions/contributor_guidelines.md
@@ -0,0 +1,177 @@
+# Contributor Guidelines
+
+Thank you to all the contributors who have helped make this project possible! We welcome various types of contributions,
+such as bug reports, documentation improvements, feature requests, and code contributions.
+
+## Contributing Guidelines
+
+When contributing to this repository, please first discuss the change you wish to make via [issue](https://github.com/danny-avila/chatgpt-clone/issues) or
+join our discord [Discord community](https://discord.gg/NGaa9RPCft).
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+- Using welcoming and inclusive language
+- Being respectful of differing viewpoints and experiences
+- Gracefully accepting constructive criticism
+- Focusing on what is best for the community
+- Showing empathy towards other community members
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions when necessary.
+
+## To contribute to this project, please adhere to the following guidelines:
+
+## 1. Git Workflow
+
+We use a GitFlow workflow to manage changes to this project's codebase. Follow these general steps when contributing code:
+
+1. Fork the repository and create a new branch with a descriptive slash based name (e.g., new/feature/x).
+2. Implement your changes and ensure that all tests pass.
+3. Commit your changes using conventional commit messages with GitFlow flags. Begin the commit message with a tag indicating the change type, such as "feat" (new feature), "fix" (bug fix), "docs" (documentation), or "refactor" (code refactoring), followed by a brief summary of the changes (e.g., `feat: Add new feature X to the project`).
+4. Submit a pull request with a clear and concise description of your changes and the reasons behind them.
+5. We will review your pull request, provide feedback as needed, and eventually merge the approved changes into the main branch.
+
+## 2. Commit Message Format
+
+We have very precise rules over how our Git commit messages must be formatted.
+This format leads to **easier to read commit history**.
+
+Each commit message consists of a **header**, a **body**, and a **footer**.
+
+
+```
+
+
+
+
+