The backend API of a full-stack TypeScript rating web application using modern tools.
- Deno - Successor to Node.js with built-in support for TypeScript.
- Danet - Nest inspired backend framework for Deno.
- Devbox - Ergonomic tool over Nix to enable easily creating portable, isolated development environments.
- Liquibase - Database versioning and migration tool.
- Docker - Dockerfile setup to deploy to AWS Lambda.
Install Devbox. On Windows, install WSL2 as a prerequisite as mentioned in the installation instructions.
(Windows only) - Pull down the project's git repository into WSL file system
instead of windows mounted file system (so do not place in directory
prefixed with /mnt
). This will ensure hot reload watch for file changes works
and Deno/Danet commands have fast performance. Suggested to put in something
like ~/github/rating-service/
. To edit files, Visual Studio Code can be
installed on Windows side and then open it in wsl in the current directory with:
code .
(first time only) - run devbox postgres setup script:
devbox run setup-postgresql
Start the Devbox environment (in WSL shell for Windows):
devbox shell
If postgres is not running, start it with:
devbox services start postgresql
Setup postgres database schema using liquibase:
liquibase update --url $RATING_SERVICE_DB_URL --changelog-file ./changelog/changelog-root.yaml
Then start the project:
deno task launch-server
This will run the local dev server for the API.