Demov is a simple application that lets you and your friends quickly decide what movie to watch. Hop into a party, pick your genre, and get swiping!
This repository contains the backend component of the application. For the frontend component, see here.
The application runs entirely on AWS, using serverless lambda functions for compute and DynamoDB as the datastore.
It is built and deployed using the CDK.
- Install Node.js verson 14.X
- Install NPM dependencies
npm install
- Configure AWS environment
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCES_KEY=...
- (Optional) Configure deployment environment. Defaults to
dev
export DEPLOYMENT=nonprod
- Build and launch application
npx cdk synth
npx cdk deploy
The API should now be successfully deployed.
demov
├── .github -- GitHub Actions workflows
├── bin -- CDK Entrypoint
├── docs
├── lib -- CDK Service Stack
├── python -- Python scripts for sourcing movies from a CSV file
└── src
├── data -- Mappers, repos, and entity definitions
├── lambda -- Lambda function entrypoints
└── util -- Additional utilities
ESLint is the linting tool of choice. It should be installed by with the rest of the packages by npm
.
Lint the codebase:
npm run lint
Prettier is the formatting tool used. It will also be install by default with npm
.
Format all files in codebase:
npm run prettier-format