# Nplex
## Getting started
### Using the prescribed package manager
The project's monorepo expects you to use `pnpm` as the package manager to enable proper use of its
workspace features. Using `npm` is not indicated. This allows dependency optimizations with shared
and cached packages on developement or production devices. If you do not have `pnpm` installed,
please refer to: or simply proceed with either:
```sh
# brew (preferred method)
brew install pnpm
# npm
npm install -g pnpm
```
### Completing your local setup
Before building or starting any service, make sure to define the required environment variables in a
`.env` file at the root of the repo. A reference [`.env.template`](.env.template) is provided to
help identify required variables. Any populated `.env` files are not included in commits, and never
should be, as they contain sensitive information for service authentications.
### Install
Install the project (and automatically run it's `prepare` script):
```sh
pnpm install
```
### Other scripts
Drizzle-kit has some trouble using the project's own tsconfig generated by SvelteKit, we thus
provide a helper to alias `drizzle-kit` scripts:
```sh
# Run a drizzle-kit related script using the proper ts config
pnpm db:run
```
This script is also used to provide further shorthands, such as:
```sh
# Generate a new migration
pnpm db:generate
# Apply migrations to the remote database
pnpm db:migrate
```
## Maintenance
### Application
#### Hosting
#### Email
#### Deployment
#### Architecture
### Database
#### Hosting
#### Migrating schema
:copyright: UNESCO Chair in Landscape and Environement