Skip to content

rijad992/github-task-project

Repository files navigation

Github task project

TypeScript version Node.js version

Getting Started

This project is intended to be used with the latest Active LTS release of Node.js. Api is documented via SwaggerUi.

Clone repository

To clone the repository, use the following commands:

git clone https://github.com/rijad992/github-task-project
cd github-task-project
npm i

App Structure

Module defines single feature. Its defined by controller and entity. Controller is the one that defines our application routes and handles I/O. Entity handles business logic.

Services are defined in services folder and contain logic reused trough modules. Core folder contains all core features of the app as types, enums, models, decorators.

App code is locatedin src folder. Application starter is inside bin folder. Unit tests are located inside __tests__.

Modules, services and entities are registered to di-container on root level of the app. Unit tests are performed by jest.

Development

To start local development server use npm run dev script which utilizes nodemon. Use .env.example to create .env file with your personal data.

Deployment

Deployment of app is handled with Pulumi IaC written in typesript. Infrastructure code is contained in infra folder.

CI/CD is handled by Github actions which will on push lint, test and build code. It will than test deployment with pulumi preview before deploying container to AWS ECR. Container is ran on AWS Fargate.

Available Scripts

  • start - starts server from build folder,
  • dev - starts local dev server with nodemon,
  • clean - remove coverage data, Jest cache and transpiled files,
  • prebuild - lint source files and tests before building,
  • build - transpile TypeScript to ES6,
  • build:watch - interactive watch mode to automatically transpile source files,
  • lint - lint source files and tests,
  • prettier - reformat files,
  • test - run tests,
  • test:watch - interactive watch mode to automatically re-run tests

License

Licensed under the APLv2. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published