Hey! Thank you for wanting to contribute to MHSF, it means a lot to me that you decided to spend your time fixing up a project like this one :) <br>
This project has many parts, and as so, it's not as easy to get it running as you might think. We try and make the project have as many optional dependencies as possible,
but sometimes it might not be possible to not include a dependency that we are using in the project.
Make sure you have [Node.js](https://nodejs.org) installed, perferably a version above 20. This allows MHSF to run tasks that use modern Node standards like async functions
> Clerk is no longer optional. If Clerk is not setup, you *will* get a `Non-authenticated environments are disallowed on this origin.` error on the frontend.
> You may be able to modify/test API endpoints as long as they do not require accounts.
We use [Atlas](https://www.mongodb.com/atlas) to host our MongoDB database, but you do need one. Add the following to your .env.local with your database:
Cron can run in either a docker container or just be run in the background. To run it through Docker, use the following:
```bash
# Install dependencies and build script on your local machine
yarn
yarn run build
docker build .
```
To run it without Docker, use the following:
```bash
yarn run build
```
> [!NOTE]
> You must have a `.env.local` with a MongoDB database (same `MONGO_DB` key) in the previous directory (for monorepo like management) running without Docker, and
> the same `.env.local` *but in the same directory when* using Docker.
Inngest also runs periodic tasks like Cron, but has less important tasks that may occur. Create an account on Inngest, or just use the dev server.
Do the following tasks and set the endpoint to `<server url>/api/inngest`
## Creating a pull request
Make sure you abide to our [code of conduct](https://github.com/DeveloLongScript/MHSF/blob/main/CODE_OF_CONDUCT.md) and you may make a pull request. You *do not*
have to contact anybody if your making big changes, if they are what we won't add, we will just decline your PR.