My website's backend.
Note: this repository/project is UNLICENSED. If you don't know what that means, Google it.
Be sure that Git >= 2
is installed.
Open a command line at, or change directory (cd
) to where you'd like the project to exist (as a sub-directory).
Checkout the repository:
git clone [email protected]:stevenvachon/website-backend.git
Open the project directory:
cd website-backend
Be sure that Node.js >= 22
is installed.
Install all dependencies:
npm install
For individual builds, see the README for each package.
To run all builds concurrently:
npm run build:all
To lint all files:
npm run lint:all
For individual tests, see the README for each package.
To run all tests concurrently:
npm run test:all
Deployment will be performed automatically when pushing/merging to the "main" branch.
- Search for "TODO" and "@todo".
- Set up alarms for each Lambda to detect abuse early.
- Set up throttling for API Gateway -- in YAML config?
- Maybe send Pinpoint data to S3 via Firehose for QuickSight to access.
- Use S3 Lifecycle Policy to remove old data.
- Consider using environment variables for Lambda CORS.
- Consider using TypeScript since all tests are stubbing
@aws-sdk/*
. - Add spectral cli to packages/api when possible; it wasn't working, and the IBM validator is too opinionated.
- Set up coverage for each individual package, and one for the root (all packages).
- Use
Promise.try()
in some places (such as tests) when Lambda supports Node v24. - Try negotiator again. It wasn't conforming to my tests.
- Consider responding with HTTP 415 for
Content-Type
headers containing a non-UTF8 charset.