Skip to content

A copy of my group's SENG3011 project's backend APIs, comprised of lambda functions deployed to AWS via Terraform

Notifications You must be signed in to change notification settings

sam1357/JASSS-SolarVoyant-API

Repository files navigation

JASSS Microservices

Docs

TypeScript Terraform AWS Docker Swagger PNPM

Solarvoyant Logo

This repository holds all of the microservices that will make up JASSS' frontend application - Solarvoyant - ostensibly a combination of the words 'Solar' and 'Clairvoyant'.

Basic Setup

Our monolithic repository utilises pnpm as our package manager and changesets for versioning.

pnpm is a much more space efficient and speed-focussed package manager, and also has support for workspaces to manage multi-project repositories like our one. Thus, our project utilises a pnpm workspace.

Installing pnpm

Do note that we are utilising Node 21 for our project, so please ensure your Node version is up to date before anything else. nvm is highly recommended.

pnpm can be installed by simply running:

npm install -g pnpm

Installing packages

You will notice that there is a package.json within each package, but few to no dependencies. This is because an advantage of using workspaces is that of shared dependencies. Since most if not all of our repositories will utilise linting and Prettier, these packages have been placed in the root level package.json. Any additional packages that individual packages may need can simply be added to the corresponding package.json.

To install all modules in all packages, run:

pnpm i --recursive

Changesets

We are utilising changesets to help organise versioning of packages. It also allows us to create detailed changelogs and as much documentation as we want.

Everything is already setup, but every time a set of changes is to be considered as a new version, run pnpm changeset to create a new changeset, and follow its instructions.

Learn more here.

Building packages

Run the following command to build all packages from the project root directory.

chmod +x build-all.sh && ./build-all.sh

About

A copy of my group's SENG3011 project's backend APIs, comprised of lambda functions deployed to AWS via Terraform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages