From 6810ee6f3299f0426144f68d7157f7adc3cee357 Mon Sep 17 00:00:00 2001 From: Clemens Koza Date: Sat, 27 Jun 2020 14:33:38 +0200 Subject: [PATCH] document project structure --- docs/README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..909f90ec --- /dev/null +++ b/docs/README.md @@ -0,0 +1,59 @@ +# Developer Documentation + +This directory contains developer documentation for the Hedgehog IDE. +It covers general information on the architecture, code style recommendations and APIs. + +## Project structure + +Hedgehog IDE is originally based on [React Starter Kit](https://github.com/kriasoft/react-starter-kit/) but has departed from its structure in places. + +- `HedgehogIDE` + - `.vscode`: + VS Code IDE configuration + - `build`: + output of the build process + - `docs`: + this directory + - `favicons`: + favicon package generated by https://realfavicongenerator.net/ + - `flow-typed`: + [Flow](https://flow.org/) type definitions of external packages + - `gsl_blockly`: + [gsl](https://github.com/SillyFreak/gsl/) code generator for the [Blockly](https://developers.google.com/blockly/) language of the Hedgehog IDE + - `gsl_sdk`: + [gsl](https://github.com/SillyFreak/gsl/) code generator for the plugin SDK of the IDE + - `mongodb`: + mongodb data directory used when using `yarn mongod` + - `node_modules` + - `public`: + static ressources; mainly favicon variations, but also manifest files + - `src` + - `client`: + browser entry point; setting up React rendering in the browser + - `components`: + frontend logic of the Hedgehog IDE; will be expanded upon later + - `core`: + shared logic between client and server; mostly data model definitions + - `executor`: + an additional browser entry point for the code execution iframes + - `sdk`: APIs for calling IDE function from an execution iframe + - `routes`: + route definitions for [universal-router](https://github.com/kriasoft/universal-router) + - `sdk`: + API definitions exposed to the execution iframes + - `server`: + backend logic including SSR, GraphQL API and MongoDB persistence + - `serviceworker`: + [https://developers.google.com/web/tools/workbox](Workbox)-based service worker for offline functionality + - `tools`: + see also the `tools` directory below: extracted tools for use in the production environment + - `translations`: + language files for [react-intl](https://www.npmjs.com/package/react-intl) + - `template`: + React Starter Kit documentation files + - `test`: + Tests + - `tools`: + Build scripts + +