# 2.0 Development Notes
This document collects notes and decisions taken during the development of HedgeDoc 2.0.
It should be converted to a properly structured documentation, but having unstructured docs
is better than having no docs.

## Supported databases
We intend to officially support and test these databases:
- SQLite (for development and smaller instances)
- PostgreSQL
- MariaDB

## Special Groups
The software provides two special groups which have no explicit users:
- `everyone` (Describing that everyone who wants to access a note can do if it is enabled in the config.)
- `loggedIn` (Describing all users which are logged in)

## Deleting notes and revisions
- The owner of a note may delete it.
    - By default, this also removes all revisions and all files that were uploaded to that note.
    - The owner may choose to skip deleting associated uploads, leaving them without a note.
    - The frontend should show a list of all uploads that will be affected
      and provide a method of skipping deletion. 
- The owner of a note may delete all revisions. This effectively purges the edit
  history of a note.

## Dev Setup
- Clone backend and frontend in two folders.
- Run `yarn install` in both projects
- Start the backend server in watch mode using `yarn start:dev`. The backend is then accessible on port 3000.
- Start the frontend dev server using `yarn start`. The frontend is now accessible on port 3001.