Skip to content
/ demov Public

An app designed to make deciding what to watch much easier.

License

Notifications You must be signed in to change notification settings

cgund98/demov

Repository files navigation

Demov

Typescript AWS Deploy License: MIT

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.

swiping stats

Getting Started

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.

Pre-requisites

  • Install Node.js verson 14.X

Installation

  1. Install NPM dependencies
npm install
  1. Configure AWS environment
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCES_KEY=...
  1. (Optional) Configure deployment environment. Defaults to dev
export DEPLOYMENT=nonprod
  1. Build and launch application
npx cdk synth
npx cdk deploy

The API should now be successfully deployed.

Project Structure

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

Housekeeping

Linting

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

Formatting

Prettier is the formatting tool used. It will also be install by default with npm.

Format all files in codebase:

npm run prettier-format

About

An app designed to make deciding what to watch much easier.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published