├── .github
└── ISSUE_TEMPLATE
│ └── feature_request.md
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Onboarding
├── Junior
│ ├── Backend Developer.md
│ ├── DevOps Developer.md
│ ├── Frontend Developer.md
│ └── Mobile Developer.md
├── Regular
│ ├── Backend Developer.md
│ ├── DevOps Developer.md
│ ├── Frontend Developer.md
│ └── Mobile Developer.md
└── Senior
│ ├── Backend Developer.md
│ ├── DevOps Developer.md
│ ├── Frontend Developer.md
│ └── Mobile Developer.md
├── README.md
├── Technical Guide
├── Junior to Regular
│ ├── Backend Developer.md
│ ├── DevOps Developer.md
│ ├── Frontend Developer.md
│ └── Mobile Developer.md
└── Regular to Senior
│ ├── Backend Developer.md
│ ├── DevOps Developer.md
│ ├── Frontend Developer.md
│ └── Mobile Developer.md
├── Technical Stack
├── Backend Developer.md
├── Backend Developer
│ ├── 3rd Party.md
│ ├── Classes Enhancement.md
│ ├── Code Analysis.md
│ ├── Company best practices.md
│ ├── Data Formats.md
│ ├── Databases.md
│ ├── Date & Time.md
│ ├── Development Tools.md
│ ├── Documenting.md
│ ├── Javascript.md
│ ├── Python.md
│ └── Testing.md
├── DevOps Developer.md
├── DevOps Developer
│ ├── Application Servers.md
│ ├── CDN.md
│ ├── Company best practices.md
│ ├── Containerization Services.md
│ ├── Continuous Integration.md
│ ├── DNS.md
│ ├── Databases.md
│ ├── Docker Registry.md
│ ├── Generic AWS Services.md
│ ├── IaC.md
│ ├── Message Brokers.md
│ ├── Monitoring.md
│ ├── Storage.md
│ ├── Task Queues.md
│ └── VPS Services.md
├── Frontend Developer.md
├── Frontend Developer
│ ├── Animations.md
│ ├── Application state management.md
│ ├── Apptension React Boilerplate.md
│ ├── Audio and Video.md
│ ├── Backend & DevOps.md
│ ├── Browsers.md
│ ├── Common Application Modules.md
│ ├── Company practices.md
│ ├── Date & Time.md
│ ├── Development Tools.md
│ ├── Fonts.md
│ ├── Forms.md
│ ├── Functional programming.md
│ ├── HTTP.md
│ ├── Internationalization.md
│ ├── Languages.md
│ ├── Misc.md
│ ├── Monitoring.md
│ ├── Performance.md
│ ├── React.md
│ ├── Routing.md
│ ├── SEO.md
│ ├── SSR & Prerendering.md
│ ├── Styling.md
│ ├── Templating engines.md
│ ├── Testing.md
│ ├── Tools.md
│ └── Visualizations.md
├── Mobile Developer.md
└── Mobile Developer
│ ├── Animations.md
│ ├── Application state management.md
│ ├── CI
│ └── CD.md
│ ├── Common Application Modules.md
│ ├── Company best practices.md
│ ├── Components.md
│ ├── Crash reporting
│ └── Monitoring.md
│ ├── Date & Time.md
│ ├── Development tools.md
│ ├── HTTP.md
│ ├── Internationalization.md
│ ├── Navigation.md
│ ├── Performance.md
│ ├── React-native.md
│ ├── React.md
│ ├── Services.md
│ ├── Testing.md
│ ├── Tools.md
│ └── Versioning.md
└── images
├── course-banner.png
└── dev-handbook-schema.png
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: pziemkowski
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Additional context**
17 | Add any other context or screenshots about the feature request here.
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at poznan@apptension.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | We are very open to contributions to extend or change the requirements based on your gut and experience.
2 | To contribute you can use a pull request which will be later validated by our technical team and added to the main docs.
3 |
4 | If you will spot any issues please add them in the Issues section.
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Flairs.ai
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Onboarding/Junior/DevOps Developer.md:
--------------------------------------------------------------------------------
1 | DevOps Developer
2 | ================
3 |
4 | Company best practices
5 | ----------------------
6 |
7 | ### [Git](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#git)
8 |
9 | * [ ] You create pull requests with proper name and description [:books:](https://medium.com/@hugooodias/the-anatomy-of-a-perfect-pull-request-567382bb6067)
10 | * [ ] You squash merge your pull requests [:books:](https://blog.pairworking.com/why-you-should-care-about-squash-and-merge-in-git-675856bf66b0)
11 | * [ ] You name your commits properly [:books:](https://chris.beams.io/posts/git-commit/)
12 |
13 | ### [Communication](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#communication)
14 |
15 | #### [Slack](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#slack)
16 |
17 | * [ ] You use Slack statuses in line with company policy (remote working, vacationing, in a meeting, etc)
18 |
19 | * * *
20 |
21 | Contribution
22 | ------------
23 |
24 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
25 |
26 | If you will spot any issues please add them in the **Issues** section.
27 |
28 | Credits
29 | -------
30 |
31 | This page is maintained by [Apptension](https://apptension.com) team.
32 |
33 | You can see more of our work here: [Apptension portfolio](https://www.apptension.com/portfolio).
34 |
35 | License
36 | -------
37 |
38 | 
39 |
40 | © 2023 Apptension Sp. z o.o.
41 |
42 | Built and maintained by [Apptension](https://apptension.com).
43 |
44 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
45 |
46 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
47 |
48 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
49 |
--------------------------------------------------------------------------------
/Technical Guide/Junior to Regular/DevOps Developer.md:
--------------------------------------------------------------------------------
1 | DevOps Developer
2 | ================
3 |
4 | Company best practices
5 | ----------------------
6 |
7 | ### [Git](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#git)
8 |
9 | * [ ] You create pull requests with proper name and description [:books:](https://medium.com/@hugooodias/the-anatomy-of-a-perfect-pull-request-567382bb6067)
10 | * [ ] You squash merge your pull requests [:books:](https://blog.pairworking.com/why-you-should-care-about-squash-and-merge-in-git-675856bf66b0)
11 | * [ ] You name your commits properly [:books:](https://chris.beams.io/posts/git-commit/)
12 |
13 | #### [GitHub](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#git-hub)
14 |
15 | * [ ] You know how to create and reference issues
16 | * [ ] You know how to verify when a build check failed
17 |
18 | ### [Communication](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#communication)
19 |
20 | #### [Slack](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#slack)
21 |
22 | * [ ] You use Slack statuses in line with company policy (remote working, vacationing, in a meeting, etc)
23 | * [ ] You know how to create groups and channels
24 |
25 | #### [Small Improvements](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#small-improvements)
26 |
27 | * [ ] You know how to give praise and add talk topics to a 1:1 meeting
28 |
29 | #### [Email](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#email)
30 |
31 | * [ ] You can configure local email client
32 |
33 | * * *
34 |
35 | Contribution
36 | ------------
37 |
38 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
39 |
40 | If you will spot any issues please add them in the **Issues** section.
41 |
42 | Credits
43 | -------
44 |
45 | This page is maintained by [Apptension](https://apptension.com) team.
46 |
47 | You can see more of our work here: [Apptension portfolio](https://www.apptension.com/portfolio).
48 |
49 | License
50 | -------
51 |
52 | 
53 |
54 | © 2023 Apptension Sp. z o.o.
55 |
56 | Built and maintained by [Apptension](https://apptension.com).
57 |
58 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
59 |
60 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
61 |
62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
63 |
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer.md:
--------------------------------------------------------------------------------
1 | Backend Developer
2 | -----------------
3 |
4 | ### Browse by technical topic
5 |
6 | * [Company best practices](/Technical%20Stack/Backend%20Developer/Company%20best%20practices.md)
7 | * [Python](/Technical%20Stack/Backend%20Developer/Python.md)
8 | * [Testing](/Technical%20Stack/Backend%20Developer/Testing.md)
9 | * [Date & Time](/Technical%20Stack/Backend%20Developer/Date%20&%20Time.md)
10 | * [Databases](/Technical%20Stack/Backend%20Developer/Databases.md)
11 | * [Javascript](/Technical%20Stack/Backend%20Developer/Javascript.md)
12 | * [Data Formats](/Technical%20Stack/Backend%20Developer/Data%20Formats.md)
13 | * [3rd Party](/Technical%20Stack/Backend%20Developer/3rd%20Party.md)
14 | * [Documenting](/Technical%20Stack/Backend%20Developer/Documenting.md)
15 | * [Development Tools](/Technical%20Stack/Backend%20Developer/Development%20Tools.md)
16 | * [Classes Enhancement](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md)
17 | * [Code Analysis](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md)
18 |
19 | * * *
20 |
21 | Contribution
22 | ------------
23 |
24 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
25 |
26 | If you will spot any issues please add them in the **Issues** section.
27 |
28 | Credits
29 | -------
30 |
31 | This page is maintained by [Apptension](https://apptension.com) team.
32 |
33 | You can see more of our work here: [Apptension portfolio](https://www.apptension.com/portfolio).
34 |
35 | License
36 | -------
37 |
38 | 
39 |
40 | © 2023 Apptension Sp. z o.o.
41 |
42 | Built and maintained by [Apptension](https://apptension.com).
43 |
44 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
45 |
46 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
47 |
48 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
49 |
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/3rd Party.md:
--------------------------------------------------------------------------------
1 | 3rd Party
2 | =========
3 |
4 | [Payment Services](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#payment-services)
5 | ------------------------------------------------------------------------------------------
6 |
7 | ### [Stripe](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#stripe)
8 |
9 | #### [Python](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#python)
10 |
11 | * [ ] You can create a payment using django-stripe-payments
12 | * [ ] You know how to do a refund
13 |
14 | [Authentication Services](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#authentication-services)
15 | --------------------------------------------------------------------------------------------------------
16 |
17 | ### [OAuth](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#oauth)
18 |
19 | #### [Auth0](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#auth0)
20 |
21 | * [ ] You know how to activate a provider
22 | * [ ] You know how to upload custom templates
23 |
24 | #### [You know how to authorize a user with one of the social accounts](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#you-know-how-to-authorize-a-user-with-one-of-the-social-accounts)
25 |
26 | * [ ] django-oauth-toolkit
27 | * [ ] python-social-auth
28 | * [ ] oauthlib
29 |
30 | ### [JWT](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#jwt)
31 |
32 | * [ ] You how used at least one library to work with JWT
33 | * [ ] You can create JWT with custom payload
34 |
35 | #### [JWT Libraries](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#jwt-libraries)
36 |
37 | * [ ] pyjwt
38 | * [ ] python-jose
39 | * [ ] python-jwt
40 |
41 | [Contentful](/Technical%20Stack/Backend%20Developer/3rd%20Party.md#contentful)
42 | ------------------------------------------------------------------------------
43 |
44 | * [ ] You can manage webhooks
45 | * [ ] You can upload models from CLI
46 |
47 | * * *
48 |
49 | Contribution
50 | ------------
51 |
52 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
53 |
54 | If you will spot any issues please add them in the **Issues** section.
55 |
56 | Credits
57 | -------
58 |
59 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
60 |
61 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
62 |
63 | License
64 | -------
65 |
66 | 
67 |
68 | © 2020 Flairs Sp. z o.o.
69 |
70 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
71 |
72 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
73 |
74 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
75 |
76 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Classes Enhancement.md:
--------------------------------------------------------------------------------
1 | Classes Enhancement
2 | ===================
3 |
4 | [You enhance code with two or more libraries](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md#you-enhance-code-with-two-or-more-libraries)
5 | ----------------------------------------------------------------------------------------------------------------------------------------------------------
6 |
7 | ### [dataclasses](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md#dataclasses)
8 |
9 | * [ ] dataclasses - (Python standard library) Data classes.
10 |
11 | ### [attrs](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md#attrs)
12 |
13 | * [ ] attrs - Replacement for __init__, __eq__, __repr__, etc. boilerplate in class definitions.
14 |
15 | ### [bidict](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md#bidict)
16 |
17 | * [ ] bidict - Efficient, Pythonic bidirectional map data structures and related functionality..
18 |
19 | ### [Box](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md#box)
20 |
21 | * [ ] Box - Python dictionaries with advanced dot notation access.
22 |
23 | ### [DottedDict](/Technical%20Stack/Backend%20Developer/Classes%20Enhancement.md#dotted-dict)
24 |
25 | * [ ] DottedDict - A library that provides a method of accessing lists and dicts with a dotted path notation.
26 |
27 | * * *
28 |
29 | Contribution
30 | ------------
31 |
32 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
33 |
34 | If you will spot any issues please add them in the **Issues** section.
35 |
36 | Credits
37 | -------
38 |
39 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
40 |
41 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
42 |
43 | License
44 | -------
45 |
46 | 
47 |
48 | © 2020 Flairs Sp. z o.o.
49 |
50 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
51 |
52 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
53 |
54 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
55 |
56 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Code Analysis.md:
--------------------------------------------------------------------------------
1 | Code Analysis
2 | =============
3 |
4 | [Profilers](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#profilers)
5 | --------------------------------------------------------------------------------
6 |
7 | ### [Google Cloud Profiler](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#google-cloud-profiler)
8 |
9 | * [ ] You are able to read flame graph
10 |
11 | ### [cProfiler](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#c-profiler)
12 |
13 | * [ ] You know how to read results table, including cumulative time
14 |
15 | [Code Linters](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#code-linters)
16 | --------------------------------------------------------------------------------------
17 |
18 | ### [flake8](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#flake8)
19 |
20 | * [ ] You know how to configure
21 |
22 | ### [pylint](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#pylint)
23 |
24 | * [ ] You know how to write custom rule
25 |
26 | [Code Formatters](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#code-formatters)
27 | --------------------------------------------------------------------------------------------
28 |
29 | ### [black](/Technical%20Stack/Backend%20Developer/Code%20Analysis.md#black)
30 |
31 | * [ ] You are able to adjust defaults
32 |
33 | * * *
34 |
35 | Contribution
36 | ------------
37 |
38 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
39 |
40 | If you will spot any issues please add them in the **Issues** section.
41 |
42 | Credits
43 | -------
44 |
45 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
46 |
47 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
48 |
49 | License
50 | -------
51 |
52 | 
53 |
54 | © 2020 Flairs Sp. z o.o.
55 |
56 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
57 |
58 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
59 |
60 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
61 |
62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Data Formats.md:
--------------------------------------------------------------------------------
1 | Data Formats
2 | ============
3 |
4 | * [ ] JSON
5 | * [ ] Yaml
6 | * [ ] CSV
7 | * [ ] uuid
8 |
9 | * * *
10 |
11 | Contribution
12 | ------------
13 |
14 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
15 |
16 | If you will spot any issues please add them in the **Issues** section.
17 |
18 | Credits
19 | -------
20 |
21 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
22 |
23 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
24 |
25 | License
26 | -------
27 |
28 | 
29 |
30 | © 2020 Flairs Sp. z o.o.
31 |
32 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
33 |
34 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
35 |
36 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
37 |
38 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Databases.md:
--------------------------------------------------------------------------------
1 | Databases
2 | =========
3 |
4 | [SQL](/Technical%20Stack/Backend%20Developer/Databases.md#sql)
5 | --------------------------------------------------------------
6 |
7 | ### [PostgreSQL](/Technical%20Stack/Backend%20Developer/Databases.md#postgre-sql)
8 |
9 | * [ ] You know how to create foreign keys
10 | * [ ] You know data types, including JSON
11 | * [ ] You know how to query data using JSON path
12 |
13 | [NoSQL](/Technical%20Stack/Backend%20Developer/Databases.md#no-sql)
14 | -------------------------------------------------------------------
15 |
16 | ### [Firebase Firestore](/Technical%20Stack/Backend%20Developer/Databases.md#firebase-firestore)
17 |
18 | * [ ] You know how to connect and create a collection
19 | * [ ] You can listen for changes using live data updates
20 |
21 | ### [Redis](/Technical%20Stack/Backend%20Developer/Databases.md#redis)
22 |
23 | * [ ] You know what data types are supported
24 |
25 | ### [ElasticSearch](/Technical%20Stack/Backend%20Developer/Databases.md#elastic-search)
26 |
27 | * [ ] You are able to define an index
28 | * [ ] You are able to query index
29 | * [ ] You know how to update an index
30 |
31 | ### [AWS DynamoDB](/Technical%20Stack/Backend%20Developer/Databases.md#aws-dynamo-db)
32 |
33 | * [ ] You know how to read from and write to a DynamoDB table
34 | * [ ] You know how to scan the table to search for an item and understand the performance cost of this operation
35 | * [ ] You know how to create a Global Secondary Index
36 |
37 | ### [MongoDB](/Technical%20Stack/Backend%20Developer/Databases.md#mongo-db)
38 |
39 | * [ ] You know how to structure documents
40 |
41 | * * *
42 |
43 | Contribution
44 | ------------
45 |
46 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
47 |
48 | If you will spot any issues please add them in the **Issues** section.
49 |
50 | Credits
51 | -------
52 |
53 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
54 |
55 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
56 |
57 | License
58 | -------
59 |
60 | 
61 |
62 | © 2020 Flairs Sp. z o.o.
63 |
64 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
65 |
66 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
67 |
68 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
69 |
70 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Date & Time.md:
--------------------------------------------------------------------------------
1 | Date & Time
2 | ===========
3 |
4 | [Python](/Technical%20Stack/Backend%20Developer/Date%20&%20Time.md#python)
5 | --------------------------------------------------------------------------
6 |
7 | ### [python-dateutil](/Technical%20Stack/Backend%20Developer/Date%20&%20Time.md#python-dateutil)
8 |
9 | * [ ] You are able to create relative datetime objects
10 |
11 | ### [pytz](/Technical%20Stack/Backend%20Developer/Date%20&%20Time.md#pytz)
12 |
13 | * [ ] You can convert timezones of datetime objects
14 |
15 | * * *
16 |
17 | Contribution
18 | ------------
19 |
20 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
21 |
22 | If you will spot any issues please add them in the **Issues** section.
23 |
24 | Credits
25 | -------
26 |
27 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
28 |
29 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
30 |
31 | License
32 | -------
33 |
34 | 
35 |
36 | © 2020 Flairs Sp. z o.o.
37 |
38 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
39 |
40 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
41 |
42 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
43 |
44 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Development Tools.md:
--------------------------------------------------------------------------------
1 | Development Tools
2 | =================
3 |
4 | [CLI](/Technical%20Stack/Backend%20Developer/Development%20Tools.md#cli)
5 | ------------------------------------------------------------------------
6 |
7 | * [ ] kube-shell
8 | * [ ] mycli
9 | * [ ] pgcli
10 | * [ ] iredis
11 | * [ ] litecli
12 | * [ ] saws
13 | * [ ] k9s
14 | * [ ] You used one of
15 |
16 | ### [httpie](/Technical%20Stack/Backend%20Developer/Development%20Tools.md#httpie)
17 |
18 | * [ ] You can create requests with JSON payload
19 |
20 | [Build Tools](/Technical%20Stack/Backend%20Developer/Development%20Tools.md#build-tools)
21 | ----------------------------------------------------------------------------------------
22 |
23 | * [ ] PlatformIO
24 | * [ ] Makefile
25 | * [ ] You used one of the tools in a project
26 |
27 | ### [pybuilder](/Technical%20Stack/Backend%20Developer/Development%20Tools.md#pybuilder)
28 |
29 | * [ ] SCons
30 |
31 | * * *
32 |
33 | Contribution
34 | ------------
35 |
36 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
37 |
38 | If you will spot any issues please add them in the **Issues** section.
39 |
40 | Credits
41 | -------
42 |
43 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
44 |
45 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
46 |
47 | License
48 | -------
49 |
50 | 
51 |
52 | © 2020 Flairs Sp. z o.o.
53 |
54 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
55 |
56 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
57 |
58 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
59 |
60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Documenting.md:
--------------------------------------------------------------------------------
1 | Documenting
2 | ===========
3 |
4 | [Swagger](/Technical%20Stack/Backend%20Developer/Documenting.md#swagger)
5 | ------------------------------------------------------------------------
6 |
7 | * [ ] You know how to annotate endpoints to describe it
8 |
9 | ### [drf-yasg](/Technical%20Stack/Backend%20Developer/Documenting.md#drf-yasg)
10 |
11 | * [ ] You know how to configure the view
12 |
13 | [Redoc](/Technical%20Stack/Backend%20Developer/Documenting.md#redoc)
14 | --------------------------------------------------------------------
15 |
16 | * [ ] You know how to initialize it
17 |
18 | * * *
19 |
20 | Contribution
21 | ------------
22 |
23 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
24 |
25 | If you will spot any issues please add them in the **Issues** section.
26 |
27 | Credits
28 | -------
29 |
30 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
31 |
32 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
33 |
34 | License
35 | -------
36 |
37 | 
38 |
39 | © 2020 Flairs Sp. z o.o.
40 |
41 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
42 |
43 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
44 |
45 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
46 |
47 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Javascript.md:
--------------------------------------------------------------------------------
1 | Javascript
2 | ==========
3 |
4 | [NodeJS](/Technical%20Stack/Backend%20Developer/Javascript.md#node-js)
5 | ----------------------------------------------------------------------
6 |
7 | ### [express](/Technical%20Stack/Backend%20Developer/Javascript.md#express)
8 |
9 | * [ ] You know how to create a json response
10 | * [ ] You know how to add a middleware
11 | * [ ] You know how to fetch/persist data in DB
12 |
13 | ### [mongoose](/Technical%20Stack/Backend%20Developer/Javascript.md#mongoose)
14 |
15 | * [ ] You know how to create Model using Schema
16 |
17 | * * *
18 |
19 | Contribution
20 | ------------
21 |
22 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
23 |
24 | If you will spot any issues please add them in the **Issues** section.
25 |
26 | Credits
27 | -------
28 |
29 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
30 |
31 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
32 |
33 | License
34 | -------
35 |
36 | 
37 |
38 | © 2020 Flairs Sp. z o.o.
39 |
40 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
41 |
42 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Backend Developer/Testing.md:
--------------------------------------------------------------------------------
1 | Testing
2 | =======
3 |
4 | [Python](/Technical%20Stack/Backend%20Developer/Testing.md#python)
5 | ------------------------------------------------------------------
6 |
7 | ### [pytest](/Technical%20Stack/Backend%20Developer/Testing.md#pytest)
8 |
9 | * [ ] Can setup a test case with multiple paths using fixtures
10 | * [ ] You are able to define custom fixtures
11 | * [ ] You know how to add plugins
12 | * [ ] You know fixture scopes
13 |
14 | ### [factory_boy](/Technical%20Stack/Backend%20Developer/Testing.md#factory_boy)
15 |
16 | * [ ] You know how to create a factory
17 | * [ ] You know how to use traits
18 | * [ ] You know how to create related factories
19 |
20 | ### [faker](/Technical%20Stack/Backend%20Developer/Testing.md#faker)
21 |
22 | * [ ] You know how to generate faked values using built-in providers
23 |
24 | ### [freezegun](/Technical%20Stack/Backend%20Developer/Testing.md#freezegun)
25 |
26 | * [ ] You know how to prepare test case with mocked datetime
27 |
28 | [Node.js](/Technical%20Stack/Backend%20Developer/Testing.md#node.js)
29 | --------------------------------------------------------------------
30 |
31 | ### [Jest](/Technical%20Stack/Backend%20Developer/Testing.md#jest)
32 |
33 | * [ ] You know how to configure a test env
34 | * [ ] You can describe a test using assertions
35 |
36 | [Performance Testing](/Technical%20Stack/Backend%20Developer/Testing.md#performance-testing)
37 | --------------------------------------------------------------------------------------------
38 |
39 | ### [Artillery.io](/Technical%20Stack/Backend%20Developer/Testing.md#artillery.io)
40 |
41 | * [ ] You can create scenarios
42 | * [ ] You know how to generate fake data
43 | * [ ] You know how to pass variables between phases
44 |
45 | * * *
46 |
47 | Contribution
48 | ------------
49 |
50 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
51 |
52 | If you will spot any issues please add them in the **Issues** section.
53 |
54 | Credits
55 | -------
56 |
57 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
58 |
59 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
60 |
61 | License
62 | -------
63 |
64 | 
65 |
66 | © 2020 Flairs Sp. z o.o.
67 |
68 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
69 |
70 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
71 |
72 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
73 |
74 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer.md:
--------------------------------------------------------------------------------
1 | DevOps Developer
2 | ----------------
3 |
4 | ### Browse by technical topic
5 |
6 | * [Company best practices](/Technical%20Stack/DevOps%20Developer/Company%20best%20practices.md)
7 | * [DNS](/Technical%20Stack/DevOps%20Developer/DNS.md)
8 | * [Databases](/Technical%20Stack/DevOps%20Developer/Databases.md)
9 | * [Containerization Services](/Technical%20Stack/DevOps%20Developer/Containerization%20Services.md)
10 | * [Application Servers](/Technical%20Stack/DevOps%20Developer/Application%20Servers.md)
11 | * [Task Queues](/Technical%20Stack/DevOps%20Developer/Task%20Queues.md)
12 | * [Message Brokers](/Technical%20Stack/DevOps%20Developer/Message%20Brokers.md)
13 | * [Generic AWS Services](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md)
14 | * [Storage](/Technical%20Stack/DevOps%20Developer/Storage.md)
15 | * [Continuous Integration](/Technical%20Stack/DevOps%20Developer/Continuous%20Integration.md)
16 | * [CDN](/Technical%20Stack/DevOps%20Developer/CDN.md)
17 | * [Docker Registry](/Technical%20Stack/DevOps%20Developer/Docker%20Registry.md)
18 | * [VPS Services](/Technical%20Stack/DevOps%20Developer/VPS%20Services.md)
19 | * [Monitoring](/Technical%20Stack/DevOps%20Developer/Monitoring.md)
20 | * [Infrastructure as Code](/Technical%20Stack/DevOps%20Developer/IaC.md)
21 |
22 | * * *
23 |
24 | Contribution
25 | ------------
26 |
27 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
28 |
29 | If you will spot any issues please add them in the **Issues** section.
30 |
31 | Credits
32 | -------
33 |
34 | This page is maintained by [Apptension](https://apptension.com) team.
35 |
36 | You can see more of our work here: [Apptension Portfolio](https://www.apptension.com/portfolio)
37 |
38 | License
39 | -------
40 |
41 | 
42 |
43 | © 2023 Apptension Sp. z o.o.
44 |
45 | Built and maintained by [Apptension](https://apptension.com).
46 |
47 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
48 |
49 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
50 |
51 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52 |
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Application Servers.md:
--------------------------------------------------------------------------------
1 | Application Servers
2 | ===================
3 |
4 | [Nginx](/Technical%20Stack/DevOps%20Developer/Application%20Servers.md#nginx)
5 | -----------------------------------------------------------------------------
6 |
7 | * [ ] You know configuration file syntax
8 | * [ ] You know how to serve static files
9 | * [ ] You know how to define a proxy pass to API server
10 |
11 | [WSGI](/Technical%20Stack/DevOps%20Developer/Application%20Servers.md#wsgi)
12 | ---------------------------------------------------------------------------
13 |
14 | * [ ] You know how to deploy a wsgi app (django, flask) with one of the application servers
15 | * [ ] You know wsgi configuration file syntax
16 |
17 | ### [uWSGI](/Technical%20Stack/DevOps%20Developer/Application%20Servers.md#u-wsgi)
18 |
19 | * [ ] You understand the key concepts of the library
20 | * [ ] You deployed at least one project using this implementation
21 |
22 | ### [Gunicorn](/Technical%20Stack/DevOps%20Developer/Application%20Servers.md#gunicorn)
23 |
24 | * [ ] You understand the key concepts of the library
25 | * [ ] You deployed at least one project using this implementation
26 |
27 | ### [bjoern](/Technical%20Stack/DevOps%20Developer/Application%20Servers.md#bjoern)
28 |
29 | * [ ] You understand the key concepts of the library
30 | * [ ] You deployed at least one project using this implementation
31 |
32 | * * *
33 |
34 | Contribution
35 | ------------
36 |
37 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
38 |
39 | If you will spot any issues please add them in the **Issues** section.
40 |
41 | Credits
42 | -------
43 |
44 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
45 |
46 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
47 |
48 | License
49 | -------
50 |
51 | 
52 |
53 | © 2020 Flairs Sp. z o.o.
54 |
55 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
56 |
57 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
58 |
59 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
60 |
61 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/CDN.md:
--------------------------------------------------------------------------------
1 | CDN
2 | ===
3 |
4 | [AWS CloudFront](/Technical%20Stack/DevOps%20Developer/CDN.md#aws-cloud-front)
5 | ------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to create a CloudFront distribution
8 | * [ ] You know how to add a behaviour pointing to an S3 website bucket
9 |
10 | [Netlify](/Technical%20Stack/DevOps%20Developer/CDN.md#netlify)
11 | ---------------------------------------------------------------
12 |
13 | * [ ] You know how to create an app
14 | * [ ] You know how to create a custom domain for an app
15 | * [ ] You know how to define environmental variables available during build step
16 |
17 | * * *
18 |
19 | Contribution
20 | ------------
21 |
22 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
23 |
24 | If you will spot any issues please add them in the **Issues** section.
25 |
26 | Credits
27 | -------
28 |
29 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
30 |
31 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
32 |
33 | License
34 | -------
35 |
36 | 
37 |
38 | © 2020 Flairs Sp. z o.o.
39 |
40 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
41 |
42 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Containerization Services.md:
--------------------------------------------------------------------------------
1 | Containerization Services
2 | =========================
3 |
4 | [AWS ECS](/Technical%20Stack/DevOps%20Developer/Containerization%20Services.md#aws-ecs)
5 | ---------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to create a task definition
8 | * [ ] You know how to execute a one off task that is killed after execution and doesn't get restarted
9 | * [ ] You know how to define a service
10 | * [ ] You know how to create a target group pointing to your ECS service and add it to an Application Load Balancer listener
11 |
12 | [Kubernetes](/Technical%20Stack/DevOps%20Developer/Containerization%20Services.md#kubernetes)
13 | ---------------------------------------------------------------------------------------------
14 |
15 | * [ ] You know how to define a deployment entity
16 |
17 | * * *
18 |
19 | Contribution
20 | ------------
21 |
22 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
23 |
24 | If you will spot any issues please add them in the **Issues** section.
25 |
26 | Credits
27 | -------
28 |
29 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
30 |
31 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
32 |
33 | License
34 | -------
35 |
36 | 
37 |
38 | © 2020 Flairs Sp. z o.o.
39 |
40 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
41 |
42 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Continuous Integration.md:
--------------------------------------------------------------------------------
1 | Continuous Integration
2 | ======================
3 |
4 | [Bitbucket Pipelines](/Technical%20Stack/DevOps%20Developer/Continuous%20Integration.md#bitbucket-pipelines)
5 | ------------------------------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to turn Bitbucket pipelines on in a repository
8 | * [ ] You know how to run a pipeline execution after a commit or a tag push
9 | * [ ] You know how to define environmental variables that will be available to a build script
10 |
11 | [Github Actions](/Technical%20Stack/DevOps%20Developer/Continuous%20Integration.md#github-actions)
12 | --------------------------------------------------------------------------------------------------
13 |
14 | * [ ] You know how to define a workflow
15 | * [ ] You know how to run a workflow execution after a commit or a tag push
16 | * [ ] You know how to define environmental variables that will be available to a build script
17 |
18 | [AWS CodePipeline](/Technical%20Stack/DevOps%20Developer/Continuous%20Integration.md#aws-code-pipeline)
19 | -------------------------------------------------------------------------------------------------------
20 |
21 | * [ ] You know how to create a CodePipeline
22 | * [ ] You know how to define a build step using CodeBuild
23 | * [ ] You know how to connect CodePipeline to an S3 source so the execution starts when a file changes
24 | * [ ] You know how to connect CodePipeline to a CodeCommit repository so the execution starts when branch or tag has been pushed
25 | * [ ] You know how to connect CodePipeline to a custom repository (Github, Bitbucket) so the execution starts when branch or tag has been pushed
26 | * [ ] You know how to define environmental variables that will be available to a build script
27 | * [ ] You know how to assign a custom IAM role to the build executor so it can access AWS resources
28 | * [ ] You know how to run a lambda function as a build step
29 |
30 | * * *
31 |
32 | Contribution
33 | ------------
34 |
35 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
36 |
37 | If you will spot any issues please add them in the **Issues** section.
38 |
39 | Credits
40 | -------
41 |
42 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
43 |
44 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
45 |
46 | License
47 | -------
48 |
49 | 
50 |
51 | © 2020 Flairs Sp. z o.o.
52 |
53 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
54 |
55 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
56 |
57 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
58 |
59 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/DNS.md:
--------------------------------------------------------------------------------
1 | DNS
2 | ===
3 |
4 | * [ ] You know what a CNAME record is and when to use it
5 | * [ ] You know what an A and AAAA records are and when to use them
6 | * [ ] You know what TXT records is and when to use it
7 | * [ ] You know how to register a new domain with a chosen DNR
8 | * [ ] You know how to switch NS from default ones set by DNR to another provider
9 | * [ ] You know what a MX record is and when to use it
10 |
11 | [DNS Services](/Technical%20Stack/DevOps%20Developer/DNS.md#dns-services)
12 | -------------------------------------------------------------------------
13 |
14 | ### [Route 53](/Technical%20Stack/DevOps%20Developer/DNS.md#route-53)
15 |
16 | * [ ] You know how to define a new hosted zone
17 | * [ ] You can create DNS records using AWS CLI
18 |
19 | ### [Cloudflare](/Technical%20Stack/DevOps%20Developer/DNS.md#cloudflare)
20 |
21 | * [ ] You know how to define a new DNS zone
22 | * [ ] You can create DNS records using Cloudflare API
23 |
24 | * * *
25 |
26 | Contribution
27 | ------------
28 |
29 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
30 |
31 | If you will spot any issues please add them in the **Issues** section.
32 |
33 | Credits
34 | -------
35 |
36 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
37 |
38 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
39 |
40 | License
41 | -------
42 |
43 | 
44 |
45 | © 2020 Flairs Sp. z o.o.
46 |
47 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
48 |
49 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
50 |
51 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
52 |
53 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Databases.md:
--------------------------------------------------------------------------------
1 | Databases
2 | =========
3 |
4 | [SQL](/Technical%20Stack/DevOps%20Developer/Databases.md#sql)
5 | -------------------------------------------------------------
6 |
7 | ### [AWS RDS](/Technical%20Stack/DevOps%20Developer/Databases.md#aws-rds)
8 |
9 | * [ ] You know how to instantiate a PostgreSQL database
10 | * [ ] You know how to instantiate a MySQL database
11 | * [ ] You know how to instantiate an AWS Aurora instance with chosen DB flavour
12 |
13 | [NoSQL](/Technical%20Stack/DevOps%20Developer/Databases.md#no-sql)
14 | ------------------------------------------------------------------
15 |
16 | ### [Redis](/Technical%20Stack/DevOps%20Developer/Databases.md#redis)
17 |
18 | #### [AWS ElastiCache](/Technical%20Stack/DevOps%20Developer/Databases.md#aws-elasti-cache)
19 |
20 | * [ ] You know how to create a Redis instance
21 | * [ ] You know how to connect to Redis instance from the application code
22 |
23 | ### [ElasticSearch](/Technical%20Stack/DevOps%20Developer/Databases.md#elastic-search)
24 |
25 | #### [AWS Elasticsearch Service](/Technical%20Stack/DevOps%20Developer/Databases.md#aws-elasticsearch-service)
26 |
27 | * [ ] You know how to create an ElasticSearch instance
28 | * [ ] You know how to connect to ElasticSearch from the application code
29 |
30 | ### [AWS DynamoDB](/Technical%20Stack/DevOps%20Developer/Databases.md#aws-dynamo-db)
31 |
32 | * [ ] You know how to manage dynamodb read/write throughput
33 | * [ ] You know how to configure pay per use model
34 |
35 | * * *
36 |
37 | Contribution
38 | ------------
39 |
40 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
41 |
42 | If you will spot any issues please add them in the **Issues** section.
43 |
44 | Credits
45 | -------
46 |
47 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
48 |
49 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
50 |
51 | License
52 | -------
53 |
54 | 
55 |
56 | © 2020 Flairs Sp. z o.o.
57 |
58 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
59 |
60 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
61 |
62 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
63 |
64 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Docker Registry.md:
--------------------------------------------------------------------------------
1 | Docker Registry
2 | ===============
3 |
4 | [AWS ECR](/Technical%20Stack/DevOps%20Developer/Docker%20Registry.md#aws-ecr)
5 | -----------------------------------------------------------------------------
6 |
7 | * [ ] You know how to create a registry
8 | * [ ] You know how to upload a Docker image to a registry
9 | * [ ] You know how to define an IAM policy of a registry to allow pull/push to a specific user or role
10 | * [ ] You know how to log into the ECR registry using aws-cli
11 |
12 | * * *
13 |
14 | Contribution
15 | ------------
16 |
17 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
18 |
19 | If you will spot any issues please add them in the **Issues** section.
20 |
21 | Credits
22 | -------
23 |
24 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
25 |
26 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
27 |
28 | License
29 | -------
30 |
31 | 
32 |
33 | © 2020 Flairs Sp. z o.o.
34 |
35 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
36 |
37 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
38 |
39 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
40 |
41 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Generic AWS Services.md:
--------------------------------------------------------------------------------
1 | Generic AWS Services
2 | ====================
3 |
4 | [VPC](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#vpc)
5 | ----------------------------------------------------------------------------
6 |
7 | * [ ] You know how to create a VPC
8 | * [ ] You understand the concept of Subnets and know how to create one
9 | * [ ] You understand the concept of Security Groups, know how to create one and how to define its rules
10 | * [ ] You know what a NAT Gateway is (and how much it costs)
11 | * [ ] You know what a VPC Endpoint is and how to define it
12 | * [ ] You know how to create a NAT Gateway
13 |
14 | [EC2](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#ec2)
15 | ----------------------------------------------------------------------------
16 |
17 | * [ ] You know how to create an EC2 instance
18 | * [ ] You know how to SSH into an EC2 instance using generated key pair
19 | * [ ] You know how to create an Application Load Balancer
20 | * [ ] You know how to attach a Security Group to an instance
21 |
22 | [IAM](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#iam)
23 | ----------------------------------------------------------------------------
24 |
25 | * [ ] You know how to create a new user
26 | * [ ] You know how to create a new role
27 | * [ ] You know how to create a policy documents and attach them to various IAM resources
28 | * [ ] You know how to configure a "switch role" method so the user from one account can log into another role from another account
29 |
30 | [KMS](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#kms)
31 | ----------------------------------------------------------------------------
32 |
33 | * [ ] You know how to create a KMS key and assign alias to it
34 |
35 | [SSM](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#ssm)
36 | ----------------------------------------------------------------------------
37 |
38 | * [ ] You know how to create an SSM parameter and encrypt it with a KMS key
39 | * [ ] You know how to use SSM parameter in Lambda function
40 |
41 | [AWS Client libraries](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#aws-client-libraries)
42 | --------------------------------------------------------------------------------------------------------------
43 |
44 | ### [aws-cli](/Technical%20Stack/DevOps%20Developer/Generic%20AWS%20Services.md#aws-cli)
45 |
46 | * [ ] You know how to create a local profile using acquired key id and secret to access AWS resources
47 |
48 | * * *
49 |
50 | Contribution
51 | ------------
52 |
53 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
54 |
55 | If you will spot any issues please add them in the **Issues** section.
56 |
57 | Credits
58 | -------
59 |
60 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
61 |
62 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
63 |
64 | License
65 | -------
66 |
67 | 
68 |
69 | © 2020 Flairs Sp. z o.o.
70 |
71 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
72 |
73 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
74 |
75 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
76 |
77 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/IaC.md:
--------------------------------------------------------------------------------
1 | Infrastructure as Code
2 | =============
3 |
4 | You should know how to employ at least one of the infrastructure as code software tools mentioned on this page.
5 |
6 | ### [CDK](/Technical%20Stack/Backend%20Developer/Code%20IaC.md#cdk)
7 | --------------------------------------------------------------------------------
8 |
9 | * [ ] You know how to create applications based on AWS CDK [:books:](https://docs.aws.amazon.com/cdk/v2/guide/home.html/)
10 |
11 | ### [Terraform](/Technical%20Stack/Backend%20Developer/Code%20IaC.md#terraform)
12 | --------------------------------------------------------------------------------------
13 |
14 | * [ ] You know how to create applications based on Terraform [:books:](https://developer.hashicorp.com/terraform/docs/)
15 |
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Message Brokers.md:
--------------------------------------------------------------------------------
1 | Message Brokers
2 | ===============
3 |
4 | [RabbitMQ](/Technical%20Stack/DevOps%20Developer/Message%20Brokers.md#rabbit-mq)
5 | --------------------------------------------------------------------------------
6 |
7 | * [ ] You understand what a virtual host is and how to create one
8 | * [ ] You can deploy RabbitMQ to AWS platform
9 | * [ ] You understand what a Routing Key is
10 | * [ ] You understand what an Exchange is and you can describe common types of exchanges (direct, topic, fanout)
11 | * [ ] You understand what a Channel is and how is it used in message flow
12 |
13 | [AWS SQS](/Technical%20Stack/DevOps%20Developer/Message%20Brokers.md#aws-sqs)
14 | -----------------------------------------------------------------------------
15 |
16 | * [ ] You know how to create an SQS queue
17 | * [ ] You can attach Lambda function trigger to a queue
18 | * [ ] You know how to use the concept of dead letter queues to repair broken messages
19 |
20 | [AWS EventBridge](/Technical%20Stack/DevOps%20Developer/Message%20Brokers.md#aws-event-bridge)
21 | ----------------------------------------------------------------------------------------------
22 |
23 | * [ ] You can create an EventBus
24 | * [ ] You can send custom events to an EventBus
25 | * [ ] You know how to trigger a Lambda function from an EventBus for a specific event source
26 |
27 | [AWS Kinesis](/Technical%20Stack/DevOps%20Developer/Message%20Brokers.md#aws-kinesis)
28 | -------------------------------------------------------------------------------------
29 |
30 | * [ ] You know what a Kinesis Stream is and can name some use cases
31 | * [ ] You know what a shard is in Kinesis Stream context
32 | * [ ] You know how to trigger a Lambda function from a Kinesis Stream
33 |
34 | * * *
35 |
36 | Contribution
37 | ------------
38 |
39 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
40 |
41 | If you will spot any issues please add them in the **Issues** section.
42 |
43 | Credits
44 | -------
45 |
46 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
47 |
48 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
49 |
50 | License
51 | -------
52 |
53 | 
54 |
55 | © 2020 Flairs Sp. z o.o.
56 |
57 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
58 |
59 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
60 |
61 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
62 |
63 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Monitoring.md:
--------------------------------------------------------------------------------
1 | Monitoring
2 | ==========
3 |
4 | * [ ] Work in progress
5 |
6 | [Sentry](/Technical%20Stack/DevOps%20Developer/Monitoring.md#sentry)
7 | --------------------------------------------------------------------
8 |
9 | * [ ] sentry-sdk
10 |
11 | [Logging](/Technical%20Stack/DevOps%20Developer/Monitoring.md#logging)
12 | ----------------------------------------------------------------------
13 |
14 | * [ ] django-fsm-log
15 |
16 | * * *
17 |
18 | Contribution
19 | ------------
20 |
21 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
22 |
23 | If you will spot any issues please add them in the **Issues** section.
24 |
25 | Credits
26 | -------
27 |
28 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
29 |
30 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
31 |
32 | License
33 | -------
34 |
35 | 
36 |
37 | © 2020 Flairs Sp. z o.o.
38 |
39 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
40 |
41 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
42 |
43 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
44 |
45 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Storage.md:
--------------------------------------------------------------------------------
1 | Storage
2 | =======
3 |
4 | [AWS S3](/Technical%20Stack/DevOps%20Developer/Storage.md#aws-s3)
5 | -----------------------------------------------------------------
6 |
7 | * [ ] You know how to create an S3 bucket
8 | * [ ] You know how to make a S3 bucket public
9 | * [ ] You know how to host a Single Page Application in S3
10 |
11 | * * *
12 |
13 | Contribution
14 | ------------
15 |
16 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
17 |
18 | If you will spot any issues please add them in the **Issues** section.
19 |
20 | Credits
21 | -------
22 |
23 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
24 |
25 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
26 |
27 | License
28 | -------
29 |
30 | 
31 |
32 | © 2020 Flairs Sp. z o.o.
33 |
34 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
35 |
36 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
37 |
38 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
39 |
40 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/Task Queues.md:
--------------------------------------------------------------------------------
1 | Task Queues
2 | ===========
3 |
4 | [Celery](/Technical%20Stack/DevOps%20Developer/Task%20Queues.md#celery)
5 | -----------------------------------------------------------------------
6 |
7 | * [ ] You can choose one of the message brokers and configure Celery to use it
8 | * [ ] You can deploy Celery workers to at least one platform of your choice
9 |
10 | * * *
11 |
12 | Contribution
13 | ------------
14 |
15 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
16 |
17 | If you will spot any issues please add them in the **Issues** section.
18 |
19 | Credits
20 | -------
21 |
22 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
23 |
24 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
25 |
26 | License
27 | -------
28 |
29 | 
30 |
31 | © 2020 Flairs Sp. z o.o.
32 |
33 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
34 |
35 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
36 |
37 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
38 |
39 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/DevOps Developer/VPS Services.md:
--------------------------------------------------------------------------------
1 | VPS Services
2 | ============
3 |
4 | [DigitalOcean](/Technical%20Stack/DevOps%20Developer/VPS%20Services.md#digital-ocean)
5 | -------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to create a droplet in chosen region
8 |
9 | [AWS EC2](/Technical%20Stack/DevOps%20Developer/VPS%20Services.md#aws-ec2)
10 | --------------------------------------------------------------------------
11 |
12 | * [ ] You know how to create an instance in a chosen region
13 |
14 | * * *
15 |
16 | Contribution
17 | ------------
18 |
19 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
20 |
21 | If you will spot any issues please add them in the **Issues** section.
22 |
23 | Credits
24 | -------
25 |
26 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
27 |
28 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
29 |
30 | License
31 | -------
32 |
33 | 
34 |
35 | © 2020 Flairs Sp. z o.o.
36 |
37 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
38 |
39 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
40 |
41 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
42 |
43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer.md:
--------------------------------------------------------------------------------
1 | Frontend Developer
2 | ------------------
3 |
4 |
5 |
6 | ### Browse by technical topic
7 |
8 | * [Company practices](/Technical%20Stack/Frontend%20Developer/Company%20practices.md)
9 | * [React](/Technical%20Stack/Frontend%20Developer/React.md)
10 | * [Application state management](/Technical%20Stack/Frontend%20Developer/Application%20state%20management.md)
11 | * [Apptension React Boilerplate](/Technical%20Stack/Frontend%20Developer/Apptension%20React%20Boilerplate.md)
12 | * [Styling](/Technical%20Stack/Frontend%20Developer/Styling.md)
13 | * [Date & Time](/Technical%20Stack/Frontend%20Developer/Date%20&%20Time.md)
14 | * [Routing](/Technical%20Stack/Frontend%20Developer/Routing.md)
15 | * [Visualizations](/Technical%20Stack/Frontend%20Developer/Visualizations.md)
16 | * [Animations](/Technical%20Stack/Frontend%20Developer/Animations.md)
17 | * [Internationalization](/Technical%20Stack/Frontend%20Developer/Internationalization.md)
18 | * [Audio and Video](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md)
19 | * [Languages](/Technical%20Stack/Frontend%20Developer/Languages.md)
20 | * [Misc](/Technical%20Stack/Frontend%20Developer/Misc.md)
21 | * [Development Tools](/Technical%20Stack/Frontend%20Developer/Development%20Tools.md)
22 | * [SSR & Prerendering](/Technical%20Stack/Frontend%20Developer/SSR%20&%20Prerendering.md)
23 | * [Functional programming](/Technical%20Stack/Frontend%20Developer/Functional%20programming.md)
24 | * [HTTP](/Technical%20Stack/Frontend%20Developer/HTTP.md)
25 | * [Templating engines](/Technical%20Stack/Frontend%20Developer/Templating%20engines.md)
26 | * [Fonts](/Technical%20Stack/Frontend%20Developer/Fonts.md)
27 | * [SEO](/Technical%20Stack/Frontend%20Developer/SEO.md)
28 | * [Monitoring](/Technical%20Stack/Frontend%20Developer/Monitoring.md)
29 | * [Forms](/Technical%20Stack/Frontend%20Developer/Forms.md)
30 | * [Testing](/Technical%20Stack/Frontend%20Developer/Testing.md)
31 | * [Performance](/Technical%20Stack/Frontend%20Developer/Performance.md)
32 | * [Common Application Modules](/Technical%20Stack/Frontend%20Developer/Common%20Application%20Modules.md)
33 | * [Backend & DevOps](/Technical%20Stack/Frontend%20Developer/Backend%20&%20DevOps.md)
34 | * [Tools](/Technical%20Stack/Frontend%20Developer/Tools.md)
35 | * [Browsers](/Technical%20Stack/Frontend%20Developer/Browsers.md)
36 |
37 | * * *
38 |
39 | Contribution
40 | ------------
41 |
42 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
43 |
44 | If you will spot any issues please add them in the **Issues** section.
45 |
46 | Credits
47 | -------
48 |
49 | This page is maintained by [Apptension](https://apptension.com) team.
50 |
51 | You can see more of our work here: [Apptension portfolio](https://www.apptension.com/portfolio).
52 |
53 | License
54 | -------
55 |
56 | 
57 |
58 | © 2023 Apptension Sp. z o.o.
59 |
60 | Built and maintained by [Apptension](https://apptension.com).
61 |
62 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
63 |
64 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
65 |
66 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
67 |
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Apptension React Boilerplate.md:
--------------------------------------------------------------------------------
1 | Apptension React Boilerplate
2 | ============================
3 |
4 | * [ ] You know how to initialize a project using Apptension React template of create-react-app
generator
5 | * [ ] You know how to run a linter
6 | * [ ] You know how to define a new Redux module (Reducer, Saga, Selector)
7 | * [ ] You know how to create a new route and its component
8 | * [ ] You understand the difference between src/routes
and src/shared/components
directories
9 | * [ ] You can use plop to generate modules and components
10 | * [ ] You know where translation files are stored
11 | * [ ] You know how to add a new locale to the app
12 | * [ ] You know how to extract translations using extract-intl
script
13 |
14 | * * *
15 |
16 | Contribution
17 | ------------
18 |
19 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
20 |
21 | If you will spot any issues please add them in the **Issues** section.
22 |
23 | Credits
24 | -------
25 |
26 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
27 |
28 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
29 |
30 | License
31 | -------
32 |
33 | 
34 |
35 | © 2020 Flairs Sp. z o.o.
36 |
37 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
38 |
39 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
40 |
41 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
42 |
43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Audio and Video.md:
--------------------------------------------------------------------------------
1 | Audio and Video
2 | ===============
3 |
4 | * [ ] You know how to use standard HTML Audio and Video tags
5 | * [ ] You know which formats and codecs should be used to support all modern browsers
6 |
7 | [Players](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md#players)
8 | ---------------------------------------------------------------------------------
9 |
10 | * [ ] You have used at least one video player libraries
11 |
12 | ### [react-player](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md#react-player)
13 |
14 | * [ ] You know how to style the player
15 |
16 | ### [jwplayer](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md#jwplayer)
17 |
18 | * [ ] You know how to implement the player in a React environment
19 | * [ ] You know how to style the player
20 | * [ ] You know how to configure the player to allow multiple quality levels
21 |
22 | [Streaming](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md#streaming)
23 | -------------------------------------------------------------------------------------
24 |
25 | ### [HLS](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md#hls)
26 |
27 | * [ ] You understand what HLS is, and are able to use it with a chosen player
28 |
29 | ### [MPEG Dash](/Technical%20Stack/Frontend%20Developer/Audio%20and%20Video.md#mpeg-dash)
30 |
31 | * [ ] You understand what MPEG Dash is, and are able to use it with a chosen player
32 |
33 | * * *
34 |
35 | Contribution
36 | ------------
37 |
38 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
39 |
40 | If you will spot any issues please add them in the **Issues** section.
41 |
42 | Credits
43 | -------
44 |
45 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
46 |
47 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
48 |
49 | License
50 | -------
51 |
52 | 
53 |
54 | © 2020 Flairs Sp. z o.o.
55 |
56 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
57 |
58 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
59 |
60 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
61 |
62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Browsers.md:
--------------------------------------------------------------------------------
1 | Browsers
2 | ========
3 |
4 | * [ ] You know what DOM is [:books:](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction)
5 | * [ ] You know what CSSOM is [:books:](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model)
6 |
7 | [Pixel pipeline](/Technical%20Stack/Frontend%20Developer/Browsers.md#pixel-pipeline)
8 | ------------------------------------------------------------------------------------
9 |
10 | [https://developers.google.com/web/fundamentals/performance/rendering](https://developers.google.com/web/fundamentals/performance/rendering)
11 |
12 | * [ ] You know what reflow step is and what it does
13 | * [ ] You know what paint step is and what it does
14 | * [ ] You know what composite step is and what it does
15 | * [ ] You know when some of the pixel pipeline are skipped and you can utilise this knowledge to optimize web page's performance
16 |
17 | * * *
18 |
19 | Contribution
20 | ------------
21 |
22 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
23 |
24 | If you will spot any issues please add them in the **Issues** section.
25 |
26 | Credits
27 | -------
28 |
29 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
30 |
31 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
32 |
33 | License
34 | -------
35 |
36 | 
37 |
38 | © 2020 Flairs Sp. z o.o.
39 |
40 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
41 |
42 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Company practices.md:
--------------------------------------------------------------------------------
1 | Company practices
2 | =================
3 |
4 | [Security](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#security)
5 | ----------------------------------------------------------------------------------------
6 |
7 | ### [Keeper Security](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#keeper-security)
8 |
9 | * [ ] You know how to share secret values with other employees. [:books:](https://docs.keeper.io/user-guides/)
10 |
11 | ### [aws-vault](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#aws-vault)
12 |
13 | * [ ] You know how to use the command line to switch between users
14 |
15 | ### [Onetimesecret](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#onetimesecret)
16 |
17 | * [ ] You know how to share secret values externally [:books:](https://support.painchek.com/hc/en-us/articles/360038504674-How-to-use-One-Time-Secret)
18 |
19 | [Git](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#git)
20 | ------------------------------------------------------------------------------
21 |
22 | * [ ] You create pull requests with proper name and description [:books:](https://medium.com/@hugooodias/the-anatomy-of-a-perfect-pull-request-567382bb6067)
23 | * [ ] You squash merge your pull requests [:books:](https://blog.pairworking.com/why-you-should-care-about-squash-and-merge-in-git-675856bf66b0)
24 | * [ ] You understand the pros and cons of git rebase vs git merge [:books:](https://www.atlassian.com/git/tutorials/merging-vs-rebasing)
25 | * [ ] You name your commits properly [:books:](https://chris.beams.io/posts/git-commit/)
26 | * [ ] You review PRs carefully and leave your comments [:books:](https://www.pullrequest.com/blog/what-belongs-in-an-effective-code-review-checklist/)
27 | * [ ] You know how to configure rules in a repository for merging to specific branches (master, develop)
28 | * [ ] You add proper label in pull requests
29 | * [ ] You create your branches under the proper folder (feature, fix, hotfix)
30 |
31 | ### [GitHub](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#git-hub)
32 |
33 | * [ ] You know how to create and reference issues
34 | * [ ] You know how to verify when a build check failed
35 | * [ ] You know how to create GitHub Wiki pages
36 |
37 | ### [Bitbucket](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#bitbucket)
38 |
39 | * [ ] You know how to verify when a build check failed
40 | * [ ] You know how to reference a Jira ticket in your commit
41 |
42 | [Communication](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#communication)
43 | --------------------------------------------------------------------------------------------------
44 |
45 | ### [Slack](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#slack)
46 |
47 | * [ ] You use Slack statuses in line with company policy (remote working, vacationing, in a meeting, etc)
48 | * [ ] You know how to create groups and channels
49 |
50 | ### [Confluence](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#confluence)
51 |
52 | * [ ] You know how to create Confluence pages
53 |
54 | ### [Small Improvements](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#small-improvements)
55 |
56 | * [ ] You know how to give praise and add talk topics to a 1:1 meeting
57 | * [ ] You know how to create goals and mark them as complete
58 |
59 | ### [Jira](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#jira)
60 |
61 | * [ ] You know how to create tickets and write comments
62 |
63 | ### [Email](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md#email)
64 |
65 | * [ ] You can configure local email client
66 | * [ ] You can configure email signatures
67 |
68 | * * *
69 |
70 | Contribution
71 | ------------
72 |
73 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
74 |
75 | If you will spot any issues please add them in the **Issues** section.
76 |
77 | Credits
78 | -------
79 |
80 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
81 |
82 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
83 |
84 | License
85 | -------
86 |
87 | 
88 |
89 | © 2020 Flairs Sp. z o.o.
90 |
91 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
92 |
93 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
94 |
95 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
96 |
97 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Date & Time.md:
--------------------------------------------------------------------------------
1 | Date & Time
2 | ===========
3 |
4 | * [ ] You know how to create a Date object for a specific date [:books:](https://www.digitalocean.com/community/tutorials/understanding-date-and-time-in-javascript)
5 | * [ ] You know how to compare native date objects
6 | * [ ] You know what ISO 8601 standard format is and how to parse it to a date object [:books:](https://www.iso.org/iso-8601-date-and-time-format.html)
7 | * [ ] You know what unix timestamp is and how to parse it to a date object [:books:](https://stackoverflow.com/questions/20822821/what-is-a-unix-timestamp-and-why-use-it)
8 |
9 | [date-fns](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#date-fns)
10 | -----------------------------------------------------------------------------
11 |
12 | * [ ] You know how to create a date-fns date object for specific date [:books:](https://date-fns.org/v2.0.0-alpha.7/docs/FP-Guide#usage)
13 | * [ ] You know how to format and display a date object using standard format strings [:books:](https://www.digitalocean.com/community/tutorials/js-date-fns)
14 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
15 | * [ ] You know how to manipulate, compare date objects
16 |
17 | [react-datetime](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#react-datetime)
18 | -----------------------------------------------------------------------------------------
19 |
20 | * [ ] You know how to format and display a date object using standard format strings
21 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
22 | * [ ] You know how to manipulate and compare date objects
23 |
24 | [dayjs](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#dayjs)
25 | -----------------------------------------------------------------------
26 |
27 | * [ ] You know how to format and display a date object using standard format strings
28 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
29 | * [ ] You know how to manipulate and compare date objects
30 |
31 | * * *
32 |
33 | Contribution
34 | ------------
35 |
36 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
37 |
38 | If you will spot any issues please add them in the **Issues** section.
39 |
40 | Credits
41 | -------
42 |
43 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
44 |
45 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
46 |
47 | License
48 | -------
49 |
50 | 
51 |
52 | © 2020 Flairs Sp. z o.o.
53 |
54 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
55 |
56 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
57 |
58 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
59 |
60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
61 |
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Fonts.md:
--------------------------------------------------------------------------------
1 | Fonts
2 | =====
3 |
4 | * [ ] You know how to load custom webfonts available in Google Fonts [:books:](https://scotch.io/@micwanyoike/how-to-add-fonts-to-a-react-project#toc-using-hosted-fonts)
5 | * [ ] You know how to load custom webfonts provided to you in a file
6 | * [ ] You understand the problem of webfont optimization and can apply best practices to a project [:books:](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/webfont-optimization)
7 |
8 | [fontfaceobserver](/Technical%20Stack/Frontend%20Developer/Fonts.md#fontfaceobserver)
9 | -------------------------------------------------------------------------------------
10 |
11 | * [ ] You know how to load a font
12 | * [ ] You know how to react to a font that has been loaded or failed to load
13 |
14 | [webfont-loader](/Technical%20Stack/Frontend%20Developer/Fonts.md#webfont-loader)
15 | ---------------------------------------------------------------------------------
16 |
17 | * [ ] You know how to load a font
18 | * [ ] You know how to react to events changes
19 | * [ ] You know how to configure multiple font options
20 |
21 | * * *
22 |
23 | Contribution
24 | ------------
25 |
26 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
27 |
28 | If you will spot any issues please add them in the **Issues** section.
29 |
30 | Credits
31 | -------
32 |
33 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
34 |
35 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
36 |
37 | License
38 | -------
39 |
40 | 
41 |
42 | © 2020 Flairs Sp. z o.o.
43 |
44 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
45 |
46 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
47 |
48 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
49 |
50 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Forms.md:
--------------------------------------------------------------------------------
1 | Forms
2 | =====
3 |
4 | [Validation](/Technical%20Stack/Frontend%20Developer/Forms.md#validation)
5 | -------------------------------------------------------------------------
6 |
7 | ### [yup](/Technical%20Stack/Frontend%20Developer/Forms.md#yup)
8 |
9 | * [ ] You know how to create schemas with proper types
10 | * [ ] You know how to extend a schema type
11 | * [ ] You know how to add transformations
12 |
13 | [File upload](/Technical%20Stack/Frontend%20Developer/Forms.md#file-upload)
14 | ---------------------------------------------------------------------------
15 |
16 | * [ ] You know how to send a HTTP request to upload a file to backend
17 |
18 | ### [react-dropzone](/Technical%20Stack/Frontend%20Developer/Forms.md#react-dropzone)
19 |
20 | * [ ] You know how to change styles when dragging an element to dropzone area
21 | * [ ] You know how to validate file name, type and size
22 |
23 | [React](/Technical%20Stack/Frontend%20Developer/Forms.md#react)
24 | ---------------------------------------------------------------
25 |
26 | * [ ] You used and fulfill all requirements of at least one library that manages forms in react
27 |
28 | ### [formik](/Technical%20Stack/Frontend%20Developer/Forms.md#formik)
29 |
30 | * [ ] You know how to submit a form
31 | * [ ] You know how inject Formik with Hooks
32 | * [ ] You know how to validate form's data before & after submission
33 | * [ ] You know how to add fields dynamically
34 | * [ ] You know how to render a form with initial data
35 | * [ ] You know how to display errors based on data validation
36 | * [ ] You know how to clear forms data
37 |
38 | ### [react-hook-form](/Technical%20Stack/Frontend%20Developer/Forms.md#react-hook-form)
39 |
40 | * [ ] You know how to inject react-hook-form in the component's lifecycle
41 | * [ ] You know how to register an input
42 | * [ ] You know how to validate form's data before & after submission
43 | * [ ] You know how to pass data to be processed by the backend
44 | * [ ] You know how to add fields dynamically
45 | * [ ] You know how to render a form with data
46 | * [ ] You know how to display errors based on data validation
47 | * [ ] You know how to clear forms data
48 |
49 | ### [redux-form](/Technical%20Stack/Frontend%20Developer/Forms.md#redux-form)
50 |
51 | * [ ] You know how to validate form's data before & after submission
52 | * [ ] You know how to pass data to be processed by the backend
53 | * [ ] You know how to add fields dynamically
54 | * [ ] You know how to render a form with data
55 | * [ ] You know how to display errors based on data validation
56 | * [ ] You know how to clear forms data
57 |
58 | * * *
59 |
60 | Contribution
61 | ------------
62 |
63 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
64 |
65 | If you will spot any issues please add them in the **Issues** section.
66 |
67 | Credits
68 | -------
69 |
70 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
71 |
72 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
73 |
74 | License
75 | -------
76 |
77 | 
78 |
79 | © 2020 Flairs Sp. z o.o.
80 |
81 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
82 |
83 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
84 |
85 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
86 |
87 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Functional programming.md:
--------------------------------------------------------------------------------
1 | Functional programming
2 | ======================
3 |
4 | * [ ] You know the key concepts of functional programming: pure functions, same input -> same output, no side-effects [:books:](https://thecodeboss.dev/2016/12/core-functional-programming-concepts/)
5 | * [ ] You know and use concepts such as immutability, first-class functions, referential transparency and recursion
6 |
7 | [ramda](/Technical%20Stack/Frontend%20Developer/Functional%20programming.md#ramda)
8 | ----------------------------------------------------------------------------------
9 |
10 | * [ ] You know how to curry a function [:books:](https://www.educative.io/courses/functional-programming-patterns-with-ramdajs/xV9vlmDPJAE)
11 | * [ ] You know how to compose a function from other functions
12 | * [ ] You know how to pipe functions to produce a step by step processing sequence
13 | * [ ] You can use basic functions such as map, mapValues, find, sort, sortBy, concat, equals, cond, ifElse [:books:](https://randycoulman.com/blog/2016/05/24/thinking-in-ramda-getting-started/)
14 |
15 | [lodash](/Technical%20Stack/Frontend%20Developer/Functional%20programming.md#lodash)
16 | ------------------------------------------------------------------------------------
17 |
18 | * [ ] You use functions as input for other functions
19 | * [ ] You can use arbitrary functions to manipulate arrays and objects
20 | * [ ] You can use debounce and throttle
21 |
22 | * * *
23 |
24 | Contribution
25 | ------------
26 |
27 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
28 |
29 | If you will spot any issues please add them in the **Issues** section.
30 |
31 | Credits
32 | -------
33 |
34 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
35 |
36 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
37 |
38 | License
39 | -------
40 |
41 | 
42 |
43 | © 2020 Flairs Sp. z o.o.
44 |
45 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
46 |
47 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
48 |
49 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
50 |
51 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/HTTP.md:
--------------------------------------------------------------------------------
1 | HTTP
2 | ====
3 |
4 | [Requests](/Technical%20Stack/Mobile%20Developer/HTTP.md#requests)
5 | ------------------------------------------------------------------
6 |
7 | * [ ] You know what cookies are
8 | * [ ] You know what HTTP headers are
9 | * [ ] You can explain what CORS is and understand its shortcomings
10 | * [ ] You can explain what HTTP only cookie is
11 | * [ ] You know which parts of the HTTPS request is encrypted
12 | * [ ] You know different values for content-type
header and understand when to use them
13 |
14 | ### [fetch](/Technical%20Stack/Mobile%20Developer/HTTP.md#fetch)
15 |
16 | * [ ] You know how to create an HTTP request using native fetch
[:books:](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch)
17 | * [ ] You know how to set HTTP headers in a request
18 | * [ ] You know how to read HTTP headers sent in a response
19 | * [ ] You know how to handle errors returned in HTTP response [:books:](https://levelup.gitconnected.com/the-definite-guide-to-handling-errors-gracefully-in-javascript-58424d9c60e6)
20 | * [ ] You know how to cancel a request
21 |
22 | ### [Axios](/Technical%20Stack/Mobile%20Developer/HTTP.md#axios)
23 |
24 | * [ ] You know how to use axios to send HTTP request to an API endpoint [:books:](https://github.com/apptension/cra-template-apptension/blob/master/template/src/modules/users/users.sagas.ts)
25 | * [ ] You know how to set HTTP headers in a request
26 | * [ ] You know how to handle errors returned in HTTP response [:books:](https://www.intricatecloud.io/2020/03/how-to-handle-api-errors-in-your-web-app-using-axios/)
27 | * [ ] You can configure axios to have a predefined base url for making requests
28 | * [ ] You know how to read HTTP headers sent in a response
29 | * [ ] You know to add meta data (for example JWT token) to the request headers
30 | * [ ] You know how to transform data with transformResponse
and transformRequest
31 | * [ ] You know how to serealize parameters with paramsSerializer
32 | * [ ] You know how to use interceptors
33 | * [ ] You know how to cancel a request
34 |
35 | [Websockets](/Technical%20Stack/Mobile%20Developer/HTTP.md#websockets)
36 | ----------------------------------------------------------------------
37 |
38 | * [ ] You know how to connect to a websocket connection using either a native configuration or an existing library
39 |
40 | ### [pusher-js](/Technical%20Stack/Mobile%20Developer/HTTP.md#pusher-js)
41 |
42 | * [ ] You know how to configure Pusher JS
43 | * [ ] You know how to subscribe/unsubscribe to a channel
44 | * [ ] You know how to bind/unbind to events
45 |
46 | [Tools](/Technical%20Stack/Mobile%20Developer/HTTP.md#tools)
47 | ------------------------------------------------------------
48 |
49 | ### [humps](/Technical%20Stack/Mobile%20Developer/HTTP.md#humps)
50 |
51 | * [ ] You know how to use humps to camelize or decamelize strings and object's keys
52 | * [ ] You know how to split strings and object's keys containing numerical values
53 |
54 | ### [query-string](/Technical%20Stack/Mobile%20Developer/HTTP.md#query-string)
55 |
56 | * [ ] You know how to parse URLs
57 | * [ ] You know how to create a query string out of an object
58 |
59 | ### [normalizr](/Technical%20Stack/Mobile%20Developer/HTTP.md#normalizr)
60 |
61 | * [ ] You know how to define an object entity schema
62 | * [ ] You know how to normalize data returned from server
63 | * [ ] You can explain what are the benefits of using normalizr library
64 |
65 | ### [http-status-codes](/Technical%20Stack/Mobile%20Developer/HTTP.md#http-status-codes)
66 |
67 | * [ ] You use descriptive status codes instead of number literals
68 |
69 | * * *
70 |
71 | Contribution
72 | ------------
73 |
74 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
75 |
76 | If you will spot any issues please add them in the **Issues** section.
77 |
78 | Credits
79 | -------
80 |
81 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
82 |
83 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
84 |
85 | License
86 | -------
87 |
88 | 
89 |
90 | © 2020 Flairs Sp. z o.o.
91 |
92 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
93 |
94 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
95 |
96 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
97 |
98 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Internationalization.md:
--------------------------------------------------------------------------------
1 | Internationalization
2 | ====================
3 |
4 | [react-Intl](/Technical%20Stack/Mobile%20Developer/Internationalization.md#react-intl)
5 | --------------------------------------------------------------------------------------
6 |
7 | * [ ] You know and use React-intl components [:books:](https://www.newline.co/@dmitryrogozhny/quick-introduction-to-internationalization-in-react-with-react-intl--13b17de9)
8 | * [ ] You know how to create messages files using defineMessage api [:books:](https://github.com/apptension/cra-template-apptension/blob/master/template/src/routes/home/home.messages.ts)
9 | * [ ] You know how to use useIntl
hook
10 |
11 | [format.js](/Technical%20Stack/Mobile%20Developer/Internationalization.md#format.js)
12 | ------------------------------------------------------------------------------------
13 |
14 | * [ ] You know how to format a message passing values and date-time stamps
15 | * [ ] You know how to pluralize messages based on a passed value
16 |
17 | * * *
18 |
19 | Contribution
20 | ------------
21 |
22 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
23 |
24 | If you will spot any issues please add them in the **Issues** section.
25 |
26 | Credits
27 | -------
28 |
29 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
30 |
31 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
32 |
33 | License
34 | -------
35 |
36 | 
37 |
38 | © 2020 Flairs Sp. z o.o.
39 |
40 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
41 |
42 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Languages.md:
--------------------------------------------------------------------------------
1 | Languages
2 | =========
3 |
4 | [JavaScript](/Technical%20Stack/Frontend%20Developer/Languages.md#java-script)
5 | ------------------------------------------------------------------------------
6 |
7 | * [ ] You know javascript
8 |
9 | [TypeScript](/Technical%20Stack/Frontend%20Developer/Languages.md#type-script)
10 | ------------------------------------------------------------------------------
11 |
12 | * [ ] You know typescript
13 |
14 | * * *
15 |
16 | Contribution
17 | ------------
18 |
19 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
20 |
21 | If you will spot any issues please add them in the **Issues** section.
22 |
23 | Credits
24 | -------
25 |
26 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
27 |
28 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
29 |
30 | License
31 | -------
32 |
33 | 
34 |
35 | © 2020 Flairs Sp. z o.o.
36 |
37 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
38 |
39 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
40 |
41 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
42 |
43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Misc.md:
--------------------------------------------------------------------------------
1 | Misc
2 | ====
3 |
4 | [Service Workers](/Technical%20Stack/Frontend%20Developer/Misc.md#service-workers)
5 | ----------------------------------------------------------------------------------
6 |
7 | * [ ] You understand what Service Workers are and the APIs they allow us to interact among different browsers
8 | * [ ] You can choose and install a SW plugin
9 | * [ ] You understand the challenges of updating a website that has a service worker cache enabled
10 | * [ ] You know how to create a service worker manually
11 |
12 | [Progressive Web Apps](/Technical%20Stack/Frontend%20Developer/Misc.md#progressive-web-apps)
13 | --------------------------------------------------------------------------------------------
14 |
15 | * [ ] You understand the usage of PWA and can recommend different modes depending on project needs
16 | * [ ] You're able to create a manifest yourself or generate one using a plugin
17 | * [ ] You are aware of the pros and cons and the differences between browsers
18 |
19 | [Drag & Drop](/Technical%20Stack/Frontend%20Developer/Misc.md#drag-&-drop)
20 | --------------------------------------------------------------------------
21 |
22 | ### [react-dnd](/Technical%20Stack/Frontend%20Developer/Misc.md#react-dnd)
23 |
24 | * [ ] You can order a list of elements
25 | * [ ] You can drag and drop elements in specific areas
26 | * [ ] You can change how the dragging element looks like when being dragged
27 | * [ ] You can add validations on dragging and dropping elements
28 | * [ ] You can specify the proper backend to support mobiles and desktops
29 |
30 | [WYSIWYG Text editors](/Technical%20Stack/Frontend%20Developer/Misc.md#wysiwyg-text-editors)
31 | --------------------------------------------------------------------------------------------
32 |
33 | * [ ] You have used one of the text editor libraries
34 |
35 | ### [Slate](/Technical%20Stack/Frontend%20Developer/Misc.md#slate)
36 |
37 | * [ ] You have used the library in a project
38 |
39 | ### [Froala](/Technical%20Stack/Frontend%20Developer/Misc.md#froala)
40 |
41 | * [ ] You have used the library in a project
42 |
43 | * * *
44 |
45 | Contribution
46 | ------------
47 |
48 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
49 |
50 | If you will spot any issues please add them in the **Issues** section.
51 |
52 | Credits
53 | -------
54 |
55 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
56 |
57 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
58 |
59 | License
60 | -------
61 |
62 | 
63 |
64 | © 2020 Flairs Sp. z o.o.
65 |
66 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
67 |
68 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
69 |
70 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
71 |
72 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Monitoring.md:
--------------------------------------------------------------------------------
1 | Monitoring
2 | ==========
3 |
4 | * [ ] You know how to configure a reporter for a chosen monitoring platform
5 |
6 | [sentry-javascript](/Technical%20Stack/Frontend%20Developer/Monitoring.md#sentry-javascript)
7 | --------------------------------------------------------------------------------------------
8 |
9 | * [ ] You know how to configure Sentry for React
10 |
11 | [snyk](/Technical%20Stack/Frontend%20Developer/Monitoring.md#snyk)
12 | ------------------------------------------------------------------
13 |
14 | * [ ] You know how to configure Snyk to find packages vulnerabilities
15 |
16 | * * *
17 |
18 | Contribution
19 | ------------
20 |
21 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
22 |
23 | If you will spot any issues please add them in the **Issues** section.
24 |
25 | Credits
26 | -------
27 |
28 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
29 |
30 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
31 |
32 | License
33 | -------
34 |
35 | 
36 |
37 | © 2020 Flairs Sp. z o.o.
38 |
39 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
40 |
41 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
42 |
43 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
44 |
45 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Performance.md:
--------------------------------------------------------------------------------
1 | Performance
2 | ===========
3 |
4 | [Lighthouse](/Technical%20Stack/Frontend%20Developer/Performance.md#lighthouse)
5 | -------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to run Lighthouse audits in Google Chrome DevTools
8 | * [ ] You can analyse Lighthouse results and draw conclusions to improve your web app
9 |
10 | [PageSpeed Insights](/Technical%20Stack/Frontend%20Developer/Performance.md#page-speed-insights)
11 | ------------------------------------------------------------------------------------------------
12 |
13 | * [ ] You know how to run PageSpeed Insights on your web app
14 | * [ ] You can analyse PageSpeed Insights results and draw conclusions to improve your web app
15 |
16 | * * *
17 |
18 | Contribution
19 | ------------
20 |
21 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
22 |
23 | If you will spot any issues please add them in the **Issues** section.
24 |
25 | Credits
26 | -------
27 |
28 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
29 |
30 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
31 |
32 | License
33 | -------
34 |
35 | 
36 |
37 | © 2020 Flairs Sp. z o.o.
38 |
39 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
40 |
41 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
42 |
43 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
44 |
45 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Routing.md:
--------------------------------------------------------------------------------
1 | Routing
2 | =======
3 |
4 | [react-router](/Technical%20Stack/Frontend%20Developer/Routing.md#react-router)
5 | -------------------------------------------------------------------------------
6 |
7 | * [ ] You can create a simple route structure using Switch and Route [:books:](https://reactrouter.com/en/main/components/route)
8 | * [ ] You know how to add parameters to a route, and make them required or optional [:books:](https://ui.dev/react-router-url-parameters)
9 | * [ ] You know how to render 404 pages [:books:](https://ui.dev/react-router-handling-404-pages)
10 | * [ ] You know how to use in order to render a needed component in a given occasion
11 | * [ ] You know how to interact with browser history via the browser router [:books:](https://reactrouter.com/en/main/routers/browser-router)
12 | * [ ] You know how to use basic router hooks (useNavigate, useLocation, useParams, useMatch) [:books:](https://reactrouter.com/en/main/hooks/use-match)
13 | * [ ] You know how to manipulate history's location object
14 | * [ ] You know to how separate private routes from public routes
15 | * [ ] You know how to securely render routes depending on the user's permission
16 |
17 | [react-router-dom](/Technical%20Stack/Frontend%20Developer/Routing.md#react-router-dom)
18 | ---------------------------------------------------------------------------------------
19 |
20 | * [ ] You know how to use basic components - Link, NavLink [:books:](https://www.codementor.io/@packt/using-the-link-and-navlink-components-to-navigate-to-a-route-rieqipp42)
21 |
22 | * * *
23 |
24 | Contribution
25 | ------------
26 |
27 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
28 |
29 | If you will spot any issues please add them in the **Issues** section.
30 |
31 | Credits
32 | -------
33 |
34 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
35 |
36 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
37 |
38 | License
39 | -------
40 |
41 | 
42 |
43 | © 2020 Flairs Sp. z o.o.
44 |
45 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
46 |
47 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
48 |
49 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
50 |
51 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52 |
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/SEO.md:
--------------------------------------------------------------------------------
1 | SEO
2 | ===
3 |
4 | * [ ] You understand HTML semantics and use them properly
5 | * [ ] You generate page's content following best SEO practices
6 |
7 | [react-helmet](/Technical%20Stack/Frontend%20Developer/SEO.md#react-helmet)
8 | ---------------------------------------------------------------------------
9 |
10 | * [ ] You can configure SEO meta tags, OG tags and page descriptions
11 | * [ ] You're able to generate descriptions based on content
12 |
13 | * * *
14 |
15 | Contribution
16 | ------------
17 |
18 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
19 |
20 | If you will spot any issues please add them in the **Issues** section.
21 |
22 | Credits
23 | -------
24 |
25 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
26 |
27 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
28 |
29 | License
30 | -------
31 |
32 | 
33 |
34 | © 2020 Flairs Sp. z o.o.
35 |
36 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
37 |
38 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
39 |
40 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
41 |
42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/SSR & Prerendering.md:
--------------------------------------------------------------------------------
1 | SSR & Prerendering
2 | ==================
3 |
4 | * [ ] You are aware of how SSR works and understand its use cases
5 | * [ ] You understand the difference between prerendering + cache compared to full SSR
6 |
7 | [Gatsby](/Technical%20Stack/Frontend%20Developer/SSR%20&%20Prerendering.md#gatsby)
8 | ----------------------------------------------------------------------------------
9 |
10 | * [ ] You know how to set up and add plugins to Gatsby
11 | * [ ] You understand the difference between gatsby-ssr, gatsby-node, gatsby-config and gatsby-browser files, and you know their roles
12 | * [ ] You understand the concept of data sources and how Gatsby creates a data store that you can later query using GraphQL
13 | * [ ] You know how to generate pages based on external sources (API, Markdown files)
14 | * [ ] You know how to dynamically create pages using createPages
function
15 | * [ ] You know how to introduce a dynamic routing to a page
16 |
17 | ### [gatsby-image](/Technical%20Stack/Frontend%20Developer/SSR%20&%20Prerendering.md#gatsby-image)
18 |
19 | * [ ] You know how to use gatsby-image to optimise the way we get images
20 |
21 | ### [GraphQL](/Technical%20Stack/Frontend%20Developer/SSR%20&%20Prerendering.md#graph-ql)
22 |
23 | * [ ] You know how to write static queries
24 | * [ ] You know how to write page queries
25 | * [ ] You know how to use page context variables to parametrize page queries
26 | * [ ] You know how to customize GraphQL schemas [:books:](https://www.gatsbyjs.org/docs/schema-customization/)
27 |
28 | ### [Next.js](/Technical%20Stack/Frontend%20Developer/SSR%20&%20Prerendering.md#next-js)
29 | -------
30 |
31 | * [ ] You know how correctly use next/image
[:books:](https://nextjs.org/docs/api-reference/next/image/)
32 | * [ ] You know how to use data fetching (getServerSideProps
, getStaticProps) [:books:](https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props/) [:books:](https://nextjs.org/docs/basic-features/data-fetching/get-static-props/)
33 | * [ ] You know how create Dynamic Routes [:books:](https://nextjs.org/docs/routing/dynamic-routes/)
34 |
35 | [Netlify prerender](/Technical%20Stack/Frontend%20Developer/SSR%20&%20Prerendering.md#netlify-prerender)
36 | --------------------------------------------------------------------------------------------------------
37 |
38 | * [ ] You know how to configure Netlify prerendering function
39 |
40 | * * *
41 |
42 | Contribution
43 | ------------
44 |
45 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
46 |
47 | If you will spot any issues please add them in the **Issues** section.
48 |
49 | Credits
50 | -------
51 |
52 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
53 |
54 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
55 |
56 | License
57 | -------
58 |
59 | 
60 |
61 | © 2020 Flairs Sp. z o.o.
62 |
63 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
64 |
65 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
66 |
67 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
68 |
69 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
70 |
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Templating engines.md:
--------------------------------------------------------------------------------
1 | Templating engines
2 | ==================
3 |
4 | * [ ] You know how to use templating engines in various situations that require you to create a parametrized text file
5 |
6 | [Mustache](/Technical%20Stack/Frontend%20Developer/Templating%20engines.md#mustache)
7 | ------------------------------------------------------------------------------------
8 |
9 | * [ ] You can render a mustache template using an object with key:values
10 | * [ ] You know how to ignore a mustache tag so it's not replaced but rendered in HTML instead
11 | * [ ] You know how to use sections and manipulate data to not render null or use functions
12 | * [ ] You know how to use partials
13 |
14 | [Handlebars](/Technical%20Stack/Frontend%20Developer/Templating%20engines.md#handlebars)
15 | ----------------------------------------------------------------------------------------
16 |
17 | * [ ] You know how to render a handlebars template
18 | * [ ] You know how to parse nested objects
19 | * [ ] You know how to use handlebars functions
20 | * [ ] You know how to create a helper function
21 | * [ ] You know how to escape HTML
22 | * [ ] You know how to use partials
23 |
24 | [markdown-it](/Technical%20Stack/Frontend%20Developer/Templating%20engines.md#markdown-it)
25 | ------------------------------------------------------------------------------------------
26 |
27 | * [ ] You customise the markdown styles
28 | * [ ] You can escape or skip html tags
29 | * [ ] You can add plugins
30 | * [ ] You can use the APIs functions to manipulate data
31 |
32 | [react-markdown](/Technical%20Stack/Frontend%20Developer/Templating%20engines.md#react-markdown)
33 | ------------------------------------------------------------------------------------------------
34 |
35 | * [ ] You customise the markdown styles
36 | * [ ] You can escape or skip html tags
37 | * [ ] You can add plugins
38 | * [ ] You can add parsers
39 |
40 | * * *
41 |
42 | Contribution
43 | ------------
44 |
45 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
46 |
47 | If you will spot any issues please add them in the **Issues** section.
48 |
49 | Credits
50 | -------
51 |
52 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
53 |
54 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
55 |
56 | License
57 | -------
58 |
59 | 
60 |
61 | © 2020 Flairs Sp. z o.o.
62 |
63 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
64 |
65 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
66 |
67 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
68 |
69 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Testing.md:
--------------------------------------------------------------------------------
1 | Testing
2 | =======
3 |
4 | * [ ] You know how to test custom React hooks.
5 | * [ ] You know how to test a selector function.
6 |
7 | [jest](/Technical%20Stack/Mobile%20Developer/Testing.md#jest)
8 | -------------------------------------------------------------
9 |
10 | * [ ] You know how to test components and functions
11 | * [ ] You know how to mock functions and global objects
12 | * [ ] You know how to add snapshot testing
13 | * [ ] You know how to add and configure Jest in the build tools
14 |
15 | [react-testing-library](/Technical%20Stack/Mobile%20Developer/Testing.md#react-testing-library)
16 | -----------------------------------------------------------------------------------------------
17 |
18 | * [ ] You know how to install and configure it in the build tools
19 | * [ ] You know how to query for the component you want to test according to library best practices
20 | * [ ] You know how to mock server's response
21 | * [ ] You know how to test the redux store actions
22 |
23 | [jest-styled-components](/Technical%20Stack/Mobile%20Developer/Testing.md#jest-styled-components)
24 | -------------------------------------------------------------------------------------------------
25 |
26 | * [ ] You can install and configure it in a project
27 | * [ ] You can test if an HTML node has the proper style
28 | * [ ] You can create snapshots with readable classes and proper styles properties
29 |
30 | [redux-saga-test-plan](/Technical%20Stack/Mobile%20Developer/Testing.md#redux-saga-test-plan)
31 | ---------------------------------------------------------------------------------------------
32 |
33 | * [ ] You know how to test when an action has been put for processing
34 | * [ ] You know how to provide an initial state for a saga execution
35 | * [ ] You know how to check if the expected action has been called
36 |
37 | [Mocking](/Technical%20Stack/Mobile%20Developer/Testing.md#mocking)
38 | -------------------------------------------------------------------
39 |
40 | ### [nock](/Technical%20Stack/Mobile%20Developer/Testing.md#nock)
41 |
42 | * [ ] You know how to mock API calls with or without payload
43 | * [ ] You know how to set configuration header's and meta data
44 | * [ ] You can write assertions to check if API endpoint has been called with proper data
45 |
46 | ### [mockdate](/Technical%20Stack/Mobile%20Developer/Testing.md#mockdate)
47 |
48 | * [ ] You know how to mock Date object to return specific value in test environment
49 |
50 | * * *
51 |
52 | Contribution
53 | ------------
54 |
55 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
56 |
57 | If you will spot any issues please add them in the **Issues** section.
58 |
59 | Credits
60 | -------
61 |
62 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
63 |
64 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
65 |
66 | License
67 | -------
68 |
69 | 
70 |
71 | © 2020 Flairs Sp. z o.o.
72 |
73 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
74 |
75 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
76 |
77 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
78 |
79 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Tools.md:
--------------------------------------------------------------------------------
1 | Tools
2 | =====
3 |
4 | [Design](/Technical%20Stack/Frontend%20Developer/Tools.md#design)
5 | -----------------------------------------------------------------
6 |
7 | ### [Figma](/Technical%20Stack/Mobile%20Developer/Tools.md#figma)
8 |
9 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project [:books:](https://www.figma.com/resources/assets/developer-onboarding-guide/)
10 | * [ ] You know how to extract image assets from a design project
11 | * [ ] You know how to extract vector icon asset from a project
12 |
13 | ### [Zeplin](/Technical%20Stack/Mobile%20Developer/Tools.md#zeplin)
14 |
15 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project
16 | * [ ] You know how to extract image assets from a design project
17 | * [ ] You know how to extract vector icon asset from a project
18 |
19 | ### [Invision](/Technical%20Stack/Mobile%20Developer/Tools.md#invision)
20 |
21 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project
22 | * [ ] You know how to extract image assets from a design project
23 | * [ ] You know how to extract vector icon asset from a project
24 |
25 | ### [Adobe XD](/Technical%20Stack/Mobile%20Developer/Tools.md#adobe-xd)
26 |
27 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project
28 | * [ ] You know how to extract image assets from a design project
29 | * [ ] You know how to extract vector icon asset from a project
30 |
31 | * * *
32 |
33 | Contribution
34 | ------------
35 |
36 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
37 |
38 | If you will spot any issues please add them in the **Issues** section.
39 |
40 | Credits
41 | -------
42 |
43 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
44 |
45 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
46 |
47 | License
48 | -------
49 |
50 | 
51 |
52 | © 2020 Flairs Sp. z o.o.
53 |
54 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
55 |
56 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
57 |
58 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
59 |
60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Frontend Developer/Visualizations.md:
--------------------------------------------------------------------------------
1 | Visualizations
2 | ==============
3 |
4 | [Charting](/Technical%20Stack/Frontend%20Developer/Visualizations.md#charting)
5 | ------------------------------------------------------------------------------
6 |
7 | You don't need to know all of the charting libraries. One is enough, but make sure to master it!
8 |
9 | * [ ] You used at least one charting library in a project
10 | * [ ] You implemented custom interactive charts using one of the charting libraries
11 |
12 | ### [nivo](/Technical%20Stack/Frontend%20Developer/Visualizations.md#nivo)
13 |
14 | * [ ] You can create simple graphs and incorporate with React life cycle [:books:](https://medium.com/@samuelsetsoafia/nivo-a-great-alternative-to-d3-in-react-6cb18d907d2)
15 | * [ ] You can incorporate application theme to modify graphs style [:books:](https://medium.com/swlh/beautiful-and-responsive-line-charts-using-nivo-react-and-material-ui-18d2cbd2953b)
16 | * [ ] You can animate and add interactions to the graphs so it interacts with the React component lifecycle
17 | * [ ] You know how to extend the nivo library to customise it and create non standard visualizations
18 |
19 | ### [vx](/Technical%20Stack/Frontend%20Developer/Visualizations.md#vx)
20 |
21 | * [ ] You can create simple graphs and incorporate with React life cycle [:books:](https://codedaily.io/tutorials/39/Make-a-Beautiful-Interactive-Bitcoin-Price-Chart-with-React-D3-and-VX)
22 | * [ ] You can incorporate application theme to modify graphs style
23 | * [ ] You can animate and add interactions to the graphs so it interacts with the React component lifecycle
24 | * [ ] You know how to extend the vx library to customise it and create non standard visualizations
25 |
26 | ### [d3.js](/Technical%20Stack/Frontend%20Developer/Visualizations.md#d3.js)
27 |
28 | * [ ] You can explain the concept of data driven documents
29 | * [ ] You know how to create basic graphs with specific axes [:books:](https://www.tutorialsteacher.com/d3js)
30 | * [ ] You know how to interact with the SVG's nodes and bind events
31 | * [ ] You know how to customise the styles of a graph to change its shape and colours
32 | * [ ] You can scale the chart accordingly to the page size
33 | * [ ] You can use d3 transitions to animate SVG elements
34 |
35 | [Canvas](/Technical%20Stack/Frontend%20Developer/Visualizations.md#canvas)
36 | --------------------------------------------------------------------------
37 |
38 | ### [Pixi.js](/Technical%20Stack/Frontend%20Developer/Visualizations.md#pixi.js)
39 |
40 | * [ ] You know how to create pixi application structure [:books:](https://www.pixijs.com/tutorials)
41 | * [ ] You know how to use pixi ticker
42 | * [ ] You know how to use pixi filters
43 | * [ ] You know how to render text
44 | * [ ] You know how to create primitive and complex shapes
45 | * [ ] You know how to load and render sprites
46 | * [ ] You know how to animate objects
47 | * [ ] You know how to scale objects depending on device pixel density ration
48 | * [ ] You know what are the pros and cons of 2D and 3D renderers
49 | * [ ] You know how to use and animate a texture mesh [:books:](http://scottmcdonnell.github.io/pixi-examples/index.html?s=basics&f=textured-mesh.js&title=Textured%20Mesh)
50 | * [ ] You know how to apply object pooling pattern
51 | * [ ] You know how to apply spatial hash algorithm to optimize renders
52 |
53 | [SVG](/Technical%20Stack/Frontend%20Developer/Visualizations.md#svg)
54 | --------------------------------------------------------------------
55 |
56 | * [ ] D3.js
57 | * [ ] react-d3
58 | * [ ] svgr
59 |
60 | [WebGL](/Technical%20Stack/Frontend%20Developer/Visualizations.md#web-gl)
61 | -------------------------------------------------------------------------
62 |
63 | * [ ] three.js
64 | * [ ] babylon.js
65 |
66 | * * *
67 |
68 | Contribution
69 | ------------
70 |
71 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
72 |
73 | If you will spot any issues please add them in the **Issues** section.
74 |
75 | Credits
76 | -------
77 |
78 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
79 |
80 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
81 |
82 | License
83 | -------
84 |
85 | 
86 |
87 | © 2020 Flairs Sp. z o.o.
88 |
89 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
90 |
91 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
92 |
93 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
94 |
95 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer.md:
--------------------------------------------------------------------------------
1 | Mobile Developer
2 | ----------------
3 |
4 | ### Browse by technical topic
5 |
6 | * [Company best practices](/Technical%20Stack/Mobile%20Developer/Company%20best%20practices.md)
7 | * [React](/Technical%20Stack/Mobile%20Developer/React.md)
8 | * [React-native](/Technical%20Stack/Mobile%20Developer/React-native.md)
9 | * [Application state management](/Technical%20Stack/Mobile%20Developer/Application%20state%20management.md)
10 | * [HTTP](/Technical%20Stack/Mobile%20Developer/HTTP.md)
11 | * [Animations](/Technical%20Stack/Mobile%20Developer/Animations.md)
12 | * [Internationalization](/Technical%20Stack/Mobile%20Developer/Internationalization.md)
13 | * [Navigation](/Technical%20Stack/Mobile%20Developer/Navigation.md)
14 | * [Components](/Technical%20Stack/Mobile%20Developer/Components.md)
15 | * [Common Application Modules](/Technical%20Stack/Mobile%20Developer/Common%20Application%20Modules.md)
16 | * [Date & Time](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md)
17 | * [Versioning](/Technical%20Stack/Mobile%20Developer/Versioning.md)
18 | * [Testing](/Technical%20Stack/Mobile%20Developer/Testing.md)
19 | * [Performance](/Technical%20Stack/Mobile%20Developer/Performance.md)
20 | * [Development tools](/Technical%20Stack/Mobile%20Developer/Development%20tools.md)
21 | * [Crash reporting / Monitoring](/Technical%20Stack/Mobile%20Developer/Crash%20reporting%20/%20Monitoring.md)
22 | * [CI/CD](/Technical%20Stack/Mobile%20Developer/CI/CD.md)
23 | * [Tools](/Technical%20Stack/Mobile%20Developer/Tools.md)
24 | * [Services](/Technical%20Stack/Mobile%20Developer/Services.md)
25 |
26 | * * *
27 |
28 | Contribution
29 | ------------
30 |
31 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
32 |
33 | If you will spot any issues please add them in the **Issues** section.
34 |
35 | Credits
36 | -------
37 |
38 | This page is maintained by [Apptension](https://apptension.com) team.
39 |
40 | You can see more of our work here: [Apptension portfolio](https://www.apptension.com/portfolio).
41 |
42 | License
43 | -------
44 |
45 | 
46 |
47 | © 2023 Apptension Sp. z o.o.
48 |
49 | Built and maintained by [Apptension](https://apptension.com).
50 |
51 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
52 |
53 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
54 |
55 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
56 |
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Animations.md:
--------------------------------------------------------------------------------
1 | Animations
2 | ==========
3 |
4 | [react-native-reanimated](/Technical%20Stack/Mobile%20Developer/Animations.md#react-native-reanimated)
5 | ------------------------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to use Value
8 | * [ ] You know how to run timing animation with easing
9 | * [ ] You know how to run decay animation
10 | * [ ] You know how to run spring animation
11 | * [ ] You know how to create animation using native events
12 | * [ ] You know how to create animation using gestures
13 | * [ ] You know when and how to use Animated.Code
14 | * [ ] You know how to manage clock
15 | * [ ] You know how to use clock methods
16 | * [ ] You can create animation block with conditions and calculations
17 |
18 | [lottie-react-native](/Technical%20Stack/Mobile%20Developer/Animations.md#lottie-react-native)
19 | ----------------------------------------------------------------------------------------------
20 |
21 | * [ ] You know how to correctly configure library and import json animations
22 | * [ ] You know how to run animation using Animated.Value
23 | * [ ] You know how to create loop animation
24 |
25 | * * *
26 |
27 | Contribution
28 | ------------
29 |
30 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
31 |
32 | If you will spot any issues please add them in the **Issues** section.
33 |
34 | Credits
35 | -------
36 |
37 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
38 |
39 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
40 |
41 | License
42 | -------
43 |
44 | 
45 |
46 | © 2020 Flairs Sp. z o.o.
47 |
48 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
49 |
50 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
51 |
52 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
53 |
54 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/CI/CD.md:
--------------------------------------------------------------------------------
1 | CI/CD
2 | =====
3 |
4 | [fastlane](/Technical%20Stack/Mobile%20Developer/CI/CD.md#fastlane)
5 | -------------------------------------------------------------------
6 |
7 | * [ ] Yow know how to define Appfile [:books:](http://docs.fastlane.tools/advanced/Appfile/#appfile)
8 | * [ ] You know how to define Matchfile for proper enviroments [:books:](https://docs.fastlane.tools/actions/match/#match)
9 | * [ ] You know how to prepare lanes overwriting app configuration and how to use plugins [:books:](http://docs.fastlane.tools/advanced/Fastfile/#fastfile)
10 |
11 | [Visual Studio App Center](/Technical%20Stack/Mobile%20Developer/CI/CD.md#visual-studio-app-center)
12 | ---------------------------------------------------------------------------------------------------
13 |
14 | * [ ] You know how to configure iOS and Android build
15 | * [ ] You know how to correctly configure app signing
16 | * [ ] You know how to use and define pre-build scripts
17 | * [ ] You know how to publish apps automatically to the specified group of people [:books:](https://docs.microsoft.com/en-us/appcenter/distribution/groups)
18 | * [ ] You know how to configure Google Play Alpha / App Store Connect build upload [:books:](https://docs.microsoft.com/en-us/appcenter/distribution/stores/)
19 |
20 | * * *
21 |
22 | Contribution
23 | ------------
24 |
25 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
26 |
27 | If you will spot any issues please add them in the **Issues** section.
28 |
29 | Credits
30 | -------
31 |
32 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
33 |
34 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
35 |
36 | License
37 | -------
38 |
39 | 
40 |
41 | © 2020 Flairs Sp. z o.o.
42 |
43 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
44 |
45 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
46 |
47 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
48 |
49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Components.md:
--------------------------------------------------------------------------------
1 | Components
2 | ==========
3 |
4 | [Forms](/Technical%20Stack/Mobile%20Developer/Components.md#forms)
5 | ------------------------------------------------------------------
6 |
7 | ### [react-native-keyboard-aware-scroll-view](/Technical%20Stack/Mobile%20Developer/Components.md#react-native-keyboard-aware-scroll-view)
8 |
9 | * [ ] You know how to handle automatic scroll to the form inputs on focus
10 | * [ ] You know how to navigate between form fields
11 |
12 | [Lists](/Technical%20Stack/Mobile%20Developer/Components.md#lists)
13 | ------------------------------------------------------------------
14 |
15 | ### [react-native-largelist](/Technical%20Stack/Mobile%20Developer/Components.md#react-native-largelist)
16 |
17 | * [ ] You know how to render LargeList with header and footer
18 | * [ ] You know how to use pull to refresh
19 | * [ ] You can listen on scroll and scroll to proper section
20 | * [ ] You can render list with/ without section headers
21 | * [ ] You know how to handle list item component flip animation
22 | * [ ] You know how to use custom pull to refresh component
23 | * [ ] You know how to use lottie animation as a loader
24 |
25 | [Images](/Technical%20Stack/Mobile%20Developer/Components.md#images)
26 | --------------------------------------------------------------------
27 |
28 | ### [react-native-fast-image](/Technical%20Stack/Mobile%20Developer/Components.md#react-native-fast-image)
29 |
30 | * [ ] You know how to display image with proper resize mode
31 | * [ ] You know how to handle image loader for cached images
32 | * [ ] You know how to preload images
33 | * [ ] You know how to prioritize images loading
34 |
35 | * * *
36 |
37 | Contribution
38 | ------------
39 |
40 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
41 |
42 | If you will spot any issues please add them in the **Issues** section.
43 |
44 | Credits
45 | -------
46 |
47 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
48 |
49 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
50 |
51 | License
52 | -------
53 |
54 | 
55 |
56 | © 2020 Flairs Sp. z o.o.
57 |
58 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
59 |
60 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
61 |
62 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
63 |
64 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Crash reporting / Monitoring.md:
--------------------------------------------------------------------------------
1 | Crash reporting / Monitoring
2 | ============================
3 |
4 | [@sentry/react-native](/Technical%20Stack/Mobile%20Developer/Crash%20reporting%20/%20Monitoring.md#@sentry/react-native)
5 | ------------------------------------------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to set tags
8 | * [ ] You know how to add breadcrumbs
9 | * [ ] You know how to capture exception
10 | * [ ] You know how to capture custom message
11 | * [ ] You know how to view and analyze crash reports
12 |
13 | [@react-native-firebase/crashlytics](/Technical%20Stack/Mobile%20Developer/Crash%20reporting%20/%20Monitoring.md#@react-native-firebase/crashlytics)
14 | ----------------------------------------------------------------------------------------------------------------------------------------------------
15 |
16 | * [ ] You know how to set user attributes
17 | * [ ] You know how to report errors
18 | * [ ] You know how to view and analyze crash reports
19 |
20 | * * *
21 |
22 | Contribution
23 | ------------
24 |
25 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
26 |
27 | If you will spot any issues please add them in the **Issues** section.
28 |
29 | Credits
30 | -------
31 |
32 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
33 |
34 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
35 |
36 | License
37 | -------
38 |
39 | 
40 |
41 | © 2020 Flairs Sp. z o.o.
42 |
43 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
44 |
45 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
46 |
47 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
48 |
49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Date & Time.md:
--------------------------------------------------------------------------------
1 | Date & Time
2 | ===========
3 |
4 | * [ ] You know how to create a Date object for a specific date [:books:](https://www.digitalocean.com/community/tutorials/understanding-date-and-time-in-javascript)
5 | * [ ] You know how to compare native date objects
6 | * [ ] You know what ISO 8601 standard format is and how to parse it to a date object [:books:](https://www.iso.org/iso-8601-date-and-time-format.html)
7 | * [ ] You know what unix timestamp is and how to parse it to a date object [:books:](https://stackoverflow.com/questions/20822821/what-is-a-unix-timestamp-and-why-use-it)
8 |
9 | [date-fns](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#date-fns)
10 | -----------------------------------------------------------------------------
11 |
12 | * [ ] You know how to create a date-fns date object for specific date [:books:](https://date-fns.org/v2.0.0-alpha.7/docs/FP-Guide#usage)
13 | * [ ] You know how to format and display a date object using standard format strings [:books:](https://www.digitalocean.com/community/tutorials/js-date-fns)
14 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
15 | * [ ] You know how to manipulate, compare date objects
16 |
17 | [react-datetime](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#react-datetime)
18 | -----------------------------------------------------------------------------------------
19 |
20 | * [ ] You know how to format and display a date object using standard format strings
21 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
22 | * [ ] You know how to manipulate and compare date objects
23 |
24 | [moment.js](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#moment.js)
25 | -------------------------------------------------------------------------------
26 |
27 | * [ ] You know how to format and display a date object using standard format strings
28 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
29 | * [ ] You know how to manipulate and compare date objects
30 |
31 | [dayjs](/Technical%20Stack/Mobile%20Developer/Date%20&%20Time.md#dayjs)
32 | -----------------------------------------------------------------------
33 |
34 | * [ ] You know how to format and display a date object using standard format strings
35 | * [ ] You know how to convert date into a different timezone (usually user's local timezone)
36 | * [ ] You know how to manipulate and compare date objects
37 |
38 | * * *
39 |
40 | Contribution
41 | ------------
42 |
43 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
44 |
45 | If you will spot any issues please add them in the **Issues** section.
46 |
47 | Credits
48 | -------
49 |
50 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
51 |
52 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
53 |
54 | License
55 | -------
56 |
57 | 
58 |
59 | © 2020 Flairs Sp. z o.o.
60 |
61 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
62 |
63 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
64 |
65 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
66 |
67 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Development tools.md:
--------------------------------------------------------------------------------
1 | Development tools
2 | =================
3 |
4 | [React Native Debugger](/Technical%20Stack/Mobile%20Developer/Development%20tools.md#react-native-debugger)
5 | -----------------------------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to use React/Redux dev tools
8 | * [ ] You know how to use Network Inspect
9 | * [ ] You know how to use debugger with a real device
10 |
11 | [Xcode](/Technical%20Stack/Mobile%20Developer/Development%20tools.md#xcode)
12 | ---------------------------------------------------------------------------
13 |
14 | * [ ] You know how to run app on a real device
15 | * [ ] You know how to run an app on a simulator
16 | * [ ] You know how to manage app schema
17 | * [ ] You know how to change Team, Certificate and Provisioning Profile
18 | * [ ] You know how to build app ready for distribution
19 |
20 | [Android Studio](/Technical%20Stack/Mobile%20Developer/Development%20tools.md#android-studio)
21 | ---------------------------------------------------------------------------------------------
22 |
23 | * [ ] You know how to run app on a real device
24 | * [ ] You know how to run an app on an emulator
25 | * [ ] You know how to manage keystores
26 | * [ ] You know how to build app ready for distribution
27 |
28 | [Multiple enviroments](/Technical%20Stack/Mobile%20Developer/Development%20tools.md#multiple-enviroments)
29 | ---------------------------------------------------------------------------------------------------------
30 |
31 | ### [react-native-config](/Technical%20Stack/Mobile%20Developer/Development%20tools.md#react-native-config)
32 |
33 | * [ ] You know how to configure app to use .env file
34 | * [ ] You know how to overwrite enviroment variables via App Center scripts
35 |
36 | ### [Xcode](/Technical%20Stack/Mobile%20Developer/Development%20tools.md#xcode)
37 |
38 | * [ ] You know how to manage schemas
39 | * [ ] You know how to use proper certificate and provisioning profile
40 |
41 | * * *
42 |
43 | Contribution
44 | ------------
45 |
46 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
47 |
48 | If you will spot any issues please add them in the **Issues** section.
49 |
50 | Credits
51 | -------
52 |
53 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
54 |
55 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
56 |
57 | License
58 | -------
59 |
60 | 
61 |
62 | © 2020 Flairs Sp. z o.o.
63 |
64 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
65 |
66 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
67 |
68 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
69 |
70 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/HTTP.md:
--------------------------------------------------------------------------------
1 | HTTP
2 | ====
3 |
4 | [Requests](/Technical%20Stack/Mobile%20Developer/HTTP.md#requests)
5 | ------------------------------------------------------------------
6 |
7 | * [ ] You know what cookies are
8 | * [ ] You know what HTTP headers are
9 | * [ ] You can explain what CORS is and understand its shortcomings
10 | * [ ] You can explain what HTTP only cookie is
11 | * [ ] You know which parts of the HTTPS request is encrypted
12 | * [ ] You know different values for content-type
header and understand when to use them
13 |
14 | ### [fetch](/Technical%20Stack/Mobile%20Developer/HTTP.md#fetch)
15 |
16 | * [ ] You know how to create an HTTP request using native fetch
[:books:](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch)
17 | * [ ] You know how to set HTTP headers in a request
18 | * [ ] You know how to read HTTP headers sent in a response
19 | * [ ] You know how to handle errors returned in HTTP response [:books:](https://levelup.gitconnected.com/the-definite-guide-to-handling-errors-gracefully-in-javascript-58424d9c60e6)
20 | * [ ] You know how to cancel a request
21 |
22 | ### [Axios](/Technical%20Stack/Mobile%20Developer/HTTP.md#axios)
23 |
24 | * [ ] You know how to use axios to send HTTP request to an API endpoint [:books:](https://github.com/apptension/cra-template-apptension/blob/master/template/src/modules/users/users.sagas.ts)
25 | * [ ] You know how to set HTTP headers in a request
26 | * [ ] You know how to handle errors returned in HTTP response [:books:](https://www.intricatecloud.io/2020/03/how-to-handle-api-errors-in-your-web-app-using-axios/)
27 | * [ ] You can configure axios to have a predefined base url for making requests
28 | * [ ] You know how to read HTTP headers sent in a response
29 | * [ ] You know to add meta data (for example JWT token) to the request headers
30 | * [ ] You know how to transform data with transformResponse
and transformRequest
31 | * [ ] You know how to serealize parameters with paramsSerializer
32 | * [ ] You know how to use interceptors
33 | * [ ] You know how to cancel a request
34 |
35 | [Websockets](/Technical%20Stack/Mobile%20Developer/HTTP.md#websockets)
36 | ----------------------------------------------------------------------
37 |
38 | * [ ] You know how to connect to a websocket connection using either a native configuration or an existing library
39 |
40 | ### [pusher-js](/Technical%20Stack/Mobile%20Developer/HTTP.md#pusher-js)
41 |
42 | * [ ] You know how to configure Pusher JS
43 | * [ ] You know how to subscribe/unsubscribe to a channel
44 | * [ ] You know how to bind/unbind to events
45 |
46 | [Tools](/Technical%20Stack/Mobile%20Developer/HTTP.md#tools)
47 | ------------------------------------------------------------
48 |
49 | ### [humps](/Technical%20Stack/Mobile%20Developer/HTTP.md#humps)
50 |
51 | * [ ] You know how to use humps to camelize or decamelize strings and object's keys
52 | * [ ] You know how to split strings and object's keys containing numerical values
53 |
54 | ### [query-string](/Technical%20Stack/Mobile%20Developer/HTTP.md#query-string)
55 |
56 | * [ ] You know how to parse URLs
57 | * [ ] You know how to create a query string out of an object
58 |
59 | ### [normalizr](/Technical%20Stack/Mobile%20Developer/HTTP.md#normalizr)
60 |
61 | * [ ] You know how to define an object entity schema
62 | * [ ] You know how to normalize data returned from server
63 | * [ ] You can explain what are the benefits of using normalizr library
64 |
65 | ### [http-status-codes](/Technical%20Stack/Mobile%20Developer/HTTP.md#http-status-codes)
66 |
67 | * [ ] You use descriptive status codes instead of number literals
68 |
69 | * * *
70 |
71 | Contribution
72 | ------------
73 |
74 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
75 |
76 | If you will spot any issues please add them in the **Issues** section.
77 |
78 | Credits
79 | -------
80 |
81 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
82 |
83 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
84 |
85 | License
86 | -------
87 |
88 | 
89 |
90 | © 2020 Flairs Sp. z o.o.
91 |
92 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
93 |
94 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
95 |
96 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
97 |
98 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Internationalization.md:
--------------------------------------------------------------------------------
1 | Internationalization
2 | ====================
3 |
4 | [react-intl](/Technical%20Stack/Mobile%20Developer/Internationalization.md#react-intl)
5 | --------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to configure react-intl with react-native
8 | * [ ] You can define multiple languages
9 | * [ ] You can handle language change
10 |
11 | [Native Modules](/Technical%20Stack/Mobile%20Developer/Internationalization.md#native-modules)
12 | ----------------------------------------------------------------------------------------------
13 |
14 | * [ ] You know how to get device locale
15 |
16 | [react-Intl](/Technical%20Stack/Mobile%20Developer/Internationalization.md#react-intl)
17 | --------------------------------------------------------------------------------------
18 |
19 | * [ ] You know and use React-intl components [:books:](https://www.newline.co/@dmitryrogozhny/quick-introduction-to-internationalization-in-react-with-react-intl--13b17de9)
20 | * [ ] You know how to create messages files using defineMessage api [:books:](https://github.com/apptension/cra-template-apptension/blob/master/template/src/routes/home/home.messages.ts)
21 | * [ ] You know how to use useIntl
hook
22 |
23 | [format.js](/Technical%20Stack/Mobile%20Developer/Internationalization.md#format.js)
24 | ------------------------------------------------------------------------------------
25 |
26 | * [ ] You know how to format a message passing values and date-time stamps
27 | * [ ] You know how to pluralize messages based on a passed value
28 |
29 | * * *
30 |
31 | Contribution
32 | ------------
33 |
34 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
35 |
36 | If you will spot any issues please add them in the **Issues** section.
37 |
38 | Credits
39 | -------
40 |
41 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
42 |
43 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
44 |
45 | License
46 | -------
47 |
48 | 
49 |
50 | © 2020 Flairs Sp. z o.o.
51 |
52 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
53 |
54 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
55 |
56 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
57 |
58 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Navigation.md:
--------------------------------------------------------------------------------
1 | Navigation
2 | ==========
3 |
4 | [@react-navigation/native](/Technical%20Stack/Mobile%20Developer/Navigation.md#@react-navigation/native)
5 | --------------------------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to create stack navigator
8 | * [ ] You know how to create tab navigator
9 | * [ ] You know how to create drawer navigator
10 | * [ ] You know how to navigate between screens
11 | * [ ] You know how to pass parameters between screens
12 | * [ ] You know how to create custom screen animation
13 | * [ ] You know how to use navigator listeners
14 | * [ ] You know how to track screens for Analytics
15 | * [ ] You know how to listen screen focus
16 |
17 | * * *
18 |
19 | Contribution
20 | ------------
21 |
22 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
23 |
24 | If you will spot any issues please add them in the **Issues** section.
25 |
26 | Credits
27 | -------
28 |
29 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
30 |
31 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
32 |
33 | License
34 | -------
35 |
36 | 
37 |
38 | © 2020 Flairs Sp. z o.o.
39 |
40 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
41 |
42 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
45 |
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Performance.md:
--------------------------------------------------------------------------------
1 | Performance
2 | ===========
3 |
4 | [JS Engines](/Technical%20Stack/Mobile%20Developer/Performance.md#js-engines)
5 | -----------------------------------------------------------------------------
6 |
7 | ### [Hermes](/Technical%20Stack/Mobile%20Developer/Performance.md#hermes)
8 |
9 | * [ ] You know how to enable Hermes on Android
10 | * [ ] You know profits of using Hermes
11 |
12 | [Monitoring](/Technical%20Stack/Mobile%20Developer/Performance.md#monitoring)
13 | -----------------------------------------------------------------------------
14 |
15 | ### [@react-native-firebase/perf](/Technical%20Stack/Mobile%20Developer/Performance.md#@react-native-firebase/perf)
16 |
17 | * [ ] You can configure Firebase Performance Monitoring
18 | * [ ] You know how to create http metrics
19 | * [ ] You how to create custom traces
20 |
21 | * * *
22 |
23 | Contribution
24 | ------------
25 |
26 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
27 |
28 | If you will spot any issues please add them in the **Issues** section.
29 |
30 | Credits
31 | -------
32 |
33 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
34 |
35 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
36 |
37 | License
38 | -------
39 |
40 | 
41 |
42 | © 2020 Flairs Sp. z o.o.
43 |
44 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
45 |
46 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
47 |
48 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
49 |
50 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Services.md:
--------------------------------------------------------------------------------
1 | Services
2 | ========
3 |
4 | [Apple Developer](/Technical%20Stack/Mobile%20Developer/Services.md#apple-developer)
5 | ------------------------------------------------------------------------------------
6 |
7 | ### [Certificates](/Technical%20Stack/Mobile%20Developer/Services.md#certificates)
8 |
9 | * [ ] You know how to create development certificate
10 | * [ ] You know how to create distribiution certificate
11 |
12 | ### [Keys](/Technical%20Stack/Mobile%20Developer/Services.md#keys)
13 |
14 | * [ ] You know how to create Apple Push Notifications service key
15 |
16 | ### [App IDs](/Technical%20Stack/Mobile%20Developer/Services.md#app-ids)
17 |
18 | * [ ] You can create App identifiers
19 | * [ ] You can define correct App ID Capabilities
20 | * [ ] You can manage app id suffixes
21 |
22 | ### [Provisioning profiles](/Technical%20Stack/Mobile%20Developer/Services.md#provisioning-profiles)
23 |
24 | * [ ] You know how to create proper type of Provisioning Profile regarding the environment
25 | * [ ] You know how to add test devices and assign them to the Provisioning Profile
26 |
27 | [App Store Connect](/Technical%20Stack/Mobile%20Developer/Services.md#app-store-connect)
28 | ----------------------------------------------------------------------------------------
29 |
30 | ### [Testflight](/Technical%20Stack/Mobile%20Developer/Services.md#testflight)
31 |
32 | * [ ] You know how to distribute app via Testflight to the App Store Connect users
33 | * [ ] You know how to distribute app via Testflight to the beta testers
34 | * [ ] You know how to invite testers via invitation code
35 |
36 | ### [Release management](/Technical%20Stack/Mobile%20Developer/Services.md#release-management)
37 |
38 | * [ ] You know how to add a new version of the app and submit it to review
39 |
40 | ### [Store presence](/Technical%20Stack/Mobile%20Developer/Services.md#store-presence)
41 |
42 | * [ ] You can define all the required options to show the app in the App Store
43 |
44 | [Google Play Console](/Technical%20Stack/Mobile%20Developer/Services.md#google-play-console)
45 | --------------------------------------------------------------------------------------------
46 |
47 | ### [Release management](/Technical%20Stack/Mobile%20Developer/Services.md#release-management)
48 |
49 | * [ ] You know how to distribute app via Alpha/Beta enviroment to the beta testers
50 | * [ ] You know how to promote an app to the Production with full/partial roll-out
51 |
52 | ### [Store presence](/Technical%20Stack/Mobile%20Developer/Services.md#store-presence)
53 |
54 | * [ ] You can define all the required options to show the app in the Google Play
55 |
56 | ### [App signing](/Technical%20Stack/Mobile%20Developer/Services.md#app-signing)
57 |
58 | * [ ] You know how to handle App Signing by Google Play
59 |
60 | * * *
61 |
62 | Contribution
63 | ------------
64 |
65 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
66 |
67 | If you will spot any issues please add them in the **Issues** section.
68 |
69 | Credits
70 | -------
71 |
72 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
73 |
74 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
75 |
76 | License
77 | -------
78 |
79 | 
80 |
81 | © 2020 Flairs Sp. z o.o.
82 |
83 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
84 |
85 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
86 |
87 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
88 |
89 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Testing.md:
--------------------------------------------------------------------------------
1 | Testing
2 | =======
3 |
4 | * [ ] You know how to test custom React hooks.
5 | * [ ] You know how to test a selector function.
6 |
7 | [jest](/Technical%20Stack/Mobile%20Developer/Testing.md#jest)
8 | -------------------------------------------------------------
9 |
10 | * [ ] You know how to test components and functions
11 | * [ ] You know how to mock functions and global objects
12 | * [ ] You know how to add snapshot testing
13 | * [ ] You know how to add and configure Jest in the build tools
14 |
15 | [react-testing-library](/Technical%20Stack/Mobile%20Developer/Testing.md#react-testing-library)
16 | -----------------------------------------------------------------------------------------------
17 |
18 | * [ ] You know how to install and configure it in the build tools
19 | * [ ] You know how to query for the component you want to test according to library best practices
20 | * [ ] You know how to mock server's response
21 | * [ ] You know how to test the redux store actions
22 |
23 | [jest-styled-components](/Technical%20Stack/Mobile%20Developer/Testing.md#jest-styled-components)
24 | -------------------------------------------------------------------------------------------------
25 |
26 | * [ ] You can install and configure it in a project
27 | * [ ] You can test if an HTML node has the proper style
28 | * [ ] You can create snapshots with readable classes and proper styles properties
29 |
30 | [redux-saga-test-plan](/Technical%20Stack/Mobile%20Developer/Testing.md#redux-saga-test-plan)
31 | ---------------------------------------------------------------------------------------------
32 |
33 | * [ ] You know how to test when an action has been put for processing
34 | * [ ] You know how to provide an initial state for a saga execution
35 | * [ ] You know how to check if the expected action has been called
36 |
37 | [Mocking](/Technical%20Stack/Mobile%20Developer/Testing.md#mocking)
38 | -------------------------------------------------------------------
39 |
40 | ### [nock](/Technical%20Stack/Mobile%20Developer/Testing.md#nock)
41 |
42 | * [ ] You know how to mock API calls with or without payload
43 | * [ ] You know how to set configuration header's and meta data
44 | * [ ] You can write assertions to check if API endpoint has been called with proper data
45 |
46 | ### [mockdate](/Technical%20Stack/Mobile%20Developer/Testing.md#mockdate)
47 |
48 | * [ ] You know how to mock Date object to return specific value in test environment
49 |
50 | * * *
51 |
52 | Contribution
53 | ------------
54 |
55 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
56 |
57 | If you will spot any issues please add them in the **Issues** section.
58 |
59 | Credits
60 | -------
61 |
62 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
63 |
64 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
65 |
66 | License
67 | -------
68 |
69 | 
70 |
71 | © 2020 Flairs Sp. z o.o.
72 |
73 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
74 |
75 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
76 |
77 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
78 |
79 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Tools.md:
--------------------------------------------------------------------------------
1 | Tools
2 | =====
3 |
4 | [Design](/Technical%20Stack/Mobile%20Developer/Tools.md#design)
5 | ---------------------------------------------------------------
6 |
7 | ### [Figma](/Technical%20Stack/Mobile%20Developer/Tools.md#figma)
8 |
9 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project [:books:](https://www.figma.com/resources/assets/developer-onboarding-guide/)
10 | * [ ] You know how to extract image assets from a design project
11 | * [ ] You know how to extract vector icon asset from a project
12 |
13 | ### [Zeplin](/Technical%20Stack/Mobile%20Developer/Tools.md#zeplin)
14 |
15 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project
16 | * [ ] You know how to extract image assets from a design project
17 | * [ ] You know how to extract vector icon asset from a project
18 |
19 | ### [Invision](/Technical%20Stack/Mobile%20Developer/Tools.md#invision)
20 |
21 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project
22 | * [ ] You know how to extract image assets from a design project
23 | * [ ] You know how to extract vector icon asset from a project
24 |
25 | ### [Adobe XD](/Technical%20Stack/Mobile%20Developer/Tools.md#adobe-xd)
26 |
27 | * [ ] You know how to extract style values (geometry, colours, fonts, etc.) from a design project
28 | * [ ] You know how to extract image assets from a design project
29 | * [ ] You know how to extract vector icon asset from a project
30 |
31 | * * *
32 |
33 | Contribution
34 | ------------
35 |
36 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
37 |
38 | If you will spot any issues please add them in the **Issues** section.
39 |
40 | Credits
41 | -------
42 |
43 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
44 |
45 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
46 |
47 | License
48 | -------
49 |
50 | 
51 |
52 | © 2020 Flairs Sp. z o.o.
53 |
54 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
55 |
56 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
57 |
58 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
59 |
60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Technical Stack/Mobile Developer/Versioning.md:
--------------------------------------------------------------------------------
1 | Versioning
2 | ==========
3 |
4 | [react-native-version](/Technical%20Stack/Mobile%20Developer/Versioning.md#react-native-version)
5 | ------------------------------------------------------------------------------------------------
6 |
7 | * [ ] You know how to run script updating an app version and a build version
8 |
9 | * * *
10 |
11 | Contribution
12 | ------------
13 |
14 | We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a **pull request** which will be later validated by our technical team and added to the main docs.
15 |
16 | If you will spot any issues please add them in the **Issues** section.
17 |
18 | Credits
19 | -------
20 |
21 | This page is maintained by the 🔹 [Flairs.ai](http://Flairs.ai) and 🇵🇱 [Apptension](https://apptension.com) teams.
22 |
23 | If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 [contact@flairs.ai](mailto:contact@flairs.ai)
24 |
25 | License
26 | -------
27 |
28 | 
29 |
30 | © 2020 Flairs Sp. z o.o.
31 |
32 | Built and maintained by [Flairs](https://www.flairs.ai) and [Apptension](https://apptension.com).
33 |
34 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
35 |
36 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
37 |
38 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/images/course-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apptension/developer-handbook/e4e90ea4d1bfb61bd86675786de9dded47bc4d79/images/course-banner.png
--------------------------------------------------------------------------------
/images/dev-handbook-schema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apptension/developer-handbook/e4e90ea4d1bfb61bd86675786de9dded47bc4d79/images/dev-handbook-schema.png
--------------------------------------------------------------------------------