Project Profile
Purpose
Project Profile is starting point of storing all information for a project including source code, released packages. Project Profile also have life cycle of the product implemented on a single instance of Magento System of a Store Owner.
Relationship

Principles
Principles 1: A single instance of a Magento System have one and only one Project Profile. Therefore:
- If a Store Owner update to a new Magento System, we must create a new Project Profile and archive the old Project Profile.
- If a Customer is an Agency having many Store Owners, we must create many Project Profiles for each Store Owner.
Principles 2: Each Project on My Magestore have a single equiva;ent Project on GitLab. Never create project from GitLab.
Project Stage
Notice: A Project Profile have forever life cycle. The life cycle stop only if the Store Owner stop their using our Product or change to another Project Profile. Any customized package required by the customer later will never change the project stage.
- Kick-off: Start immediately after customer paid and finish only if every plan for each project stage is fulfilled and approved by the customer.
- Doing: Start immediately while the team begins doing the first user story and finishes while the last user story need to be acceptance.
- Acceptance: Start while the last package is installed on the acceptance site nd waiting for the final acceptance. Finish while the customer accepts the final user story.
- Prepare Live: Start while customer having requirement to live.
- Live: Start while project is lived successfully
- Upgrade: While the store owner build anoher site, such as update to another Magento Line Version. A new project is created to repplaced the current project.
- Cancel: While the Store Owner drop project and request refund.
- Stop: While the Store Owner decided stop using. They do not request refund because expired date!
Type
- Implement Project: Is implemented for the customer such as installation, fix bug, customize...
- Contribution Project: Is contributed to Magesstore Core Prodcut. Is forked from project of Core Product.
- Internal Project: Is used to team internal operation such as resource storing, or tools installation.
Gitlab File Structure of Implement Project
Name | Type | Required ? | Description |
---|---|---|---|
<Repository Root Directory> |
Root Directory | Thư mục gốc của project trên gitlab hoặc khi clone về, những thư mục được khai báo ở phần bên dưới có đường dẫn tương đối tính từ thư mục này | |
Source/server/ | Directory | Có | Thư mục chứa code Magento của bộ sản phẩm POS |
Source/client/ | Directory | Có | Thư mục chưa code React chưa được build của bộ sản phẩm POS |
Environment/ | Directory | Không | Thư mục chứa các file cấu hình về môi trường để triển khai |
.gitignore | File | Không | File cấu hình của git |
.gitlab-ci.yml | File | Có | File cấu hình chạy các job tự động của dự án, hiện tại đang áp dụng cho việc chạy Coding Standard |
.gitlab-runner/ | Directory | Có | Thư mục chứa các script phục vụ cho việc chạy Coding Standard (bao gồm tất cả các file trong thư mục này). |
.gitlab/issue_templates/ | Directory | Có | Thư mục chứa các file template cho Issue trong Project |
.gitlab/issue_templates/bug_report.md | File | Có | Issue Template cho Report Bug |
.gitlab/issue_templates/installation.md | File | Có | Issue Template cho Install POS |
.gitlab/issue_templates/user_story.md | File | Có | Issue Template cho User Story |
Activity
Create new
Using this guide while a customer want to create Project Profile. Example: First time buy Magestore Product/Service or Update their Magento System
Prerequisite: Make sure you are a Project Manager in your accessing right of My Magestore
Notice: Never create project from GitLab
- Step 1: If you want to create Project from Sale Order, go to My Magestore > Sales > Order > Favourite: Wait for Project and Open an Sale Order
Or you can click directly to the link of Order Notification in #project-manager Slack channels
- Step 2: On an Order, point to Project Field, and choose Create & Edit or choose one.
- Step 3: On the Project, fill required information such as Project Name, Team, Project Manager, Account Manager, Product Lines and Appprover Customer to help you search important information better.
Notice: The Project Name is the domain name of the customer's site. The Account Manager is name of Business Consultant (Sales). Appprover Customer is the customer who has the rights to Accept the US to calculate our Income/Revenue.
-
Step 4: Go to GitLab and find with Project Name to make sure that you you have synchhronized Project on GitLab
-
Step 5: Update link of Project GitLab to the GitLab URL of a Project on My Magestore
Checkling a right creating Project Profile
Gitlab Project Settings
-
Create "README.md" file
-
Create develop branch
-
Default branch
From left menu go to Project > Settings > Repository > Default branch
-
Protected branches
In the same screen as above step scroll down to "Protected branches" section
-
Protected Tags
From same screen with step above, scroll down to "Protected Tags" section
Planning Stage
- Step 1: Go to My Magestore > Project and Open one
- Step 2: Change to Stage Logs
- Step 3: Click Edit and Input some Stages with the Planning Start Date
Find a Project Profile
Cancel a Project Profile
Using this guide while a customer want to drop a project. Example: Refund. Notice: The cancel Project still will lost the income.
Archive a Project Profile
Using this guide while a customer want update their system with a new Project. Example: Update MAgento Version. Notice: The archived Project still has income
Find must-tracking Stage Project Profile
Using this guide if you want to find which project that you forget to plan the stage.
-
Step 1: Go to My Magestore > Project > Configuration > Go Live project. The most project which must be tracked will be shown first.
-
Step 2: Could filter detail Project by choose has never planned or has never gone live.
-
Step 3: Open a Project to Edit.
Change Team Owner
Connect Project to Slack Channel
-
Step 1: Go to the Slack Channel and choose type /mage connect
-
Step 2: Find and select the Slack Channel name
-
Step 3: Click to Connect button
Send email to Customer from Project Proile
-
Step 1: Go to My Magestore > Project. Find to your Project
-
Step 2: Scroll down then click to Send Message. Type the email content then Click Send
Tips: You can click the Full Composer at the right bottom corner to write a rich format content.
Tips: If lacking of contract point to receive email, you need to add follower, then re-send again
Send email by Template to Customer from Project Proile
-
Step 1: Go to My Magestore > Project. Find to your Project
-
Step 2: Scroll down then click to Send Message, then click the Full Composer button at the right bottom corner to write a rich format content.
-
Step 3: Choose a template from Use Template dropdown, then click Send
-
Step 4: Check that email has been sent by see the list of success.
Tips: If lacking of contract point to receive email, you need to add follower, then re-send again
Add follower to receive email from Project Proile
-
Step 1: Go to My Magestore > Project. Find to your Project
-
Step 3: Search in Recipients by email or name of contract point, then click to Add Followers
Tips: If you can not found email or name of contract point, you should Add Contract Point to Customer by this guide
Create email template to Customer in Project Proile
Contact to System Aministrator to create and edit template
Standardize GitLab
Standardize GitLab with new Project
This is used to struture file and git organization for all Implement Project.
- Step 1 Get the latest POS package according to Product Line
- Step 2 Checkout branch
develop
to local - Step 3 Unzip POS package in Source folder
- Step 4 Implement Coding Standard on
develop
branch - Step 5 Download latest version of Magestore Deli Releases Module to your desire format
- Step 6 Commit and Push to
develop
branch - Step 7 Config default branch
- Step 8 config protected branch
- Step 9 Config protected tag
Checklist:
Standardize GitLab with old Project
This is used to struture file and git organization for old Implement Project.
- Step 1 Create an Issue with Standardize Git and assign to this by yourselves
- Step 2 Create a new branch named
standardize-git
fromdevelop
branch - Step 3 Checkout
standardize-git
branch to local - Step 4 Download source code from UAT site at folder
<magento_root>/app/code/Magestore
then move to equivalent folder on local - Step 4 Migrate code download to current code on
standard-git
branch then commit with message sync code from customer UAT. - Step 5 Implement Coding Standard on
standardize-git
branch - Step 6 Download latest version of Magestore Deli Releases Module to your desire format
- Step 7 Commit and Push to
standardize-git
branch - Step 8 Create Merge Request from
standardize-git
branch todevelop
branch. Assign name then Merge. - Step 9 Config default branch
- Step 10 config protected branch
- Step 11 Config protected tag
Checklist:
Create Implement Project Wiki Home from template
Gitlab Project Wiki Home is description some most important information of a project. Wiki file of each project is stored at:
https://gitlab.com/<team_name>/<project_name>/-/wikis/
Copy this wiki home templates to your implement project wiki home page
Apply Coding Standard on Implement Project
-
Step 1 Clone the Repo that need to implement Coding Standard on local.
-
Step 2 Checkout the branch that need to implement Coding Standard (usually is
master
branch) -
Step 3 Access Magestore Standard Code Package to download the latest version
-
Step 4 Unzip the above downloaded package and copy file
.gitlab-ci.yml
and folder.gitlab-runner
to root forlder of project -
Step 5 Find in file
.gitlab-ci.yml
the keyworldyour-group-runner-tag
and chante to sửa thànhmagestore-noodle-gitlab-runner
as below screen -
Step 6 Create file
<repo_root_directory>/<server_dir>/app/tests/static/Webpos/Test/Php/_files/phpcpd/blacklist/magestore.txt
with the content:app/code/Magestore app/tests/Magestore
-
Step 7. Commit files and folders with message:
Implement Coding Standard
.gitlab-ci.yml
.gitlab-runner
<repo_root_directory>/<server_dir>/app/tests/static/Webpos/Test/Php/_files/phpcpd/blacklist/magestore.txt
-
Step 8 Push to the branch which was checked out at step 2
-
Step 9 Valid the Pipeline of Project by accessing:
https://gitlab.com/noodle_team/<project_name>/pipelines
- Where
<project_name>
là tên project tương ứng.
- Where
-
Step 10 All jobs must be green. If you have any failed job, call support.
Manage the WebHook on GitLab
Purpose: We need synchronize information from GitLab to MyMagestore. Some time we need to adđ some webhook manually
- Step 1: Open Gitab > Project > Setttings > Webhooks
- Step 2: Add three below WebHooks:
URL = https://my.magestore.com/release Triger = Tag push events SSL Verification = Enable SSL verification
URL = https://my.magestore.com/message_creator Triger = Comments SSL Verification = Enable SSL verification
URL = https://my.magestore.com/task_update Triger = Issues events SSL Verification = Enable SSL verification
Define Customer
Define Customer of Project
-
Step 1: Go to My Magestore > Project(https://my.magestore.com/web#action=131&model=project.project) and Open one
-
Step 2: Fill the Customer drop down by a Company
Notice: The Customer must a Company
Define Approver Customer
Approver Customer is a person have resonbility to approve project acceptance request.
- Step 1: Go to My Magestore > Project and Open one
- Step 2: Fill the Approver Customer drop down by a Contact
Notice: The Approver must a Contact. And the Contact must belong to a Company on the Customer dropdown
Connect Approver Customer Contact to Slack Support
Approver Customer is a person have resonbility to approve project acceptance request. You must define approver customer first
-
Step 1: Open the chat windown of the Approver on Slack, choose View Profiles
-
Step 3: Go to My Magestore > Project and Open one
-
Step 4: Click to open Approver Customer
-
Step 5: Fill the Slack ID field by the Member ID coppied from Step 1 to Step 2
Project Stage
List All Project Stage
Here is Project Stage
Update Project Stage
- Step 1: List all Project Stage
- Step 2: Click
Name
to open Slack of Project
- Step 3: On Slack channel, type
/mage relationship
- Step 4: Click
Evaluate
- Step 5: Choose the
Stage
withDescription
thenSubmit
Project Relationship
List All Project Relationship
Here is all Project Relationship
Update Project Relationship
- Step 1: List all Project Relationship
- Step 2: Click
Name
to open Slack of Project
- Step 3: On Slack channel, type
/mage relationship
- Step 4: Click
Evaluate
- Step 5: Choose the
Reltionship
withDescription
thenSubmit
No Comments