Skip to content

bitmatica/nest-blogmatica

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.

NPM Version Package License NPM Downloads Travis Linux Coverage Gitter Backers on Open Collective Sponsors on Open Collective

Description

Nest framework TypeScript starter repository.

Installation

$ yarn

Local Development

This app currently uses AWS KMS for encryption and requires that the AWS CLI is installed/configured. After installing the AWS CLI, configure it to use your credentials:

$ aws configure
AWS Access Key ID [None]: <YOUR_AWS_ACCESS_KEY_ID>
AWS Secret Access Key [None]: <YOUR_AWS_SECRET_ACCESS_KEY>
Default region name [None]: <YOUR_AWS_REGION>
Default output format [None]: json

Next start the database:

# Start database
docker-compose up

Sample app config is available in .env.example. Copy this to a new file that is ignored by version control:

# Copy config to a file that's ignored by version control
cp .env.example .env

Finally, run the app:

# watch mode
yarn dev

If you see errors about missing config values, ask your team members for any missing secrets.

Running the app

# development
$ yarn start

# watch mode
$ yarn dev

# production mode
$ yarn start:prod

Test

# unit tests
$ yarn test

# e2e tests
$ yarn test:e2e

# test coverage
$ yarn test:cov

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.

Roadmap

BE App Framework

  • API (GQL)
  • DRY models (nest)
  • ORM (typeorm)
  • Reusable resolvers (for typeorm)
  • N+1 problem (for typeorm queries, single sql query per gql query)
  • Role-based authorization
  • Dependency injection
  • Owned-record and other advanced authorization schemes
  • Authentication (email/password, oauth2, store/revoke tokens)
  • Resolver with REST data source
  • Env config (@nestjs/config)
  • Query pagination
  • Query filtering
  • Query sorting
  • File upload (streaming?)
  • File download (non-gql REST endpoint?)
  • Subscriptions (instead of FE polling where live data is desired)
  • Logging
  • Observability (e.g. latency stats, error counts, etc)
  • Unit tests
  • Integration tests
  • Forgot password flow (email sender?)
  • Encrypted db field (e.g. ssn)

BE Infra

  • Dockerize
  • RDMS (postgres on AWS RDS)
  • Set up k8s on AWS (EKS)
  • CI/CD

FE App Framework

  • React
  • GQL client lib (apollo)
  • State management (mobx state tree?)
  • Hooks
  • Email/password authentication flow
  • Oauth2 authentication flow
  • Collection views (posts/comments/users)
  • Styling framework
  • Subscriptions (depends on BE scheme)
  • Testing

FE Infra

  • Static file server (s3? cdn?)
  • CI/CD

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages