General convention for branches names are: <feature_name>-<user_name>
.
Feature names are given by Administrator. In the future, feature names will be taken from GitHub issues or project.
master
branch is protected by default. All pull requests have to be accepted by Administrator.
There are no restrictions in terms of commmit messages. However, please do not use "." or "next" as commit message. Message should describe briefly what was done.
- Plularize names.
- Use snake case in file names.
- File should have its type written before extension.
<name>.<type>.ts
, eg.:add-user.input.ts
.
- Modules should be placed in
src/modules
. - Utils should be placed in
src/utils
. - Shared providers should be placed in
common
module.
- Use eslint or tslint and prettier. It is already configured in
server
project. - Precommit hooks is defined for all projects.
- Use
@Inject()
before injected services. - Do not return
await
s. - If needed, await into
const
and return thatconst
. - Always use upper-case
@Decorators
, eg.prop()
from@typegoose/typegoose
should be imported asProperty
. Change the names of imports to unique. - Use relative imports.
- Use single quotes.
- Use semicolons.
- Use max line width set to 120 chars.
- Do not write extensive, to long methods.
Backend is written using TypeScript with NestJS and type-graphql.
Frontend is written using React and Apollo Client.