- Ensure that you have git on your machine.
- Fork this repository and branch off of the
developbranch. - Install docker.
- .env file is needed for the credentials of the Postgres instance.
Create a .env file at the root of your project
With the following values:
POSTGRES_PASSWORD=password POSTGRES_USER=upay POSTGRES_DB=apnasamaan - Run
docker-compose upin the root of the project.
- Go through the package.json file initially. The
package.jsonfile has two important pieces of information:- Dependencies that our core code is dependent on.
- Scripts that allow running of complicated scripts and commands with a short command.
- The codebase of the application resides in the
src/directory.
[TODO: Elaborate this whole section more]
Please look into our contributing guidelines for information on how to proceed with contributing to this repository.
start: Serves the applicationbuild-ts: Compiles the codebase from typescript to javascript and outputs in the 'dist/` directory.serve: Runs the application in production mode.watch-node: Runs the application in watch mode.dev: Starts compilation of typescript code and the application in development mode.watch-ts: Starts the typescript compilation in watch mode.lint: Lints the source code based on the config and reports errors in the console.test: Runs the test suite once and then exits.test:watch: Runs the test suite in watch mode.test:coverage: Runs the test suite once and reports the code coverage as it exits.
-
A linter allows to catch semantic errors before runtime. It also helps in creating a codestyle standard throughout the codebase.
-
Formatting issue rules have been turned off as we are using an auto-formatter called
prettier. It will auto-format the codebase based on the rules specified in .prettierrc upon every commit. -
There is a linter that is setup with the configuration that can be looked up in the .eslintrc file.
-
There are some issues with the integration of typescript linting with ESLint in VSCode with ESLint plugin, so it is recommended that, before commit, you run the
npm run lintcommand. The linting works fine with any linter plugin in Vim.