How do we control quality

How do we control quality
Processing request
Leader of our development department gets your request via e-mail and asks for the needed details, then evaluates the project.
Payment and start of works
After technical task is discussed and documents are signed, leader of the department creates a new project on git.cart-power.com and development stars.
Development and code control
Developer completes necessasry tasks, then leader of the department controls code and tests all modifications.
Preview
If the project passes code control and test control successfully, then modifications are pushed to demo server, where client can preview the result.
How we work with versions control system

Basic rules


1. As versions control system Cart-Power uses Git. Git server is located at Cart-Power server Cart-Power and can be found at git.cart-power.com
2. Versions control system is recommended to be used with every client.
Versions control system helps with the following:
- allows to control a project which is being developed by several developers
- allows to control a project by employees of several companies
- allows to control a project by its manager
- code Review by Cart-Power
- allows to track changes and roll them back
- allows to control a project by client
3. Developers non-familiar with Git are recommended to go through a turtorial: https://try.github.io/ или https://www.codecademy.com/learn/learn-git

How should work with Git be organized


Git.cart-power.com is a server with repositories
Local is a local server, where a developer makes needed changes to files.
Dev is a server, where developers push changes to test how they work with each other.
Staging is a test server, where client can test the changes. Changes are being pushed here only after they are tested on Dev.
Production is a client's live server, where changes are being pushed after they are accepted by the client and he/she confirms, that everything works as intended.

Git working order


1. Developer gets the latest version of a project from git to his local device.
2. Developer makes necessary changes.
3. Developer rolls the changes to Git. It's NECESSARY to add comments to commits, where following info is specified: developer's name, short description of changes. I.e.: git commit -m 'Fix of error on product page. Alexey Kutyrev'.
4. Developer pulls changes from Git to Dev.
5. Developer tests completed changes on Dev and tells leader of the department about finished tasks.
6. Leader of the department checks finished work and makes a code review.
7. Developer pulls changes from Git to Staging.
8. Developer tests changes on Staging and informs leader of the department.
9. Leader of the department informs the client on finished state of a project.
10. Client tests changes on Staging.
11. On acceptance from leader of the department, developer pulls changes from Git to Production.

Strictly prohibited

1. Editing of Dev, Staging, Production files
2. Make commits, which overwrite lines, containing incorrect tabulation. Before working with Git it's necessary to make sure, that text editor, used by developer, has tabulation made of 4 blank spaces. If you see non-standard tabulation in code, first make it look according to PSR (0,1,2) and then make a commit without any of your canges, correcrtly marked code only. Then proceed to make your changes.

Acces to Git


To get access to Git, you should contact project manager or send e-mail to sales@cart-power.com
Developers, granted acces to Git, need to generate SHH-key and add it to their account.
If using Linux, a key is generated with the following command: ssh-keygen -t rsa -b 2048 Then it's accessable through: /home/[USER_NAME]/.ssh и In the same folder check for config file (create if necessart) and add:
Host *
AddressFamily inet
User akutyrev(Specify your user)
StrictHostKeyChecking no
Compression yes
ForwardAgent yes IdentityFile ~/.ssh/id_rsa
KeepAlive yes
ForwardX11Trusted no