Allow users to easily transfer assets between Bholdus chain and other blockchains.
- Quick start
- Integrated eslint, prettier and husky
- Common Error Handler
- Common Response Handler
- Simple and Standard scaffolding
- Followed SOLID Principles
- Based on Typescript Syntax
- Simple Enviroment Configuration
- Global Enviroment Object
- Request/Response Encryption & Decryption Implementation
- Easily Add new feature
- Integrated winston Logger
- Production Ready Skeleton
- Follwed Production Ready Best Practices: Security
- Added only used npm modules
- Unit & Integration Test Cases
-
express,@types/express -
@types/node -
typescript -
dotenv -
cors -
helmet -
http-status-codes -
winston,@types/winston
- Clone the Application
- Install the dependencies
npm install - Start the application
npm start
- Install the dependencies
npm install - Create the build
npm run build - Start the application
npm run start:production - Before starting make sure to creat prod environment
.env.prodfile
| Name | Description |
|---|---|
| wiki/ | You can add project documentation and insructions file here |
| src/ | Source files |
| src/abstractions | Abstarct classes and Interfaces |
| src/components | REST API Components & Controllers |
| src/environments | Application Environments Handling utility |
| src/lib | Reusable utilises and library source code like a logger |
| src/middleware/ | Express Middlewares like error handler feature |
| build/ | Compiled source files will be placed here |
| tests/ | Test cases will be placed here |
| tests/helpers/ | Helpers for test cases will be placed here |
| tests/unit-tests/ | Unit Test cases will be placed here |
| tests/integration-tests/ | API routes (Integration) Test cases will be placed here |
Set the APPLY_ENCRYPTION environment variable to true to enable encryption.
You can directly access the environment attributes in any component/file using global environment object. For more details please check file src/global.ts.
Example
To access the applyEncryption attribute from Envionment class to Response Handler, write environment.applyEncryption;
${host}/api/status/system- Return the system information in response${host}/api/status/time- Return the current time in response${host}/api/status/usage- Return the process and system memory usage in response${host}/api/status/process- Return the process details in response${host}/api/status/error- Return the error generated object in response
- Because files are not executable by default; they must be set to be executable.
chmod ug+x .husky/*
chmod ug+x .git/hooks/*
- Don’t use deprecated or vulnerable versions of Express
- Use TLS
- Use Helmet
- Use cookies securely
- Prevent brute-force attacks against authorization
- Ensure your dependencies are secure
- Avoid other known vulnerabilities
- Additional considerations