Monorepo templated based on Devcontainer/Hapi/Vue

This is a template repository for developing everything needed for a single modern web application/project in a monorepo fashion. The template is based on the following technologies/frameworks:

  • devcontainer for reproducible and fully sandboxed development enviroments based on Docker containers
  • Hapi as a backend framework
  • PostgreSQL as the database
  • Vue as a frontend framework
  • Terraform for infrastructure-related tooling

This template also includes some examples of usage, namely a backend integration with AdminJS to provide a standard, easy to use admin dashboard on top of Objection/Schwifty models and database resources, as well as an example of integration between frontend and backend.

How to use

  1. install the required dependencies
  2. clone this repository (or create a new one using this as a template)
  3. open the repository inside Visual Studio Code
  4. launch the development environment, either by clicking on "Reopen in Container" when prompted, or by opening the command palette (CTRL + SHIFT + P) and searching for the "Dev Containers: Rebuild an Reopen in Container" command
  5. develop as you would normally, keeping in mind to always work inside the container (e.g., by using the VSCode internal terminal, which is automatically created inside)
  6. to start the backend, go inside the backend directory and run pnpm start; to run the frontend, go inside the frontend directory and run pnpm run serve