diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40a50189..7b01a939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,15 +45,18 @@ If you'd like to contribute code to Puter, you need to fork the project and subm We'll review your pull request and work with you to get your changes merged into the project. +## Repository Structure + +![file structure](./doc/File%20Structure.drawio.png) + ## Your first code contribution We maintain a list of issues that are good for first-time contributors. You can find these issues by searching for the [`good first issue`](https://github.com/HeyPuter/puter/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) label in our [GitHub repository](https://github.com/HeyPuter/puter). These issues are designed to be relatively easy to fix, and we're happy to help you get started. Pick an issue that interests you, and leave a comment on the issue to let us know you're working on it. -
- ## Documentation for Contributors -See [doc/contributors/index.md](./doc/contributors/index.md) for more information. +### Backend +See [src/backend/CONTRIBUTING.md](src/backend/CONTRIBUTING.md)
diff --git a/src/backend/doc/contributors/index.md b/src/backend/CONTRIBUTING.md similarity index 74% rename from src/backend/doc/contributors/index.md rename to src/backend/CONTRIBUTING.md index 381aeef0..a3101335 100644 --- a/src/backend/doc/contributors/index.md +++ b/src/backend/CONTRIBUTING.md @@ -1,18 +1,22 @@ # Contributing to Puter's Backend +## File Structure + + + ## Architecture -- [boot sequence](./boot-sequence.md) -- [modules and services](./modules.md) +- [boot sequence](./doc/contributors/boot-sequence.md) +- [modules and services](./doc/contributors/modules.md) ## Features -- [protected apps](../features/protected-apps.md) -- [service scripts](../features/service-scripts.md) +- [protected apps](./doc/features/protected-apps.md) +- [service scripts](./doc/features/service-scripts.md) ## Lists of Things -- [list of permissions](../lists-of-things/list-of-permissions.md) +- [list of permissions](./doc/lists-of-things/list-of-permissions.md) ## Code-First Approach @@ -20,21 +24,21 @@ If you prefer to understand a system by looking at the first files which are invoked and starting from there, here's a handy list! -- [Kernel](../../src/Kernel.js), despite its intimidating name, is a +- [Kernel](./src/Kernel.js), despite its intimidating name, is a relatively simple (< 200 LOC) class which loads the modules (modules register services), and then starts all the services. -- [RuntimeEnvironment](../../src/boot/RuntimeEnvironment.js) +- [RuntimeEnvironment](./src/boot/RuntimeEnvironment.js) sets the configuration and runtime directories. It's invoked by Kernel. - The default setup for running a self-hosted Puter loads these modules: - - [CoreModule](../../src/CoreModule.js) - - [DatabaseModule](../../src/DatabaseModule.js) - - [LocalDiskStorageModule](../../src/LocalDiskStorageModule.js) + - [CoreModule](./src/CoreModule.js) + - [DatabaseModule](./src/DatabaseModule.js) + - [LocalDiskStorageModule](./src/LocalDiskStorageModule.js) - HTTP endpoints are registered with - [WebServerService](../../src/services/WebServerService.js) + [WebServerService](./src/services/WebServerService.js) by these services: - - [ServeGUIService](../../src/services/ServeGUIService.js) - - [PuterAPIService](../../src/services/PuterAPIService.js) - - [FilesystemAPIService](../../src/services/FilesystemAPIService.js) + - [ServeGUIService](./src/services/ServeGUIService.js) + - [PuterAPIService](./src/services/PuterAPIService.js) + - [FilesystemAPIService](./src/services/FilesystemAPIService.js) ## Development Philosophies @@ -71,7 +75,7 @@ doing the useless work that reveals what the useful work is. ## Underlying Constructs -- [putility's README.md](../../packages/putility/README.md) +- [putility's README.md](../putility/README.md) - Whenever you see `AdvancedBase`, that's from here - Many things in backend extend this. Anything that doesn't only doesn't because it was written before `AdvancedBase` existed.