# Storyteller GGF ## Coding Rules and Styles ``` Short Style Guide TS React and Engine: No use of lets No basic for loop operators. Use the collection operators and array operators. React Side / No modules over 200 lines. ( loose rule ) Don't do: if (condition) return; Do: if (condition) { return; } No use of any type. If you can use chat gpt to create the interface. ``` ## Branches - `main` - The main branch is the production source of truth. Changes to main will automatically build, but will not auto-deploy to production. You'll have to promote changes to production using the Netlify control panel. Merge your code to main frequently. If you have to have a long-lived set of changes, ask yourself whether it might be better to feature flag your code off and land it to main rather than fight rebasing against the whole team. - `studio-staging` - The staging auto-deploy branch. You do not ever need to interact with this branch. Changes to `main` will automatically be pushed to `studio-staging` and auto-deployed to https://studio-staging.studio.storyteller.ai . You can test changes that have landed in `main` here before promoting them to production. - `studio-testing` - The testing branch. Anyone can push their changes to this branch for testing in a production-like environment. Since it is built and hosted on https://studio-testing.studio.storyteller.ai , you won't face CORS issues, same-site cookie issues, or have to use a local development proxy. (This doesn't obviate the need for a development proxy for fast development iteration, but is a fantastic way to test your changes in a "production-like" environment.) Force push to this branch by using `git push -f origin studio-testing` ## API Docs Server API docs live here: https://storyteller-docs.netlify.app/ ## Local Testing & Development ### Set up `.env` and the Proxy Server Copy & paste the env settings from `.env-local-proxy` to `.env`, (if the file `.env` do not exist, simply create one at the root of this project's folder beside the other env settings files). The settings from `.env-local-proxy` directs all requests to `localhost:3000`, this will relieve us from having to deal with CORS between various services. Then, start the proxy server in the folder `/proxy`. Before running the proxy for the first time, run: ``` npm i ``` To start the proxy run: ``` npm run dev ``` If the proxy fails, make sure your node version is 18.18. If you need to change the node version run `npm rebuild` once before re-running `npm run dev` ### Run the Code Locally To setup and run this project's code locally: ``` npm install npm run dev ``` ## Other Documentation Here is the Swagger documentation for the backend endpoints - https://storyteller-docs.netlify.app/ This project uses Remix for routing and Tailwind for styling: - [Remix Docs](https://remix.run/docs) - [Tailwind Docs](https://tailwindcss.com/docs) On Netlify, we use functions: - [Netlify Functions Overview](https://docs.netlify.com/functions/overview)