Skip to content

Developer Guidelines

nikhilpat edited this page Mar 19, 2018 · 7 revisions

Guidelines

Methodologies

To maintain the quality of this project, it is of important the developers must either be knowledgeable about the following Development Methodologies or make themselves aware of them before becoming a contributor.

  • DDD (Domain Driven Design)
  • BDD (Behaviour Driven Design)
  • CQRS (Command Query Responsibility Segregation)
  • TDD (Test-driven Development)
  • SOLID
  • Reactive
  • 12 Factor Apps
  • GOF Design Patterns

Coding Standards

As far as possible the project follows the set of practical guidelines established in Robert Martin's Book, Clean Code: A Handbook of Agile Software Craftsmanship

Though not required, it's recommended that developers make themselves aware of the coding standards by reading this book.

Setting Up The Development Environment

Refer to Getting Started With Development section of the Design Document.

Design Document

A comprehensive design document is maintained for the project.

Work Items

List and the Status of work items can be found here. Contributors can pick pending item of their choice and start contributing.

Technologies

Having knowledge of all of these at once is not required. The contributor can contribute to any part of the project, in the technology he is comfortable with.

UI

  • React Js
  • Redux

Frameworks

  • Spring Boot
  • Spring Cloud
  • WebFlux

Security

  • jjwt
  • Spring Security

Database

  • Mongo Db, Community Edition, v3.6
  • Redis

Deployment

  • Docker, Community Edition, version 17.12.1-ce
  • Ubuntu 16.04

Testing

  • Junit
  • REST-Assured
  • Cucumber

Integration

  • Rabbit MQ

Build

  • Travis CI

Dependency Management

  • Maven
  • NPM

Source Repository

  • Git

IDE

  • Eclipse Oxygen
  • VS Code

Documentation

  • Swagger