Skip to content

Coding Standards

Rina Rene du Toit edited this page Jul 27, 2022 · 1 revision

Conventions and styles

  • Use CamelCase for class names.
  • Use pascal Case for function and variable names.
  • Small, frequent commits.
  • Use narwhale(nx) when creating new components or libraries.
  • Pull Requests should only be merged if another team member has reviewed it.
  • Use comments to explain bits of code where the meaning can not be easily inferred.
  • When creating an entity for the api, the filename should end with .entity.ts

High level overview of folder structure

├── apps
├── libs

apps folder

├── apps
│   ├── api 
│       ├── src
│           ├── app
|               ├── app.module.ts // API related features will be imported here
│           ├── assets
│           ├── environments
│   ├── client 
│       ├── src
│           ├── app
|               ├── app.module.ts // Client related features will be imported here
│           ├── android //native environment for android
│           ├── ios //native environment for ios
│   ├── client-e2e // end-to-end testing

libs

├── libs
│   ├── api // Contains all the services 
│       ├── shell // Used to export api's, which will be accessed by files in the apps folder
│       ├── Speech-to-text //Contains a specific service
│           ├── api // Provides the client access to the service
│           ├── services // Implements the service and uses MongoDB data api to send/receive data to the database
|       ├── Other Service
│           ├── api // Provides the client access to the service
│               ├── data-access // Specifies the entities used in the api
│               ├── feature // Actual implementation of api
│           ├── services // Implements the service and uses MongoDB data api to send/receive data to the database
│               ├── feature // Implementation of service layer using the cqrs implementation that nestjs provides
│           ├── shared //Can be used on any level where applicable. Any shared modules can be placed in a shared folder
│   ├── client
│       ├── UI // Components that are relevant to the user interface
│           ├──src
│               ├──lib
│                   ├──home// Home page
│                       ├──home.js //component code for home page
│                       ├──home.spec.js //testing file for home page
│                   ├──other components
│                       ├──component.js // .js was used instead of .ts because react native does not have great typescript support.
│                       ├──component.spec.js
│                       ├──component.module.css //Local styles for specefic component
│               ├──index.js //Exports all components
Clone this wiki locally