A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
Nest framework TypeScript starter repository.
$ yarn
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.
# development
$ yarn start
# watch mode
$ yarn dev
# production mode
$ yarn start:prod
# unit tests
$ yarn test
# e2e tests
$ yarn test:e2e
# test coverage
$ yarn test:cov
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.
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
Nest is MIT licensed.
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