From 727fcd4bfdfc194506760f04227b58062b1a3db5 Mon Sep 17 00:00:00 2001
From: Alexander Anikeev <iamanikeev@gmail.com>
Date: Tue, 28 May 2019 13:38:59 +0700
Subject: [PATCH] BRITECLAIM-1031 Update BriteEAV readme

---
 README.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 48 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index 4c394bd9..29de3929 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,36 @@
-# BriteEAV - entity-attribute-value storage for Django
-
-This repository is based on a [django-eav2](https://github.com/makimo/django-eav2) package. It provides an ability to 
-have unknown amount of fields for a Django model without having to change code when adding new fields. 
-Full description could be found in original library's `README`. This version has some significant changes that adopt the 
-library for BriteCore needs, therefore we have our own fork.
+# BriteEAV. Entity-Attribute-Value storage for Django.
+
+![CodeBuild](https://codebuild.us-east-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoic1V5K0RzemZ0ZE1JbDNlS0tYUFBoSlRrN0RlNkhMTzMyRzVzOXIwVHQyM25LNVpOdWFmRERMT3NSSXZGLzQ1RTR1eWJXaFNhUTBlZFZJZGhWdVJHTWlZPSIsIml2UGFyYW1ldGVyU3BlYyI6InV6aW9IQ3BoMTJTN2F0blMiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master) [![codecov](https://codecov.io/gh/IntuitiveWebSolutions/BriteEav/branch/master/graph/badge.svg?token=Ja81TG1179)](https://codecov.io/gh/IntuitiveWebSolutions/BriteEav)
+
+BriteEAV provides an ability to have unknown amount of fields for a Django model without having to change code when adding new fields.
+
+# Contacts  
+  
+| Name              | Role              | Username          |  
+|-------------------|-------------------|-------------------|   
+| Kujtim Hoxha      | System Architect  | @kujtimiihoxha    |  
+| Shend Carkaxhiu   | Lead Engineer     | @shendcarkaxhiu   |  
+| Ferdi Bejtullahu  | Lead Engineer     | @ferdibejtullahu  |  
+| Agon Gjonbalaj    | Software Engineer | @agonix           |  
+| Albert Hoxha      | Software Engineer | @alberthoxha97    |  
+| Alexander Anikeev | Software Engineer | @iamanikeev       |  
+| Erzen Komoni      | Software Engineer | @erzenkomoni      |  
+| Rexhep Berlajolli | Software Engineer | @rexhepberlajolli |
+  
+  
+# Communication  
+Relevant Slack channels to join:  
+  
+- `#pd-claims-int`  
+- `#pd-claims-ext`  
+- `#pd-claims-eng-int`  
+- `#pd-claims-cloud-int`  
+- `#pd-claims-gh-int`  
+
+# Additional information
+
+This repository is based on a [django-eav2](https://github.com/makimo/django-eav2) package. Full description could be found in original library's `README`. 
+This version has some significant changes that adopt the library for BriteCore needs, therefore we have our own fork.
 
 # Installation
 
@@ -11,7 +38,7 @@ Add corresponding requirement to your `requirements.txt`, or just install with `
 
     pip install brite_eav
 
-# Usage
+# Getting started
 
 ## Registration
 
@@ -112,8 +139,20 @@ These `kwargs` are being passed to corresponding serializer field when EAV attri
 Consider there is a following attribute attached to the model container `Attribute(name="short_string", datatype=Attribute.TYPE_TEXT, kwargs={"max_length": 2})`. 
 Then passing `short_string` with more then 3 characters will raise a validation error on serializer.
 
+# Repository best practices
+
+- Since it's a django package that is supposed to affect data model, always check the model changes by 
+running `manage.py makemigrations` and `manage.py migrate` in order to make sure that tour changes result 
+in correct migration. There is a dummy settings file at `tests.test_settings` that imitate Django app using EAV. 
+Migrations should not be committed go version control.
+- After committing the changes in pull request, run `bumpversion patch` to add a new release. 
+It will automatically change corresponding version files.
+- Cover new changes with tests and add regression test cases when bugs get fixed.
+
+
+# Other notes
 
-# What is changed in BriteCore version of Django-EAV
+## What is changed in BriteCore version of Django-EAV
 
 - Since we use `UUID` as primary keys, `Value` model has been modified to store generic relations as `UUID` fields.
 - Introduced the concept of EAV containers. Containers are models that define what fields are available for a particular 
@@ -126,7 +165,7 @@ to `urlconf`.
 - Tests refactored to use `Pytest`.
 
 
-# Testing
+## Testing
 
 Tests could be ran by the following command: