diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml new file mode 100644 index 0000000..449a335 --- /dev/null +++ b/.github/workflows/deployment.yml @@ -0,0 +1,31 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [master] + paths: [website/**] + +jobs: + deploy: + name: Deploy to GitHub Pages + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 14.x + cache: npm + - name: Build website + working-directory: website + run: | + npm ci + npm run build + + # Popular action to deploy to GitHub Pages: + # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + # Build output to publish to the `gh-pages` branch: + publish_dir: ./website/build \ No newline at end of file diff --git a/.gitignore b/.gitignore index 04bf49f..b2d6de3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,90 +1,20 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ +# Dependencies +/node_modules -# TypeScript cache -*.tsbuildinfo +# Production +/build -# Optional npm cache directory -.npm +# Generated files +.docusaurus +.cache-loader -# Optional eslint cache -.eslintcache +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# next.js build output -.next - -# nuxt.js build output -.nuxt - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -.idea/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..8bf4d45 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,6 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/engineering-docs.iml b/.idea/engineering-docs.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/engineering-docs.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f3f5442 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Forus Labs' Engineering Documentation/.gitignore b/Forus Labs' Engineering Documentation/.gitignore deleted file mode 100644 index b2d6de3..0000000 --- a/Forus Labs' Engineering Documentation/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/Forus Labs' Engineering Documentation/README.md b/Forus Labs' Engineering Documentation/README.md deleted file mode 100644 index aaba2fa..0000000 --- a/Forus Labs' Engineering Documentation/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Website - -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -Using SSH: - -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/Forus Labs' Engineering Documentation/docs/collaboration/common-pull-request-issues.md b/Forus Labs' Engineering Documentation/docs/collaboration/common-pull-request-issues.md deleted file mode 100644 index e69de29..0000000 diff --git a/Forus Labs' Engineering Documentation/docs/collaboration/gentlemens-etiquette.md b/Forus Labs' Engineering Documentation/docs/collaboration/gentlemens-etiquette.md deleted file mode 100644 index 46a67ab..0000000 --- a/Forus Labs' Engineering Documentation/docs/collaboration/gentlemens-etiquette.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: gentlemens-etiquette -title: A Gentleman's Etiquette -sidebar_label: Gentlemen's Etiquette ---- - -_A Gentleman's guide to good development etiquette._ - -This guide contains what we consider to be good development etiquette that gentlemen follow. Only barbarians willfully ignore them. - -## Pull Requests - -### Draft a Pull Request - -A gentleman drafts a pull request when soliciting feedback. Barbarians willfully submit a work-in-progress pull request -as ready for review. - -![Draft Pull Request Button](/img/collaboration/draft-pull-requests.png) - -Drafting a pull request distinguishes between pull requests soliciting feedback and those ready for review. It helps other -developers keep track of a pull request's status. - -### Perform a Self-review - -Before submitting a pull request for peer-review, a gentleman performs a cursory self-review and fixes any obvious mistakes -they can find. Barbarians willfully (mis)uses peer-reviews as a human-powered lint to spot trivial issues. - -It's perfectly normal to submit a pull request with a few careless mistakes. On the contrary, submitting a pull request filled -with careless mistakes every other line implies that the developer is a barbarian that simply does not care or does not spot -the mistakes. Both of which does not reflect well on the developer. - -A pull request filled with careless mistakes dramatically slows down the progress of a code review. Not to mention, it is -a frustrating experience for the reviewer. Put yourself into the shoes of the reviewer and imagine if someone else did the same. - -See [common pull request issues](./common-pull-request-issues.md) for frequently encountered issues. - - - - diff --git a/README.md b/README.md index 195c32d..aaba2fa 100644 --- a/README.md +++ b/README.md @@ -1 +1,41 @@ -engineering-docs +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/Forus Labs' Engineering Documentation/babel.config.js b/babel.config.js similarity index 100% rename from Forus Labs' Engineering Documentation/babel.config.js rename to babel.config.js diff --git a/docs/collaboration/common-pull-request-issues.md b/docs/collaboration/common-pull-request-issues.md new file mode 100644 index 0000000..aa93bb8 --- /dev/null +++ b/docs/collaboration/common-pull-request-issues.md @@ -0,0 +1,32 @@ +--- +id: common-pull-request-issues +title: Common Pull Request Issues +sidebar_label: Common Pull Request Issues +--- + +_A non-exhaustive list of frequently encountered pull request issues._ + +Collated below is a non-exhaustive list of frequently encountered pull request issues. By collating these issues, it is +our intention that developers recognize what issues to look out for when performing a self-review. + +## Grammatical Mistakes and Awkward Phrasing in Documentation + +One common issue is grammatical mistakes and awkward phrasing in the documentation of code. To minimize the occurrence of +these issues, it is recommended to perform the following: +* Consider using a grammar checker such as Grammarly or switching to Android Studio/IntelliJ which contain a built-in grammar checker +* Refer to existing documentation in the same project. It is likely that the project contains similar abstractions. Emulating +the existing documentation is a great method of ensuring that documentation is consistent. +* Refer to how a language's standard library phrases similar concepts. Using phrasing and terminology consistent with the language's +reduces the cognitive burden of those reading the documentation +* Repeatedly read through the documentation. + +See Google's [technical writing guide](https://developers.google.com/tech-writing) for more information. + +## Import Ordering +Most IDEs place suggested import statements either at the top of the file or in alphabetical order. Neither of which confirm +to our style guide. + +If the project uses Dart/Flutter, consider running the following command to sort all import statements: +``` +flutter pub run import_sorter:main +``` \ No newline at end of file diff --git a/Forus Labs' Engineering Documentation/docs/collaboration/crafting-a-good-pull-request.md b/docs/collaboration/crafting-a-good-pull-request.md similarity index 100% rename from Forus Labs' Engineering Documentation/docs/collaboration/crafting-a-good-pull-request.md rename to docs/collaboration/crafting-a-good-pull-request.md diff --git a/docs/collaboration/development-etiquette.md b/docs/collaboration/development-etiquette.md new file mode 100644 index 0000000..3bde403 --- /dev/null +++ b/docs/collaboration/development-etiquette.md @@ -0,0 +1,42 @@ +--- +id: development-etiquette +title: Development Etiquette +sidebar_label: Development Etiquette +--- + +_A guide to good development etiquette._ + +This document contains engineering conventions and practices that we consider to be good practice. +In essence, the conventions and practices outlined in this document can be summarised as _"Work hard to make things easier"_. + +## Soliciting Feedback + +During verbal discussions on a feature, an accompanying draft pull request should be submitted. It is common for both +parties to forget the contents of the discussion. By inscribing important sections of the discussion in the draft pull +request, it becomes an indispensable archive for future reference. + +It is important to note that a **_draft_** pull request should be created instead of a **_normal_** pull request. This helps +other developers distinguish between pull requests soliciting feedback and those ready for review. + +![Draft Pull Request Button](/img/collaboration/draft-pull-requests.png) +

How to create a draft pull request

+ +## The Definition of "Done" + +The definition of _"Done"_ is highly subjective especially in the context of pull requests. By providing a standardised +definition of _"Done"_, we seek to avoid misunderstandings in what constitutes a pull request that is ready for review. + +By our definition, a _"Done"_ pull request satisfies all the following criteria: +* It is feature-complete +* It is thoroughly tested and nothing is expected to break +* It is prepared cleanly and thoroughly to the best of the author's ability + +Sometimes, developers may be overwhelmed by the pressure to ship pull requests fast and skip the last two points. However, +this is counterproductive and often leads to a net decrease in development velocity. The decrease in velocity can be attributed +to the latency of the constant ping-ponging between author and reviewer. Furthermore, it can be a frustrating experience +for the reviewer. + +To avoid such situations, it is recommended for developers to perform a cursory self-review at least once. A self-review +should address common mistakes such as grammatical and spelling errors. + +See [common pull request issues](./common-pull-request-issues.md) for more information. diff --git a/Forus Labs' Engineering Documentation/docs/collaboration/git-gud.md b/docs/collaboration/git-gud.md similarity index 100% rename from Forus Labs' Engineering Documentation/docs/collaboration/git-gud.md rename to docs/collaboration/git-gud.md diff --git a/docs/collaboration/pair-programming.md b/docs/collaboration/pair-programming.md new file mode 100644 index 0000000..59969eb --- /dev/null +++ b/docs/collaboration/pair-programming.md @@ -0,0 +1,28 @@ +--- +id: pair-programming +title: Pair Programming +sidebar_label: Pair Programming +--- + +_Useful tips for pair programming._ + +Collated below is a non-exhaustive list of tips for pair programming. By collating these tips, it is our intention that +developers will be better equipped for pair programming. + +## Environment +* Have a comfortable and inviting environment. +* Avoid esoteric desktop setups, i.e. custom keybindings and non-standard shells. Stick with the defaults. +* Disable notifications, i.e. Discord messages, email pop-ups. Pairing with someone distracted by such notifications can be a frustrating experience. + +## Interaction +* Have one developer drive and another navigate. The driver will mostly be typing while the navigator mostly discusses what to do. +* Regularly switch between roles. As a rule of thumb, a switch should occur every ~15 minutes. If one person seems like engaged, switch roles. +* Take frequent breaks. Recognize that people respond to pair programming in different ways and cannot last the entire day. +* Do not be afraid to make and show mistakes. Some people are fearful that others will see all mistakes they make during pair programming. +Demonstrate that everyone makes mistakes, show your mistakes and how they iteratively get fixed as you go. +* Avoid closed discussions when there is a disagreement with an approach, e.g. "That's not good" or "I don't like it". +This will shut down someone and encourage the avoidance of sharing opinions or dreading pair programming. +* Ask open questions such as "What are the benefits and trade-offs of doing it this way?" or "Are there any alternatives that we can explore?". +* Moments of silence are perfectly acceptable. +* Spend time together away from code. Build rapport, trust, laugh about things. Discussing ideas away from the code can sometimes +help see the bigger picture. diff --git a/docs/collaboration/reviewing-a-pull-request.md b/docs/collaboration/reviewing-a-pull-request.md new file mode 100644 index 0000000..5060333 --- /dev/null +++ b/docs/collaboration/reviewing-a-pull-request.md @@ -0,0 +1,38 @@ +--- +id: reviewing-a-pull-request +title: Reviewing a Pull Request +sidebar_label: Reviewing a Pull Request +--- + +_A guide to reviewing pull requests._ + +## Performing a Code Review + +After the submission of a pull request, it must be reviewed by another developer. All developers will be assigned to review +pull requests. In most cases, the reviewer is chosen by GitHub's workload distribution algorithm. However, if a pull request +is exceedingly complex, the developer most familiar with that particular area will be chosen instead. + +If a pull request is deemed to contain too many trivial mistakes, i.e. formatting/grammatical mistakes, the reviewer should +cease the review. Before continuing the review, the reviewer should request for the author to perform a self-review and fix +any underlying mistakes. This is to prevent a constant ping-ponging between author and reviewer. + +Similarly, if a pull request is too large, the reviewer should request that the pull request be split into several smaller ones. + +See Google's [The Standard of Code Review](https://google.github.io/eng-practices/review/reviewer/standard.html) and +[What to Look for in a Code Review](https://google.github.io/eng-practices/review/reviewer/looking-for.html) for more information. + +## Conflict Resolution + +It is recommended that the pull request author and reviewer conduct face-to-face meeting or video call to discuss the changes +under the following circumstances: + +* A disagreement occurs +* A pull request contains too many flagged issues +* A pull request contains architectural issues + +## Approving a Pull Request + +After a pull request has been approved, the reviewer should **squash and merge** the pull request. + +![Squashing and merging](/img/collaboration/squash-and-merge.png) +

Squashing and merging a pull request

\ No newline at end of file diff --git a/docs/further-reading.md b/docs/further-reading.md new file mode 100644 index 0000000..8992079 --- /dev/null +++ b/docs/further-reading.md @@ -0,0 +1,28 @@ +--- +id: further-reading +title: Further Reading +sidebar_label: Further Reading +--- + +_Additional resources for further reading and learning._ + +Listed below is a curated list of articles and books that we have found to be tremendous aid in our journey to improve our +software engineering skills. + +## Project Management +* [Pragmatic Engineer](https://newsletter.pragmaticengineer.com/) - A weekly newsletter on project management and software engineering. +* [The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959) - A collection +of essays on project management. + +## Software Engineering +* [A Philosophy of Software Design](https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201) - An in-depth +look into software design and manging complexity. +* [Google's Engineering Guide](https://google.github.io/eng-practices/) - A guide to creating and reviewing pull requests. +* [Google's Technical Writing Guide](https://developers.google.com/tech-writing) - A guide to technical writing. +* [The Pragmatic Programmer, 20th Anniversary Edition](https://www.amazon.com/Pragmatic-Programmer-journey-mastery-Anniversary/dp/0135957052) - A must-read. +* [Trunk-based Development](https://trunkbaseddevelopment.com/) - A collection of documents on trunk- based development. + +## Languages + +### Java +* [Java Concurrency in Practice](https://www.amazon.com/dp/0321349601/?tag=javamysqlanta-20) - A good introduction to concurrent programming in Java. \ No newline at end of file diff --git a/docs/getting-started/a-quick-tour.md b/docs/getting-started/a-quick-tour.md new file mode 100644 index 0000000..c8eedce --- /dev/null +++ b/docs/getting-started/a-quick-tour.md @@ -0,0 +1,5 @@ +--- +id: a-quick-tour +title: A Quick Tour +sidebar_label: A Quick Tour +--- \ No newline at end of file diff --git a/docs/getting-started/first-steps.md b/docs/getting-started/first-steps.md new file mode 100644 index 0000000..e9816f9 --- /dev/null +++ b/docs/getting-started/first-steps.md @@ -0,0 +1,5 @@ +--- +id: first-steps +title: First Steps +sidebar_label: First Steps +--- \ No newline at end of file diff --git a/docs/getting-started/what-to-expect.md b/docs/getting-started/what-to-expect.md new file mode 100644 index 0000000..9767242 --- /dev/null +++ b/docs/getting-started/what-to-expect.md @@ -0,0 +1,12 @@ +--- +id: what-to-expect +title: What to Expect +sidebar_label: What to Expect +--- + +As part of the on-boarding process, a new developer will have a developer familiar with the codebase tagged to them. During the first few reviews, the other developer will review the pull request after the new developer. By observing the other developer, the new developer will know what to look out for. + +## The first week + +## The first month + diff --git a/Forus Labs' Engineering Documentation/docs/overview.mdx b/docs/overview.mdx similarity index 91% rename from Forus Labs' Engineering Documentation/docs/overview.mdx rename to docs/overview.mdx index ca2c625..4b63f3e 100644 --- a/Forus Labs' Engineering Documentation/docs/overview.mdx +++ b/docs/overview.mdx @@ -13,7 +13,7 @@ import ThemedImage from '@theme/ThemedImage'; light: '/img/logo-full-light.svg', dark: '/img/logo-full-dark.svg', }} -/>; +/> Every respectable organization that produces software adheres to certain best practices and conventions. These living documents represent _our_ best practices and conventions that we developed over time from our experience and observations. We welcome @@ -21,5 +21,5 @@ any improvements and suggestions to these documents, so don't be afraid to contr The documents are sorted into three categories: * [Getting Started](./getting-started) - Essential information for new developers -* [Collaboration](./collaboration) - Our conventions and practices +* [Collaboration](./collaboration/git-gud.md) - Our conventions and practices * [Style Guides](./style-guides) - Style guides for different languages (and technical writing) diff --git a/Forus Labs' Engineering Documentation/docusaurus.config.js b/docusaurus.config.js similarity index 96% rename from Forus Labs' Engineering Documentation/docusaurus.config.js rename to docusaurus.config.js index dc176e3..e70f72d 100644 --- a/Forus Labs' Engineering Documentation/docusaurus.config.js +++ b/docusaurus.config.js @@ -8,7 +8,7 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula'); const config = { title: 'Forus Labs\' Engineering Documentation', tagline: 'Unlocking your potential', - url: 'https://your-docusaurus-test-site.com', + url: 'https://foruslabs.io', baseUrl: '/', onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', @@ -58,7 +58,7 @@ const config = { }, // {to: '/blog', label: 'Blog', position: 'left'}, { - href: 'https://github.com/facebook/docusaurus', + href: 'https://github.com/forus-labs', label: 'GitHub', position: 'right', }, diff --git a/Forus Labs' Engineering Documentation/package-lock.json b/package-lock.json similarity index 100% rename from Forus Labs' Engineering Documentation/package-lock.json rename to package-lock.json diff --git a/Forus Labs' Engineering Documentation/package.json b/package.json similarity index 100% rename from Forus Labs' Engineering Documentation/package.json rename to package.json diff --git a/Forus Labs' Engineering Documentation/sidebars.js b/sidebars.js similarity index 82% rename from Forus Labs' Engineering Documentation/sidebars.js rename to sidebars.js index 47b4fa6..e89143e 100644 --- a/Forus Labs' Engineering Documentation/sidebars.js +++ b/sidebars.js @@ -34,11 +34,9 @@ module.exports = { type: 'category', label: 'Getting Started', items: [ -// 'manual-installation', -// 'manual-installation/android', -// 'manual-installation/ios', -// 'manual-installation/macos', -// 'manual-installation/web', + 'getting-started/first-steps', + 'getting-started/a-quick-tour', + 'getting-started/what-to-expect', ], }, { @@ -46,12 +44,11 @@ module.exports = { label: 'Collaboration', items: [ 'collaboration/git-gud', + 'collaboration/development-etiquette', 'collaboration/crafting-a-good-pull-request', - 'collaboration/gentlemens-etiquette', -// 'manual-installation/android', -// 'manual-installation/ios', -// 'manual-installation/macos', -// 'manual-installation/web', + 'collaboration/reviewing-a-pull-request', + 'collaboration/common-pull-request-issues', + 'collaboration/pair-programming', ], }, { @@ -69,7 +66,7 @@ module.exports = { }, ], }, - + 'further-reading', ] // 'Home': { // }, diff --git a/Forus Labs' Engineering Documentation/src/components/HomepageFeatures.js b/src/components/HomepageFeatures.js similarity index 100% rename from Forus Labs' Engineering Documentation/src/components/HomepageFeatures.js rename to src/components/HomepageFeatures.js diff --git a/Forus Labs' Engineering Documentation/src/components/HomepageFeatures.module.css b/src/components/HomepageFeatures.module.css similarity index 100% rename from Forus Labs' Engineering Documentation/src/components/HomepageFeatures.module.css rename to src/components/HomepageFeatures.module.css diff --git a/Forus Labs' Engineering Documentation/src/css/custom.css b/src/css/custom.css similarity index 100% rename from Forus Labs' Engineering Documentation/src/css/custom.css rename to src/css/custom.css diff --git a/Forus Labs' Engineering Documentation/src/pages/index.js b/src/pages/index.js similarity index 100% rename from Forus Labs' Engineering Documentation/src/pages/index.js rename to src/pages/index.js diff --git a/Forus Labs' Engineering Documentation/src/pages/index.module.css b/src/pages/index.module.css similarity index 100% rename from Forus Labs' Engineering Documentation/src/pages/index.module.css rename to src/pages/index.module.css diff --git a/Forus Labs' Engineering Documentation/static/.nojekyll b/static/.nojekyll similarity index 100% rename from Forus Labs' Engineering Documentation/static/.nojekyll rename to static/.nojekyll diff --git a/Forus Labs' Engineering Documentation/static/img/collaboration/draft-pull-requests.png b/static/img/collaboration/draft-pull-requests.png similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/collaboration/draft-pull-requests.png rename to static/img/collaboration/draft-pull-requests.png diff --git a/Forus Labs' Engineering Documentation/static/img/collaboration/feature-branch.png b/static/img/collaboration/feature-branch.png similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/collaboration/feature-branch.png rename to static/img/collaboration/feature-branch.png diff --git a/static/img/collaboration/squash-and-merge.png b/static/img/collaboration/squash-and-merge.png new file mode 100644 index 0000000..aefd350 Binary files /dev/null and b/static/img/collaboration/squash-and-merge.png differ diff --git a/Forus Labs' Engineering Documentation/static/img/docusaurus.png b/static/img/docusaurus.png similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/docusaurus.png rename to static/img/docusaurus.png diff --git a/Forus Labs' Engineering Documentation/static/img/favicon.ico b/static/img/favicon.ico similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/favicon.ico rename to static/img/favicon.ico diff --git a/Forus Labs' Engineering Documentation/static/img/favicon.png b/static/img/favicon.png similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/favicon.png rename to static/img/favicon.png diff --git a/Forus Labs' Engineering Documentation/static/img/logo-dark.svg b/static/img/logo-dark.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/logo-dark.svg rename to static/img/logo-dark.svg diff --git a/Forus Labs' Engineering Documentation/static/img/logo-full-dark.svg b/static/img/logo-full-dark.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/logo-full-dark.svg rename to static/img/logo-full-dark.svg diff --git a/Forus Labs' Engineering Documentation/static/img/logo-full-light.svg b/static/img/logo-full-light.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/logo-full-light.svg rename to static/img/logo-full-light.svg diff --git a/Forus Labs' Engineering Documentation/static/img/logo-light.svg b/static/img/logo-light.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/logo-light.svg rename to static/img/logo-light.svg diff --git a/Forus Labs' Engineering Documentation/static/img/undraw_docusaurus_mountain.svg b/static/img/undraw_docusaurus_mountain.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/undraw_docusaurus_mountain.svg rename to static/img/undraw_docusaurus_mountain.svg diff --git a/Forus Labs' Engineering Documentation/static/img/undraw_docusaurus_react.svg b/static/img/undraw_docusaurus_react.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/undraw_docusaurus_react.svg rename to static/img/undraw_docusaurus_react.svg diff --git a/Forus Labs' Engineering Documentation/static/img/undraw_docusaurus_tree.svg b/static/img/undraw_docusaurus_tree.svg similarity index 100% rename from Forus Labs' Engineering Documentation/static/img/undraw_docusaurus_tree.svg rename to static/img/undraw_docusaurus_tree.svg