Developer Headstart¶
Overview¶
This document outlines the process and guidelines for developers to contribute to this project.
The handbook is a centralized resource written by the internal team to share knowledge, best practices, and tools to make development easier.
Setting up a project and playing roles in a dynamic environment can be complex, with many components requiring configuration to work together.
Development process is a process to build/develop within the data project in the overall structure of the team.
- Python headstart: https://devguide.python.org/getting-started/
Concepts¶
Development process
-
Follow Prerequisites instruction to set up tools, language
-
Follow [Introduction] > [SAD] > [Changelog] > [TODO] of the project
-
Follow Git Strategy
Tools¶
-
GitHub (2FA) with user account
-
Google Cloud Platform
-
Python version
3.9.x -
MySQL WorkBench - Client adapter
-
Git
Infra:
- Terraform
IDE¶
For specific IDE
- Config for space element
Documents¶
The list of documentations that developers required to read through:
-
Read README with overall project context
-
The project detail implement ideas.
-
The project architecture (SAD, Flows, ...).
-
The document from Cloud Provider, currently is
Google Cloud Platform -
The connector of database backend, currently is
MySQL. -
The use cases of service account in the project
-
Development CI/CD process
-
The Python way: https://docs.python.org/3/using/windows.html
-
Python Setup YAML: https://pyyaml.org/wiki/PyYAMLDocumentation
Acount¶
-
Cloud Account
-
Email Account
Shell¶
Configuiration¶
Config for .bashrc
export PROJECT_ID=
export PROJECT_REGION=
echo "PROJECT_ID=$PROJECT_ID" >> ~/.bashrc
echo "PROJECT_REGION=$PROJECT_REGION" >> ~/.bashrc
echo "LOCATION=$PROJECT_REGION" >> ~/.bashrc
Configuration¶
-
Configuration for Ini files
-
Connect to Cloud Resources
-
Establish the connection and testing
Deployment¶
Deployments using Google Cloud Run
Note¶
[1] Config .gcloudignore https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore
[1] Clone from master về [2] Checkout -b ... [3] Khởi tạo python -m venv venv [4] Activate source venv/Scripts/activate ---- Git/Bash (trong máy) [5] Dependencies python -m pip install -r requirement.txt -- lafm tuong tự cho dev [6] pre-commit install [7] User working for compoent [8] Bỏ vào ... [9] ruff . [10] Push -> Review
- Have you documented all the changes in your PR? NOTE If your PR contains only changes to contrib directory (community contributed Expectations), please skip this step.
Please group in the following order: [FEATURE], [BUGFIX], [DOCS], [MAINTENANCE]
You can see the Newer Changelog here:
Set up dependencies¶
-
Communication. Pick one: Slack | Skype | Zalo | etc..
-
Budget
-
Technical Decisions
-
Version Control: Github
-
Language | Framework
-
Database Structure
-
Cloud providers: AWS | Google Cloud.
-
Frontend: React
-
Mobile: Flutter
-
Official Documents for Project. Pick: Confluence
-
Colloborate:
-
Figma
-
Spreadsheets
-
Store at: Google Drive [Spreadsheets], [Diagrams]
Flow¶
Defination of Done¶
This space introduction for componment in the market
-
Time to deliver data:
-
Self redirect time to handle the output
-
Make sure you have calculated: (a) Time to learn (b) Time to solution © Time to code
-
DOD data (Defination of Done): pass test internal
-
Following construction of project
-
Focus on result
-
Repeat loop: change/test/update until the error appear
Reference¶
https://docs.greatexpectations.io/docs/contributing/contributing_checklist
https://google.github.io/styleguide/pyguide.html