From 485147cb3f891df552e7d2c340729edd4fe692e4 Mon Sep 17 00:00:00 2001
From: KowanChan <44438611+KowanChan@users.noreply.github.com>
Date: Thu, 2 Mar 2023 19:34:26 -0500
Subject: [PATCH 001/206] Update User_Experience.md
Added user experience fields. Examples, related, and just an overview
---
Topics/User_Experience.md | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Topics/User_Experience.md b/Topics/User_Experience.md
index bff63d6b8..10da6f3f6 100644
--- a/Topics/User_Experience.md
+++ b/Topics/User_Experience.md
@@ -1,2 +1,28 @@
## Resources for User Experience domain
+### Overview
+
+User experience is a large and broad topic. It covers the overall experience of the user and how they interact with software systems and applications. The confusing part is that UI and UX design, while related can also be totally different. For example, UI could be how the interface is designed where UX is more about how users interact with said design.
+
+There are many notable links differentiating the two areas. Here is one of the realted websites.
+
+- [The Definition of User Experience](https://www.nngroup.com/articles/definition-user-experience/)
+
+### Areas of User Experience
+
+User expereience is not easy to define. There are many areas that contribute to User Expereince but there is not one answer. The following are a few examples.
+
+___Button Design___
+- [Amazon Button](https://medium.com/@cccalibour/how-ux-design-makes-a-difference-amazons-continue-button-901618a8b00e): The design of butt
+ons that improves user experience by simplifying process.
+
+___Established Norms___
+- [Scrolls On Socials](https://forgeandsmith.com/blog/scrolling-vs-clicking-whats-the-preferred-user-experience/): Users are conditioned for scrolling, and now every new social media app conforms to scrolling.
+
+___Color Theory___
+- [Colors Influence Choice](https://usabilitygeek.com/colour-user-experience-psychology/#:~:text=Colour%20plays%20a%20crucial%20role,and%20identified%20with%20your%20industry.): Users are shown certain colors to enforce actions. For example, red is commonly linked to agressive or bad emotions and as such can be used as a cancel to dissuade people from refunding items.
+
+
+### Related Resources
+
+There are many courses related to User Experience. This includes the U of T Course [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) which is highly reccomended if interested in this topic.
From 4eaa1e611ac203d044114ddf09b524127dd2aee0 Mon Sep 17 00:00:00 2001
From: KowanChan <44438611+KowanChan@users.noreply.github.com>
Date: Thu, 2 Mar 2023 21:23:12 -0500
Subject: [PATCH 002/206] Update User_Experience.md
Fixed spelling mistakes
---
Topics/User_Experience.md | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/Topics/User_Experience.md b/Topics/User_Experience.md
index 10da6f3f6..9048d4a06 100644
--- a/Topics/User_Experience.md
+++ b/Topics/User_Experience.md
@@ -2,15 +2,14 @@
### Overview
-User experience is a large and broad topic. It covers the overall experience of the user and how they interact with software systems and applications. The confusing part is that UI and UX design, while related can also be totally different. For example, UI could be how the interface is designed where UX is more about how users interact with said design.
-
-There are many notable links differentiating the two areas. Here is one of the realted websites.
+User experience is a large and broad topic. It covers the overall experience of the user and how they interact with software systems and applications. The confusing part is that UI and UX design, while related can also be totally different. For example, UI could be how the interface is designed whereas UX is more about how users interact with the said design.
+There are many notable links differentiating the two areas. Here is one of the related websites.
- [The Definition of User Experience](https://www.nngroup.com/articles/definition-user-experience/)
### Areas of User Experience
-User expereience is not easy to define. There are many areas that contribute to User Expereince but there is not one answer. The following are a few examples.
+User experience is not easy to define. There are many areas that contribute to User experience but there is not one answer. The following are a few examples.
___Button Design___
- [Amazon Button](https://medium.com/@cccalibour/how-ux-design-makes-a-difference-amazons-continue-button-901618a8b00e): The design of butt
@@ -23,6 +22,6 @@ ___Color Theory___
- [Colors Influence Choice](https://usabilitygeek.com/colour-user-experience-psychology/#:~:text=Colour%20plays%20a%20crucial%20role,and%20identified%20with%20your%20industry.): Users are shown certain colors to enforce actions. For example, red is commonly linked to agressive or bad emotions and as such can be used as a cancel to dissuade people from refunding items.
-### Related Resources
+### Helpful Courses
There are many courses related to User Experience. This includes the U of T Course [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) which is highly reccomended if interested in this topic.
From b62704454a11f88c26576c2989e4d4a60a5d60aa Mon Sep 17 00:00:00 2001
From: KowanChan <44438611+KowanChan@users.noreply.github.com>
Date: Thu, 2 Mar 2023 21:24:25 -0500
Subject: [PATCH 003/206] Update README.md
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 17d8a6ae1..5e57c5c01 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,9 @@ Potential Topics--
- User Experience
+ 1. Overview
+ 2. Areas of User Experience
+ 3. Helpful Courses
- Product Management
- Other useful resources
-- Teamwork
\ No newline at end of file
+- Teamwork
From ec9626258be2b80bb3ee5d84148d6f66756aff38 Mon Sep 17 00:00:00 2001
From: KowanChan <44438611+KowanChan@users.noreply.github.com>
Date: Thu, 2 Mar 2023 21:27:44 -0500
Subject: [PATCH 004/206] Update User_Experience.md
Added explanation to helpful courses section
---
Topics/User_Experience.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Topics/User_Experience.md b/Topics/User_Experience.md
index 9048d4a06..30f754472 100644
--- a/Topics/User_Experience.md
+++ b/Topics/User_Experience.md
@@ -24,4 +24,4 @@ ___Color Theory___
### Helpful Courses
-There are many courses related to User Experience. This includes the U of T Course [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) which is highly reccomended if interested in this topic.
+There are many courses related to User Experience. This includes the U of T Course [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) which is highly reccomended if interested in this topic. [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) expands on the work done before coding projects. For example, one of the projects is testing how users would interact with a prototype of a UI and modifying it so that the UX is better for the user.
From b6c50a63958f76d3d8a9dd1d1c044520b5433145 Mon Sep 17 00:00:00 2001
From: KowanChan <44438611+KowanChan@users.noreply.github.com>
Date: Thu, 2 Mar 2023 21:29:31 -0500
Subject: [PATCH 005/206] Update User_Experience.md
---
Topics/User_Experience.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Topics/User_Experience.md b/Topics/User_Experience.md
index 30f754472..da18eefba 100644
--- a/Topics/User_Experience.md
+++ b/Topics/User_Experience.md
@@ -9,7 +9,7 @@ There are many notable links differentiating the two areas. Here is one of the r
### Areas of User Experience
-User experience is not easy to define. There are many areas that contribute to User experience but there is not one answer. The following are a few examples.
+User Experience is not easy to define. There are many areas that contribute to User Experience but there is not one answer. The following are a few examples.
___Button Design___
- [Amazon Button](https://medium.com/@cccalibour/how-ux-design-makes-a-difference-amazons-continue-button-901618a8b00e): The design of butt
@@ -19,7 +19,7 @@ ___Established Norms___
- [Scrolls On Socials](https://forgeandsmith.com/blog/scrolling-vs-clicking-whats-the-preferred-user-experience/): Users are conditioned for scrolling, and now every new social media app conforms to scrolling.
___Color Theory___
-- [Colors Influence Choice](https://usabilitygeek.com/colour-user-experience-psychology/#:~:text=Colour%20plays%20a%20crucial%20role,and%20identified%20with%20your%20industry.): Users are shown certain colors to enforce actions. For example, red is commonly linked to agressive or bad emotions and as such can be used as a cancel to dissuade people from refunding items.
+- [Colors Influence Choice](https://usabilitygeek.com/colour-user-experience-psychology/#:~:text=Colour%20plays%20a%20crucial%20role,and%20identified%20with%20your%20industry.): Users are shown certain colors to enforce actions. For example, red is commonly linked to aggressive or bad emotions and as such can be used as a cancel to dissuade people from refunding items.
### Helpful Courses
From dc59e63691d03475ed939c3517d8fd6dcf5c96a8 Mon Sep 17 00:00:00 2001
From: THLi3 <31786494+THLi3@users.noreply.github.com>
Date: Sun, 5 Mar 2023 21:19:48 -0500
Subject: [PATCH 006/206] Added useful React resources with small description
for each of them
---
Topics/Tech_Stacks.md | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md
index 9e3921642..85d5f6b03 100644
--- a/Topics/Tech_Stacks.md
+++ b/Topics/Tech_Stacks.md
@@ -1 +1,33 @@
## Tech Stacks
+
+### React Info and Resources
+
+React is a Javascript library used to build user interfaces. As such, you're going to have to know HTML, CSS and Javascript in order to learn React. These frontend challenges for HTML, CSS and JavaScript will help you review while making projects as well. \
+https://www.frontendmentor.io/
+
+
+Basic React tutorial provided by the official React website. This tutorial will guide you through a very basic tutorial that you can do straight from your browser. \
+https://reactjs.org/tutorial/tutorial.html
+
+
+React tutorial by MDN Web Docs. \
+https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started
+
+
+Javascript frameworks tutorial provided by Microsoft. \
+https://learn.microsoft.com/en-us/windows/dev-environment/javascript/
+
+
+1 hour in depth tutorials about React. These Youtube crash course provides a great in depth look at React and the various important components that you will be using most often. \
+https://www.youtube.com/watch?v=w7ejDZ8SWv8 \
+https://www.youtube.com/watch?v=b9eMGE7QtTk
+
+
+Online development environment to try React out in (Among other frontend tools). Great for testing the waters with React to see if it will be something you want to learn or not. \
+https://codepen.io/
+
+
+Host your React websites straight from your Github repo. Website hosting is fairly expensive, so this is here as a free, fairly good alternative for website deployment. \
+https://pages.github.com/
+
+
From 69882623ecc82ae98bc0de1777e403a099aab09c Mon Sep 17 00:00:00 2001
From: IbrahimBess <70774207+IbrahimBess@users.noreply.github.com>
Date: Sun, 5 Mar 2023 22:48:59 -0500
Subject: [PATCH 007/206] Nuxt 3 and Tailwindcss by Ibrahim bess
---
Topics/Tech_Stacks.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md
index 9e3921642..321d1263f 100644
--- a/Topics/Tech_Stacks.md
+++ b/Topics/Tech_Stacks.md
@@ -1 +1,14 @@
## Tech Stacks
+
+
+## Agile is a task management methodology that is widely used in modern software development. It emphasizes flexibility, collaboration, and continuous improvement. Agile methodology focuses on delivering software features in small increments, which are known as sprints or iterations. At the start of each sprint, the team identifies the tasks that need to be completed and assigns them to team members. The team then works together to complete the tasks within the sprint period. The detailed executions may differ in different teams and projects, but there are several key principles to follow: 1.Prioritizing tasks based on customer value: Agile task management focuses on delivering the highest value features first, rather than trying to complete all tasks at once. 2.Collaboration and communication: Agile emphasizes close collaboration between team members, with frequent meetings and communication to ensure that everyone is on the same page. 3.Iterative development: Agile tasks are completed in small iterations(sprints), allowing for continuous feedback and improvement. 4.Flexibility: Agile recognizes that requirements and priorities are subject to be changed, and allows for adjustments throughout the project. The number of teams practicing agile in organizations has grown significantly in the past years, and agile knowledge has become a factor of consideration in recruiting processes. To learn more about Agile in text: https://www.tutorialspoint.com/agile/index.htm To learn more about Agile in video: https://www.youtube.com/watch?v=wmJfx7zAfQI&feature=youtu.be
+
+Waterfall is a traditional project management methodology that involves a linear, sequential approach to task management. In this approach, tasks are completed in a specific order, with each task depending on the completion of the previous task. While it is very useful for projects with well-defined requirements and a clear plan, it is much less flexible than Agile, and is also less popular in modern software development. To learn more about Waterfall in text:https://business.adobe.com/blog/basics/waterfall To learn more about Waterfall in video:https://www.youtube.com/watch?v=cYzuzwQEZCg Learn How to Create a Nuxt3 App
+If you are looking for tutorials or documentation on creating a Nuxt3 application, be aware that many resources actually teach Nuxt2. It is important to note that Nuxt3 installation and syntax differ significantly from Nuxt2. As I faced this challenge myself, I would like to share a helpful YouTube tutorial that provides step-by-step instructions for creating a Nuxt3 app.
+
+The tutorial link is: https://www.youtube.com/watch?v=hj3NNlTqIJg&list=PL8HkCX2C5h0XT3xWYn71TlsAAo0kizmVc&index=1
+
+Additionally, you can access further support options, such as a Discord server, by visiting this page: https://nuxt.com/support/solutions.
+
+It's worth mentioning that due to the confusion between Nuxt2 and Nuxt3 documentations online, Nuxt2 has more support and answered questions than Nuxt3. Therefore, you may opt to use Nuxt2 instead. However, keep in mind that installing Nuxt2 takes a longer time, so you should be patient.
+
+If you want to add the Tailwind CSS library to your Nuxt3 app, please follow the instructions in this link: https://tailwindcss.com/docs/guides/nuxtjs#3.
+Make sure to select Nuxt3 instead of Nuxt2.
From 61814701d031624da1cf642c4320347c773035b6 Mon Sep 17 00:00:00 2001
From: THLi3 <31786494+THLi3@users.noreply.github.com>
Date: Sun, 5 Mar 2023 23:20:31 -0500
Subject: [PATCH 008/206] Added more resources, split resources and information
section
---
Topics/Tech_Stacks.md | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md
index 85d5f6b03..e691de71f 100644
--- a/Topics/Tech_Stacks.md
+++ b/Topics/Tech_Stacks.md
@@ -1,8 +1,12 @@
## Tech Stacks
-### React Info and Resources
+### React Overview
+React is a Javascript library used to build user interfaces. As such, you're going to have to know HTML, CSS and Javascript in order to learn React.
+It's ease of use and popularity comes from how little you actually have to code. Easily applicable for any frontend interface, if you're going to use any library/framework for frontend development, React is the safest option.
-React is a Javascript library used to build user interfaces. As such, you're going to have to know HTML, CSS and Javascript in order to learn React. These frontend challenges for HTML, CSS and JavaScript will help you review while making projects as well. \
+### React Resources
+
+These frontend challenges for HTML, CSS and JavaScript will help you review core skills while also making interesting projects as well. \
https://www.frontendmentor.io/
From 80e70fe0695483fd2c9f5647af6092f20c3f90bf Mon Sep 17 00:00:00 2001
From: KowanChan <44438611+KowanChan@users.noreply.github.com>
Date: Tue, 7 Mar 2023 13:39:58 -0500
Subject: [PATCH 009/206] Update Topics/User_Experience.md
spelling mistake fixed
Co-authored-by: Lucia <37385317+lmg8@users.noreply.github.com>
---
Topics/User_Experience.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Topics/User_Experience.md b/Topics/User_Experience.md
index da18eefba..657c85853 100644
--- a/Topics/User_Experience.md
+++ b/Topics/User_Experience.md
@@ -24,4 +24,4 @@ ___Color Theory___
### Helpful Courses
-There are many courses related to User Experience. This includes the U of T Course [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) which is highly reccomended if interested in this topic. [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) expands on the work done before coding projects. For example, one of the projects is testing how users would interact with a prototype of a UI and modifying it so that the UX is better for the user.
+There are many courses related to User Experience. This includes the U of T Course [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) which is highly recommended if interested in this topic. [The Design of Interactive Computational Media](https://artsci.calendar.utoronto.ca/course/csc318h1) expands on the work done before coding projects. For example, one of the projects is testing how users would interact with a prototype of a UI and modifying it so that the UX is better for the user.
From 5201144e0ea64654b3773573be6b4ae3a653497e Mon Sep 17 00:00:00 2001
From: Amir Alleyne <80076400+amir-alleyne@users.noreply.github.com>
Date: Wed, 8 Mar 2023 21:07:25 -0500
Subject: [PATCH 010/206] Provided information on Task Management Software and
Jira
- Provided a brief summary of the importance of task management software
- Talked about how it is used
- Gave an example about a very popular task management software product Jira
---
Topics/Teamwork.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Topics/Teamwork.md b/Topics/Teamwork.md
index e68acdc11..f1f9abf91 100644
--- a/Topics/Teamwork.md
+++ b/Topics/Teamwork.md
@@ -1 +1,7 @@
## Resources for Teamwork
+
+# Importance of Task Management Software
+Task management software is essential for organizations and individuals to improve their productivity, efficiency, and organization. With the increasing complexity of modern work environments, it is easy to get overwhelmed by multiple tasks and projects. Task management software provides a centralized platform to create, organize, and track tasks and projects. It allows individuals and teams to prioritize tasks, set deadlines, assign tasks to team members, and track progress in real-time. This software also helps in preventing the duplication of efforts and ensures that everyone is on the same page. Task management software also provides insights into the overall progress of projects, enabling teams to make informed decisions and adjust their strategies if necessary. In summary, task management software is crucial in helping individuals and teams manage their workload and achieve their goals effectively.
+
+# Examples of Common Task Management Software:
+Jira is a software development tool that allows teams to plan, track, and manage their projects effectively. It is a popular tool used by agile teams to improve their collaboration, visibility, and productivity. With Jira, teams can create tasks, assign them to team members, and track their progress in real-time. Jira also provides features such as dashboards, agile boards, and customizable workflows that help teams stay organized and focused on their goals. In addition, Jira integrates with other software development tools such as GitHub, Bitbucket, and Confluence, making it a powerful tool for software development teams.
From 0ab0fd518ce13c9b0e11318d7be9e9ca00db9822 Mon Sep 17 00:00:00 2001
From: Amir Alleyne <80076400+amir-alleyne@users.noreply.github.com>
Date: Thu, 9 Mar 2023 09:30:16 -0500
Subject: [PATCH 011/206] Information and Resources on Task Management Software
- Provided information about the general importance of task management software
- Gave examples on how to use the software
- Briefly introduced Jira and its potential use cases
---
Topics/Teamwork.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Topics/Teamwork.md b/Topics/Teamwork.md
index f1f9abf91..d1bea7ffd 100644
--- a/Topics/Teamwork.md
+++ b/Topics/Teamwork.md
@@ -5,3 +5,9 @@ Task management software is essential for organizations and individuals to impro
# Examples of Common Task Management Software:
Jira is a software development tool that allows teams to plan, track, and manage their projects effectively. It is a popular tool used by agile teams to improve their collaboration, visibility, and productivity. With Jira, teams can create tasks, assign them to team members, and track their progress in real-time. Jira also provides features such as dashboards, agile boards, and customizable workflows that help teams stay organized and focused on their goals. In addition, Jira integrates with other software development tools such as GitHub, Bitbucket, and Confluence, making it a powerful tool for software development teams.
+
+Resources for Jira:
+
+Beginner tutorial for Jira - https://www.youtube.com/watch?v=nHuhojfjeUY
+
+Must Know Jira features - https://www.youtube.com/watch?v=issdcnErAU8
From 7183cbc2c0c8491f9d0e41d5a1b2b1c6065b87c4 Mon Sep 17 00:00:00 2001
From: IbrahimBess <70774207+IbrahimBess@users.noreply.github.com>
Date: Thu, 9 Mar 2023 16:54:58 -0500
Subject: [PATCH 012/206] Adding "why Nuxt?"
---
Topics/Tech_Stacks.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md
index 321d1263f..a0f7ac226 100644
--- a/Topics/Tech_Stacks.md
+++ b/Topics/Tech_Stacks.md
@@ -12,3 +12,10 @@ It's worth mentioning that due to the confusion between Nuxt2 and Nuxt3 document
If you want to add the Tailwind CSS library to your Nuxt3 app, please follow the instructions in this link: https://tailwindcss.com/docs/guides/nuxtjs#3.
Make sure to select Nuxt3 instead of Nuxt2.
+
+## Why Nuxt?
+
+Nuxt.js provides server-side rendering, automatic routing, code organization, and pre-configured plugins. It also has a built-In static site generation.
+Nuxt 3 comes with several performance improvements, including faster server startup time and smaller bundle sizes.
+I think it is a nice tool, especially the auto routing and how flexible you can reuse the components, but it still lacks comprehensive documentation.
+
From a6aefb38f739888069cd9324ace5438e24837b3f Mon Sep 17 00:00:00 2001
From: IbrahimBess <70774207+IbrahimBess@users.noreply.github.com>
Date: Thu, 9 Mar 2023 16:56:38 -0500
Subject: [PATCH 013/206] adding Nuxt3 to Tech stacks.
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 17d8a6ae1..940ce788e 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@ Following files are present in this directory. You may contribute to any of thes
Potential Topics--
- Tech stacks
+ 1. Nuxt3.
- Software Engineering
1. Methodologies & Frameworks
1. Agile
@@ -60,4 +61,4 @@ Potential Topics--
- User Experience
- Product Management
- Other useful resources
-- Teamwork
\ No newline at end of file
+- Teamwork
From dea2c7ea3ae4783e15dd7e1183fe20a498d7f9b1 Mon Sep 17 00:00:00 2001
From: tshafiq
|
|
|
+| Price of Hosting (Price Charged for Hosting Time) |
|
|
|
+| Price of Storage (Price Charged for Hosting Storage) |
|
| Free until 100GB of total storage |
+| Security |
|
|
|
+| Longevity |
|
|
|
+| Best Features |
|
|
|
+| Pain Points |
|
|
|
+
+### How to Decide on the Right Hosting Service
+
+Now that you have enough knowledge to know the pros and cons behind each hosting service, it is now time to proceed with one method. This section of the article will help you decide which hosting service is right for you.
+
+The following is a list of suggested steps and conversations you should have with both your team and your partner before deciding on which hosting platform to proceed with:
+
+1) Discuss with your partner if they would be willing to pay for hosting, especially for security reasons (how much are they willing to pay? Is that enough for a domain to host on AWS over HTTPS? Or can they pay enough to host on Railway provided you are not limited by their storage limit?)
+2) If you are using Django as a backend framework, discuss with the Frontend team on which web application protocol you will communicate over (HTTP or HTTPS?)
+3) Discuss the benefits and downfalls of each service with your DevOps/Backend team to come to a consensus on which platform you want to proceed with (are you using SQLite or another database service such as MongoDB? Can you expect the code to grow beyond what Vercel has? Can you expect your SQLite database to go beyond Railway’s storage limits? Are you willing to put in the time and effort to learn Docker and AWS the right way?)
+
+## Deploying a Django Project on AWS
+
+### EC2 vs. Elastic Beanstalk (EB)
+
+
+- AWS itself has two main methods that are the most favourable for beginners to deploy Django projects on. In this part of the article we will discuss the differences between the two to help you decide which one you want to proceed with (should you have decided on moving forward with AWS from the last section).
+
+- The first key difference to note is the potential for automating your workflow. EB is known to be much more user friendly and serves much more as a personal deployment option rather than a developer’s choice. The main reasoning behind this is due to its inbuilt nature that favours a local repository rather than a group (GitHub) repository with proper workflow capabilities. On the other hand, EC2 itself does much more natively support GitHub repositories, making it a better option (for the general case).
+
+- The second distinction is in their setup and deployment process. EC2 is much more hands on, and should you want your application to be accessible without your computer constantly having an AWS console open in a browser tab, it will require you to learn NGINX and Docker. Conversely, EB is easier to get started with, as it abstracts away much of the development process that would otherwise be required to set up an EC2 instance (e.g. configurations, load balancers).
+
+- While both EC2 and EB have their own characteristics, it is important to note that the previously mentioned limitations to AWS applies to both of these.
+
+### Deploying on AWS: The Hard Way (EC2)
+
+- To deploy on EC2, the following video is highly recommended. Note that the following assumptions are made throughout this video and it ensure you meet them before starting the tutorial:
+
+ 1) You have a GitHub repository with your Django project on it
+ 2) You have a GitHub Token that authorises the sharing and deploying of that repository, [click here for more information on how to set this up](https://docs.github.com/en/enterprise-server@3.4/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
+ 3) You have an AWS account, click here for more information on how to set this up
+ 4) Install `pip` and `virtualenv` before you begin, [click here for more information on how to set this up](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)
+
+- Additionally, the following are tips that are recommended to encounter as little debugging as possible:
+
+ 1) Make your root directory for the project one level higher than the project files, as seen below:
+ 2) When making anything relating to your EC2 instance, ensure you note down the region of the AWS server you are working on (seen in the top right corner of the screen)
+ 3) You can generate a `requirements.txt` file after activating your virtual environment by using the `pipreqs` package, click here to learn more about `pipreqs`
+ 4) If you are encountering CORS/CSRF errors, [click here for potential solutions](https://stackoverflow.com/questions/38841109/csrf-validation-does-not-work-on-django-using-https)
+
+[](https://www.youtube.com/watch?v=7O1H9kr1CsA)
+
+### Deploying on AWS: The Easy Way (EB)
+
+- To deploy on EB, the following video is highly recommended. Note that the following assumptions are made throughout this video and it ensure you meet them before starting the tutorial:
+
+ 1) You have an AWS account, click here for more information on how to set this up
+ 2) Install `pip` and `virtualenv` before you begin, [click here for more information on how to set this up](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)
+
+- Additionally, the following are tips that are recommended to encounter as little debugging as possible:
+
+ 1) When making anything relating to your EC2 instance, ensure you note down the region of the AWS server you are working on (seen in the top right of the screen)
+ 2) After making and activating your virtual environment, ensure you install `gunicorn` by running `pip install gunicorn` within the terminal
+ 3) You may need to set a third line on your `./ebextenstions/django.config` to the following line: `WSGIPath:
|
|
|
| Price of Hosting (Price Charged for Hosting Time) |
|
|
|
-| Price of Storage (Price Charged for Hosting Storage) |
|
| Free until 100GB of total storage |
+| Price of Storage (Price Charged for Hosting Storage) |
|
|
|
| Security |
|
|
|
| Longevity |
|
|
|
| Best Features |
|
|
|
From 1620686db02ebb2bb8a3f42a772913c9e47e53d3 Mon Sep 17 00:00:00 2001
From: tshafiq
|
|
|
| Price of Hosting (Price Charged for Hosting Time) |
|
|
|
| Price of Storage (Price Charged for Hosting Storage) |
|
|
|
-| Security |
|
|
|
+| Security |
|
|
|
| Longevity |
|
|
|
| Best Features |
|
|
|
| Pain Points |
|
|
|
From 2bf8413d8674e007cf375d1ecf4a63da3d59602a Mon Sep 17 00:00:00 2001
From: JustinAlianto <63857586+JustinAlianto@users.noreply.github.com>
Date: Sat, 18 Mar 2023 02:12:41 -0400
Subject: [PATCH 027/206] Creating a new folder for Git-related discussions
The file Git_Workflows.md explains what Git Workflows are and a brief summary of the variations of Git Workflows
---
Topics/Software_Tools/Git/Git_Workflows.md | 63 ++++++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 Topics/Software_Tools/Git/Git_Workflows.md
diff --git a/Topics/Software_Tools/Git/Git_Workflows.md b/Topics/Software_Tools/Git/Git_Workflows.md
new file mode 100644
index 000000000..94ec02cb8
--- /dev/null
+++ b/Topics/Software_Tools/Git/Git_Workflows.md
@@ -0,0 +1,63 @@
+# Git Workflows
+
+## Resources for Git Workflows
+* [5 Different Git Workflows](https://medium.com/javarevisited/5-different-git-workflows-50f75d8783a7)
+* [5 Git Workflows to Improve Development](https://rovitpm.com/5-git-workflows-to-improve-development/)
+* [Comparing Workflows](https://www.atlassian.com/git/tutorials/comparing-workflows)
+
+## What are Git Workflows?
+Git workflows are different strategies that project development teams can utilize and emulate to collaborate on a project while leveraging [Git as their version control system](https://www.knowledgehut.com/tutorials/git-tutorial/introduction-to-git). It is extremely critical for any team to be able to build something together without disrupting the team’s codebase.
+
+A successful Git workflow integrates the consideration of several factors such as the team culture, the project scalability, the team’s [release schedules](https://asana.com/resources/release-management), the team size, the easiness to fix mistakes and [merge conflicts](https://www.simplilearn.com/tutorials/git-tutorial/merge-conflicts-in-git), etc.
+
+The following are the most common workflows that have been used.
+
+## Variations of Git Workflows:
+
+### 1. Centralized (Basic) Workflow
+As the name suggests, there is one repository with only one central branch, or the “master” branch. Hence, this workflow blends the staging and production environment into just 1 branch. Each developer clones this central repository to their local machine and makes changes locally. When they are ready to push their changes, they commit them to their local branch and then push them to the “master” branch directly. Other developers can then pull these changes from “master” to their own local machines.
+
+[Example of a Centralized Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows#centralized-workflow)
+
+**Pros**: Simple, straightforward
+
+**Cons**: High likelihood of merge conflicts when multiple programmers are working on the same files simultaneously, difficult to scale up, difficult to add complexity, difficult to maintain code cleanliness
+
+**When to Use**: Small teams, simple projects with minimal collaboration required.
+
+### 2. Feature Branch Workflow
+With this workflow, developers create separate branches from the “master” branch for separate new features. This “master” branch still serves as the staging and production environment. As developers work on the features, they can make changes and commit to these separate feature branches individually. Once a feature is complete, the developers can create a pull request to merge with the “master” branch again. These pull requests will be reviewed by other developers who can provide feedback and make suggestions before the changes are approved and merged.
+
+[Example of a Feature Branch Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow)
+
+**Pros**: Easier collaboration, reduces risk or merge conflicts, still relatively simple, “master” branch should not contain broken code
+
+**Cons**: Requires discipline to manage and review feature branches correctly, not recommended if various versions of production or release plans are demanded, production code (the code in the “master” branch) can turn unstable
+
+**When to Use**: Ideal for multiple developers to work on numerous features without disturbing the main codebase.
+
+### 3. Gitflow Workflow (Most Common)
+This workflow is the combination of the feature branch workflow with an additional “develop” branch as well as smaller release branches and hot-fix branches. With the “develop” branch, that is created from the “master” branch, it represents the staging environment, while the “master” branch serves as the stable production environment.
+
+Here, developers will create specific branches from the “develop” branch. These specific branches include the feature branches that we discussed previously. Once the “develop” branch has acquired enough features for a release, release branches are forked off the “develop” branch to finalize documentation, bug fixes, and other tasks related to this release only. No new features are made in these release branches. Once ready, these release branches will be merged into both the “master” branch and the “develop” branch with version numbers tagged.
+
+There also exist hot-fix branches, which are the only branches forked off the “master” branch. These branches are utilized to quickly patch production releases without disrupting other branches’ workflow. Once done, these branches are also merged into both the “master” branch and the “develop” branch with updated version numbers tagged too.
+
+[Example of a Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)
+
+**Pros**: Reduces risk of introducing bugs to the stable main codebase, allows for release plans as well as multiple versions in production, flexibility in managing releases (teams can polish current release and work on new features for the next release simultaneously) and hotfixes, structured
+
+**Cons**: More complex, requires discipline to follow the rules and structure of the workflow, releases cannot be done quickly, multiple iterations of checking and testing can slow the building process down
+
+**When to Use**: Ideal for larger teams or more complex projects where a structured approach to development is needed.
+
+### 4. Forking Workflow
+Used usually for public open-source projects, this workflow doesn’t have a central server-side repository. Developers will have to fork off the original and official server-side repository, giving themselves their own server-side repository. They will then clone the repository into their local machines to work on the projects. Features and changes are then committed to their own server-side repository. Developers can then make pull requests to the official repository for the manager of the official repository to review, suggest, and approve.
+
+[Example of a Forking Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow)
+
+**Pros**: Easy for multiple developers to contribute to the same project, reduces the risk of introducing bugs into the official repository
+
+**Cons**: High fragmentation since there are no collaboration between developers, possible duplicate efforts, likelihood of excessive contributions for the original owner(s) of the official repository to maintain and keep track
+
+**When to Use**: Ideal for open source projects where there are many contributors who may not be part of the same organization or team, and where there is a need for strict access controls or a clear separation between the main repository and individual developers' repositories.
From d370332da280b93603d0720229267a5a8243841f Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 15:55:12 -0400
Subject: [PATCH 028/206] Create Tech Stacks
---
Topics/Tech Stacks | 1 +
1 file changed, 1 insertion(+)
create mode 100644 Topics/Tech Stacks
diff --git a/Topics/Tech Stacks b/Topics/Tech Stacks
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/Topics/Tech Stacks
@@ -0,0 +1 @@
+
From c22877d7e40bfaf3be097b83506900dd9db49dd0 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 15:55:25 -0400
Subject: [PATCH 029/206] Delete Tech Stacks
---
Topics/Tech Stacks | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 Topics/Tech Stacks
diff --git a/Topics/Tech Stacks b/Topics/Tech Stacks
deleted file mode 100644
index 8b1378917..000000000
--- a/Topics/Tech Stacks
+++ /dev/null
@@ -1 +0,0 @@
-
From 05e1b2671dcf2b3dac38f0d1a1714cceda957b9b Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 15:58:34 -0400
Subject: [PATCH 030/206] Create Learning_MySQL.md
---
Topics/Tech Stacks/Learning_MySQL.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 Topics/Tech Stacks/Learning_MySQL.md
diff --git a/Topics/Tech Stacks/Learning_MySQL.md b/Topics/Tech Stacks/Learning_MySQL.md
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/Topics/Tech Stacks/Learning_MySQL.md
@@ -0,0 +1 @@
+
From 17ae1ae1efd40e6d6c069be27226e80378821ae1 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 16:02:26 -0400
Subject: [PATCH 031/206] Update Tech_Stacks.md
Updated Tech_Stacks.md to include a hyperlink to Learning_MySQL.md
---
Topics/Tech_Stacks.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md
index 9e3921642..acf455d04 100644
--- a/Topics/Tech_Stacks.md
+++ b/Topics/Tech_Stacks.md
@@ -1 +1,3 @@
## Tech Stacks
+
+### [Learning MySQL for databases](./Tech_Stacks/Learning_MySQL.md)
From cb4cbd4fcd52bb9643c8497bc6ad380acdb1dc14 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 16:03:10 -0400
Subject: [PATCH 032/206] Delete Topics/Tech Stacks directory
---
Topics/Tech Stacks/Learning_MySQL.md | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 Topics/Tech Stacks/Learning_MySQL.md
diff --git a/Topics/Tech Stacks/Learning_MySQL.md b/Topics/Tech Stacks/Learning_MySQL.md
deleted file mode 100644
index 8b1378917..000000000
--- a/Topics/Tech Stacks/Learning_MySQL.md
+++ /dev/null
@@ -1 +0,0 @@
-
From f1f6ddd9d172e4ac1723f558278a41d52c50b923 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 16:03:29 -0400
Subject: [PATCH 033/206] Create Learning_MySQL.md
---
Topics/Tech_Stacks/Learning_MySQL.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 Topics/Tech_Stacks/Learning_MySQL.md
diff --git a/Topics/Tech_Stacks/Learning_MySQL.md b/Topics/Tech_Stacks/Learning_MySQL.md
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/Topics/Tech_Stacks/Learning_MySQL.md
@@ -0,0 +1 @@
+
From f5a5934b68655335f5f2f54480b57db528862e49 Mon Sep 17 00:00:00 2001
From: michaelga0 <73146524+michaelga0@users.noreply.github.com>
Date: Sat, 18 Mar 2023 16:30:52 -0400
Subject: [PATCH 034/206] Added conflict resolution section in Teamwork.md
---
Topics/Teamwork.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/Topics/Teamwork.md b/Topics/Teamwork.md
index e68acdc11..7c0c46214 100644
--- a/Topics/Teamwork.md
+++ b/Topics/Teamwork.md
@@ -1 +1,14 @@
## Resources for Teamwork
+
+
+## Conflict Resolution
+
+Working effectively in a team setting is a crucial yet often overlooked aspect of software engineering. Conflicts can arise in any team, and how they are resolved can have a significant impact on the team's success. Effective conflict resolution fosters a collaborative and supportive team environment where everyone's contributions are valued, and disagreements are handled constructively.
+
+[Avoiding Conflicts](https://dev.to/codesphere/resolving-conflicts-within-your-dev-team-1hfh)
+
+An important first step towards conflict resolution is learning how to avoid them in the first place. This article details possible steps to avoid many common conflicts that arise in a team setting, including managing expectations by setting clear goals and proper training, and maintaining healthy lines of communication between team members.
+
+[Resolving Conflicts](https://ca.indeed.com/career-advice/career-development/conflict-resolution-at-work)
+
+It is not always possible to avoid conflict. In work environment when people are exchanging ideas and working towards goals, a difference of opinion is inevitable. However, if handled properly, these conflicts can be resolved while keeping the negative impacts at a minimum, and even help create a better solution for the project at hand. This article covers ways that the parties in a conflict can help each other understand their own points of view, while keeping discourse respectful. It emphasizes ways that team members can help each other work towards a common goal.
From 30ef6773d7c08bb5b1d93c7910aa7f2111c3f477 Mon Sep 17 00:00:00 2001
From: Youngjun Cho Learn How to Create a Nuxt3 App
+If you are looking for tutorials or documentation on creating a Nuxt3 application, be aware that many resources actually teach Nuxt2. It is important to note that Nuxt3 installation and syntax differ significantly from Nuxt2. As I faced this challenge myself, I would like to share a helpful YouTube tutorial that provides step-by-step instructions for creating a Nuxt3 app.
+
+The tutorial link is: https://www.youtube.com/watch?v=hj3NNlTqIJg&list=PL8HkCX2C5h0XT3xWYn71TlsAAo0kizmVc&index=1
+
+Additionally, you can access further support options, such as a Discord server, by visiting this page: https://nuxt.com/support/solutions.
+
+It's worth mentioning that due to the confusion between Nuxt2 and Nuxt3 documentations online, Nuxt2 has more support and answered questions than Nuxt3. Therefore, you may opt to use Nuxt2 instead. However, keep in mind that installing Nuxt2 takes a longer time, so you should be patient.
+
+If you want to add the Tailwind CSS library to your Nuxt3 app, please follow the instructions in this link: https://tailwindcss.com/docs/guides/nuxtjs#3.
+Make sure to select Nuxt3 instead of Nuxt2.
+
+## Why Nuxt?
+
+Nuxt.js provides server-side rendering, automatic routing, code organization, and pre-configured plugins. It also has a built-In static site generation.
+Nuxt 3 comes with several performance improvements, including faster server startup time and smaller bundle sizes.
+I think it is a nice tool, especially the auto routing and how flexible you can reuse the components, but it still lacks comprehensive documentation.
\ No newline at end of file
From e69a78565e22b617a3048dcf45ede24bec77ef51 Mon Sep 17 00:00:00 2001
From: IbrahimBess
+ i) **Linux**
+ Follow the instructions on this [this link](https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html). For users using Debian or Ubuntu, use the [APT documentation here](https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install) and follow the 3 steps.
+ ii) **Windows**
+ Follow the instructions on [this link](https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html#windows-installation-simple) which provides 3 steps in order to complete this step using an installer.
+ iii) **macOS**
Follow steps 1-8 from [this link](https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html) which shows you how to nagivate the Installer Wizard.
From 32b06fd0382ed78f9cdb2539a5dce37cc674c560 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 21:13:43 -0400
Subject: [PATCH 049/206] Update Learning_MySQL.md
completed MySQL client installtion and basic operations
---
Topics/Tech_Stacks/Learning_MySQL.md | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/Topics/Tech_Stacks/Learning_MySQL.md b/Topics/Tech_Stacks/Learning_MySQL.md
index af3fa1b3e..b3d8ff6c0 100644
--- a/Topics/Tech_Stacks/Learning_MySQL.md
+++ b/Topics/Tech_Stacks/Learning_MySQL.md
@@ -13,15 +13,29 @@ When choosing a database management system, there may be a lot of options. here
* Vs. MongoDB
* MongoDB is a NoSQL database, meaning that it does not follow SQL rules and schemas and instead uses JSON rules to store data. Therefore it is more flexible. It is also geared towards write performance and is better for [real time applications](https://www.simplilearn.com/tutorials/mongodb-tutorial/mongodb-vs-mysql#:~:text=MySQL%20is%20an%20excellent%20choice,and%20other%20types%20of%20applications.)
-## MySQL client installation
+## MySQL client installation and basic operations
To use the client for database configuration, do the following steps:
1) Download the client
i) **Linux**
- Follow the instructions on this [this link](https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html). For users using Debian or Ubuntu, use the [APT documentation here](https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install) and follow the 3 steps.
+ Follow the instructions on this [this link](https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html). For users using Debian or Ubuntu, use the [APT documentation here](https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install) and follow the 3 steps.
ii) **Windows**
- Follow the instructions on [this link](https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html#windows-installation-simple) which provides 3 steps in order to complete this step using an installer.
+ Follow the instructions on [this link](https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html#windows-installation-simple) which provides 3 steps in order to complete this step using an installer.
iii) **macOS**
- Follow steps 1-8 from [this link](https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html) which shows you how to nagivate the Installer Wizard.
+ Follow steps 1-8 from [this link](https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html) which shows you how to nagivate the Installer Wizard.
+2) Connect to the MySQL server using the mysql client
+ i) **Linux Based Systems**
+ Enter the following in the command line terminal
+ > $`>` mysql -u root -p
+ ii) **Windows**
+ Go to **Start, All Programs, MySQL, MySQL 5.7 Command Line Client (or MySQL 8.0 Command Line Client, respectively)**
+3) Run SQL statements to create schemas and run operations. Here are some examples
+ * Creating a new database. Use a [CREATE DATABASE](https://dev.mysql.com/doc/refman/8.0/en/show-databases.html) statement
+ * Create a table with a [CREATE TABLE](https://dev.mysql.com/doc/refman/8.0/en/create-table.html) statement
+ * Adding records into a table using [INSERT...VALUES](https://dev.mysql.com/doc/refman/8.0/en/insert.html) statement
+ * Use a [DELETE](https://dev.mysql.com/doc/refman/8.0/en/delete.html) statement to delete a record from a table
+
+For the fully detailed version of these steps, click [this link](https://dev.mysql.com/doc/mysql-getting-started/en/)
+
From ab7f2cebdaf5ab1c96029562ab78284264a77b86 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 22:07:29 -0400
Subject: [PATCH 050/206] Update Learning_MySQL.md
Added steps for connecting to the MySQL database using node.js
---
Topics/Tech_Stacks/Learning_MySQL.md | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/Topics/Tech_Stacks/Learning_MySQL.md b/Topics/Tech_Stacks/Learning_MySQL.md
index b3d8ff6c0..ff4eab814 100644
--- a/Topics/Tech_Stacks/Learning_MySQL.md
+++ b/Topics/Tech_Stacks/Learning_MySQL.md
@@ -15,7 +15,7 @@ When choosing a database management system, there may be a lot of options. here
## MySQL client installation and basic operations
-To use the client for database configuration, do the following steps:
+The following is a summary from [this guide](https://dev.mysql.com/doc/mysql-getting-started/en/) which has many details, but here are the following steps:
1) Download the client
i) **Linux**
Follow the instructions on this [this link](https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html). For users using Debian or Ubuntu, use the [APT documentation here](https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install) and follow the 3 steps.
@@ -26,7 +26,7 @@ To use the client for database configuration, do the following steps:
2) Connect to the MySQL server using the mysql client
i) **Linux Based Systems**
Enter the following in the command line terminal
- > $`>` mysql -u root -p
+ > $`>` mysql -u root -p
ii) **Windows**
Go to **Start, All Programs, MySQL, MySQL 5.7 Command Line Client (or MySQL 8.0 Command Line Client, respectively)**
3) Run SQL statements to create schemas and run operations. Here are some examples
@@ -35,7 +35,23 @@ To use the client for database configuration, do the following steps:
* Adding records into a table using [INSERT...VALUES](https://dev.mysql.com/doc/refman/8.0/en/insert.html) statement
* Use a [DELETE](https://dev.mysql.com/doc/refman/8.0/en/delete.html) statement to delete a record from a table
-For the fully detailed version of these steps, click [this link](https://dev.mysql.com/doc/mysql-getting-started/en/)
+## MySQL integration
+
+There are many environments that can integrate a MySQL database. Here is how to do it in Node.js and Python
+
+### MySQL database connection to Node.js
+
+Assuming that npm and node is installed (click here for [npm instructions](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm), use the following commands in the terminal
+* `npm init -y`
+* `npm install mysql`
+* In your mysql client use the database command `CREATE DATABASE databaseName;` to create a database to connect to
+* In your .js file, use `import 'mysql';`
+* Use `let connection = mysql.createConnection({host: 'localhost', user: 'root', password: '', database: 'databaseName'});` in the .js file to connect to the database server. The host, user, and password parameters can be changed to your specific usage.
+* Use the form `connection.connect(function(err) {...});` to connect to the database, where the ... represents your error checking method incase the connection fails.
+* To close the connection, use the form `connection.end(function(err) {...});` where ... represents the error checking method of your choice.
+
+For more detailed steps, check out [this link](https://www.mysqltutorial.org/mysql-nodejs/connect/)
+
From 1d34bb0058562f6cf318ac1b651ea4a1b44641df Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 23:12:44 -0400
Subject: [PATCH 051/206] Update Learning_MySQL.md
Added instructions for connecting and using MySQL in python
---
Topics/Tech_Stacks/Learning_MySQL.md | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/Topics/Tech_Stacks/Learning_MySQL.md b/Topics/Tech_Stacks/Learning_MySQL.md
index ff4eab814..84481a52a 100644
--- a/Topics/Tech_Stacks/Learning_MySQL.md
+++ b/Topics/Tech_Stacks/Learning_MySQL.md
@@ -16,20 +16,20 @@ When choosing a database management system, there may be a lot of options. here
## MySQL client installation and basic operations
The following is a summary from [this guide](https://dev.mysql.com/doc/mysql-getting-started/en/) which has many details, but here are the following steps:
-1) Download the client
+1. Download the client
i) **Linux**
Follow the instructions on this [this link](https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html). For users using Debian or Ubuntu, use the [APT documentation here](https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install) and follow the 3 steps.
ii) **Windows**
Follow the instructions on [this link](https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html#windows-installation-simple) which provides 3 steps in order to complete this step using an installer.
iii) **macOS**
Follow steps 1-8 from [this link](https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html) which shows you how to nagivate the Installer Wizard.
-2) Connect to the MySQL server using the mysql client
+2. Connect to the MySQL server using the mysql client
i) **Linux Based Systems**
Enter the following in the command line terminal
- > $`>` mysql -u root -p
+ `$> mysql -u root -p`
ii) **Windows**
- Go to **Start, All Programs, MySQL, MySQL 5.7 Command Line Client (or MySQL 8.0 Command Line Client, respectively)**
-3) Run SQL statements to create schemas and run operations. Here are some examples
+ Go to **Start, All Programs, MySQL, MySQL (ver#) Command Line Client**
+3. Run SQL statements to create schemas and run operations. Here are some examples
* Creating a new database. Use a [CREATE DATABASE](https://dev.mysql.com/doc/refman/8.0/en/show-databases.html) statement
* Create a table with a [CREATE TABLE](https://dev.mysql.com/doc/refman/8.0/en/create-table.html) statement
* Adding records into a table using [INSERT...VALUES](https://dev.mysql.com/doc/refman/8.0/en/insert.html) statement
@@ -46,12 +46,26 @@ Assuming that npm and node is installed (click here for [npm instructions](https
* `npm install mysql`
* In your mysql client use the database command `CREATE DATABASE databaseName;` to create a database to connect to
* In your .js file, use `import 'mysql';`
-* Use `let connection = mysql.createConnection({host: 'localhost', user: 'root', password: '', database: 'databaseName'});` in the .js file to connect to the database server. The host, user, and password parameters can be changed to your specific usage.
+* Use the form `let connection = mysql.createConnection({host: 'localhost', user: 'root', password: '', database: 'databaseName'});` in the .js file to connect to the database server. The host, user, and password parameters can be changed to your specific usage.
* Use the form `connection.connect(function(err) {...});` to connect to the database, where the ... represents your error checking method incase the connection fails.
+* If you want to query the database, use the form `connection.query(queryName, function(err, results, fields) {...}` where queryName represents your SQL query in string format, and ... is your resolve function from the resulting query call.
* To close the connection, use the form `connection.end(function(err) {...});` where ... represents the error checking method of your choice.
For more detailed steps, check out [this link](https://www.mysqltutorial.org/mysql-nodejs/connect/)
+### MySQL database connection to Python
+
+In order to connect to the database using Python, you need to use a database driver. Assuming that a recent version Python and pip is installed (click [here](https://pip.pypa.io/en/stable/installation/) for details installing pip), use the following commands:
+* In the shell use `pip install mysql-connector-python`
+* In your .py file, use `import mysql.connector`
+* Use the form `connector = connect(host="localhost", user=..., password=...,)` to connect to the database server, where ... represents your own user and password methods.
+* To create a database through python, use the cursor method which allows you to use SQL queries. Use the form `connector.cursor().execute('CREATE DATABASE databaseName')`, where databaseName can be changed for your own usage.
+* If you want to connect to an existing database, use the form `connector = connect(host="localhost", user=..., password=..., database='databaseName',)`
+* If you want to query the database, use the form `connector.cursor().execute('...')`
+* To close the connection, use `connector.close()`
+
+For more detailed steps, check out [this link](https://realpython.com/python-mysql/)
+
From cef8bca5c2ace4cf6a44e044d1c6204bc664f8c1 Mon Sep 17 00:00:00 2001
From: Syed Ahmed <76264982+SyedTawsifAhmed@users.noreply.github.com>
Date: Sat, 18 Mar 2023 23:38:15 -0400
Subject: [PATCH 052/206] Update Learning_MySQL.md
Added additional resources and a table of contents.
---
Topics/Tech_Stacks/Learning_MySQL.md | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/Topics/Tech_Stacks/Learning_MySQL.md b/Topics/Tech_Stacks/Learning_MySQL.md
index 84481a52a..7d882d86a 100644
--- a/Topics/Tech_Stacks/Learning_MySQL.md
+++ b/Topics/Tech_Stacks/Learning_MySQL.md
@@ -1,5 +1,12 @@
# Learning MySQL
+## Table of contents
+### [Introduction](#introduction-1)
+### [MySQL vs other DBMSs](#mysql-vs-other-dbmss-1)
+### [MySQL client installation and basic operations](#mysql-client-installation-and-basic-operations-1)
+### [MySQL integration](#mysql-integration-1)
+### [Additional Resources](#additional-resources-1)
+
## Introduction
The following is an introduction to MySQL with some resources to get started. *This article assumes that the reader has some knowledge about Structured Query Languages (SQL). For more information about SQL in general, you can check out [this link](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-vs-mysql/)*. A relational database management system (RDBMS) which is used to implement databases for any general application. MySQL is one of the most popular DBMSs because it is flexible, secure, and has high performance. For more details, [click here](https://www.hostinger.com/tutorials/what-is-mysql).
@@ -66,6 +73,8 @@ In order to connect to the database using Python, you need to use a database dri
For more detailed steps, check out [this link](https://realpython.com/python-mysql/)
+## Additional Resources
-
-
+* To use MySQL with PHP, refer to [this tutorial](https://www.mysqltutorial.org/php-mysql/) by MySQLTUTORIAL
+* To see examples of using the MySQL client, refer to [this link](https://dev.mysql.com/doc/mysql-tutorial-excerpt/8.0/en/examples.html)
+* To troubleshoot the client, refer to [this link](https://dev.mysql.com/doc/refman/8.0/en/problems.html), where it gives instructions on how to find [problem](https://dev.mysql.com/doc/refman/8.0/en/what-is-crashing.html) and also lists [common errors](https://dev.mysql.com/doc/refman/8.0/en/common-errors.html)
From ee9cfde1bcf5c0a4d0f2ce4366d0ed11a5387f92 Mon Sep 17 00:00:00 2001
From: Vim0315 <73090801+Vim0315@users.noreply.github.com>
Date: Sun, 19 Mar 2023 01:49:42 -0400
Subject: [PATCH 053/206] Added Agile and Waterfall methodologies
Added descriptions to two task management methodologies, Agile and Waterfall, and attached text/video learning resources for both of them.
---
Topics/Task_Management_Software.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/Topics/Task_Management_Software.md b/Topics/Task_Management_Software.md
index cb63cc749..cf3fd0067 100644
--- a/Topics/Task_Management_Software.md
+++ b/Topics/Task_Management_Software.md
@@ -13,3 +13,20 @@ Beginner tutorial for Jira - https://www.youtube.com/watch?v=nHuhojfjeUY
Must Know Jira features - https://www.youtube.com/watch?v=issdcnErAU8
Written Article On Jira Workflows - https://support.atlassian.com/jira-work-management/docs/how-to-create-workflows/
+
+
+# Examples of Modern Task Management Methodologies
+- Agile
+Agile is a task management methodology that is widely used in modern software development. It emphasizes flexibility, collaboration, and continuous improvement. Agile methodology focuses on delivering software features in small increments, which are known as sprints or iterations. At the start of each sprint, the team identifies the tasks that need to be completed and assigns them to team members. The team then works together to complete the tasks within the sprint period. The detailed executions may differ in different teams and projects, but there are several key principles to follow:
+ 1.Prioritizing tasks based on customer value: Agile task management focuses on delivering the highest value features first, rather than trying to complete all tasks at once.
+ 2.Collaboration and communication: Agile emphasizes close collaboration between team members, with frequent meetings and communication to ensure that everyone is on the same page.
+ 3.Iterative development: Agile tasks are completed in small iterations(sprints), allowing for continuous feedback and improvement.
+ 4.Flexibility: Agile recognizes that requirements and priorities are subject to be changed, and allows for adjustments throughout the project.
+The number of teams practicing agile in organizations has grown significantly in the past years, and agile knowledge has become a factor of consideration in recruiting processes.
+To learn more about Agile in text: https://www.tutorialspoint.com/agile/index.htm
+To learn more about Agile in video: https://www.youtube.com/watch?v=wmJfx7zAfQI&feature=youtu.be
+
+- Waterfall
+Waterfall is a traditional project management methodology that involves a linear, sequential approach to task management. In this approach, tasks are completed in a specific order, with each task depending on the completion of the previous task. While it is very useful for projects with well-defined requirements and a clear plan, it is much less flexible than Agile, and is also less popular in modern software development.
+To learn more about Waterfall in text:https://business.adobe.com/blog/basics/waterfall
+To learn more about Waterfall in video:https://www.youtube.com/watch?v=cYzuzwQEZCg
From 658b326f23a28f5f8d0765c0a190ee35db253b09 Mon Sep 17 00:00:00 2001
From: Tomas-Ha <90397885+Tomas-Ha@users.noreply.github.com>
Date: Sun, 19 Mar 2023 02:28:52 -0400
Subject: [PATCH 054/206] Move Automated_Deployment File into proper folder
---
Topics/{ => Software_Tools/Git}/Automated_Deployment.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename Topics/{ => Software_Tools/Git}/Automated_Deployment.md (100%)
diff --git a/Topics/Automated_Deployment.md b/Topics/Software_Tools/Git/Automated_Deployment.md
similarity index 100%
rename from Topics/Automated_Deployment.md
rename to Topics/Software_Tools/Git/Automated_Deployment.md
From 35fe0bb0ce93f31021b8ddf0351b85bf5262562d Mon Sep 17 00:00:00 2001
From: JustinAlianto <63857586+JustinAlianto@users.noreply.github.com>
Date: Sun, 19 Mar 2023 04:08:12 -0400
Subject: [PATCH 055/206] Added a section for Software_Tools folder
Updated README.md to include my previously approved PR for the creation of Software_Tools folder, Git folder, and Git_Workflows.md accordingly.
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 0de54dc13..a398e4690 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,9 @@ Following files are present in this directory. You may contribute to any of thes
Potential Topics--
- Tech stacks
+- Software Tools
+ 1. Git
+ 1. Git Workflows
- Software Engineering
1. Methodologies & Frameworks
1. Agile
@@ -61,4 +64,4 @@ Potential Topics--
- User Experience
- Product Management
- Other useful resources
-- Teamwork
\ No newline at end of file
+- Teamwork
From 8e93184cc8c64299392acb43a93b49234ea753e1 Mon Sep 17 00:00:00 2001
From: David Learn How to Create a Nuxt3 App
-If you are looking for tutorials or documentation on creating a Nuxt3 application, be aware that many resources actually teach Nuxt2. It is important to note that Nuxt3 installation and syntax differ significantly from Nuxt2. As I faced this challenge myself, I would like to share a helpful YouTube tutorial that provides step-by-step instructions for creating a Nuxt3 app.
-
-The tutorial link is: https://www.youtube.com/watch?v=hj3NNlTqIJg&list=PL8HkCX2C5h0XT3xWYn71TlsAAo0kizmVc&index=1
-
-Additionally, you can access further support options, such as a Discord server, by visiting this page: https://nuxt.com/support/solutions.
-
-It's worth mentioning that due to the confusion between Nuxt2 and Nuxt3 documentations online, Nuxt2 has more support and answered questions than Nuxt3. Therefore, you may opt to use Nuxt2 instead. However, keep in mind that installing Nuxt2 takes a longer time, so you should be patient.
-
-If you want to add the Tailwind CSS library to your Nuxt3 app, please follow the instructions in this link: https://tailwindcss.com/docs/guides/nuxtjs#3.
-Make sure to select Nuxt3 instead of Nuxt2.
-
-## Why Nuxt?
-
-Nuxt.js provides server-side rendering, automatic routing, code organization, and pre-configured plugins. It also has a built-In static site generation.
-Nuxt 3 comes with several performance improvements, including faster server startup time and smaller bundle sizes.
-I think it is a nice tool, especially the auto routing and how flexible you can reuse the components, but it still lacks comprehensive documentation.
\ No newline at end of file
From 03a1518ddc12604405eba360fff03bb9fea6e9c1 Mon Sep 17 00:00:00 2001
From: Tomas-Ha <90397885+Tomas-Ha@users.noreply.github.com>
Date: Sun, 19 Mar 2023 11:03:16 -0400
Subject: [PATCH 057/206] Integrate links into document
---
.../Git/Automated_Deployment.md | 36 +++++++++----------
1 file changed, 17 insertions(+), 19 deletions(-)
diff --git a/Topics/Software_Tools/Git/Automated_Deployment.md b/Topics/Software_Tools/Git/Automated_Deployment.md
index cd1031f80..9d57b510b 100644
--- a/Topics/Software_Tools/Git/Automated_Deployment.md
+++ b/Topics/Software_Tools/Git/Automated_Deployment.md
@@ -7,16 +7,20 @@
According to the Google Cloud Automation Center, Automated Deployment is "what enables you to deploy your software to testing and production environments with the push of a button." Automated deployment is a set of scripts that perform the following actions: prepare the target environment (installing/configuring any software needed), deploying the build packages created by continuous integration (this will be discussed more in the next part), run deployment tasks such as migrating databases, perform tests on the deployment to ensure it is functioning and accessable.
This prevents programming teams from having to manually perform these tasks for every deployment, which save teams hours over the course of a project. It reduces the risk of production deployments, since it ensures that all environments are the same. It also allows developers to deploy to production environments more frequently, which will lead to fast user feedback. In short, automated deployment is important, since it saves software teams time, prevents any errors in deployments, and allows teams to more easily ensure new features are working properly.
+
+
+ To learn more about DevOps in general, please see the Google Cloud Automation Center DevOps article referenced: https://cloud.google.com/architecture/devops
+ - To learn more about deployment automation specifically: https://cloud.google.com/architecture/devops/devops-tech-deployment-automation
-
+ ______
### How is Automated Deployment Used
Automated Deplyment requires CI/CD to be used. CI stands for continuous integration, and CD stands for continuous delivery _or_ continuous deployment (note, there is a difference between these two). Continuous Integration ensures that the new code is ready to be deployed, and continuous delivery or deployment uses automated deployment to deploy to either staging/testing environments or a production environment, respectively.
Continuous integration typically consists of developers continously merging their code into the main branch. Upon merging, code executes to create a build of the new code and run automated tests against this build. This is a followed by either continuous delivery or continuous deployment. Continuous delivery consists of automated deployment of the build packages from continuous ingration to a testing or staging environment. Deployment to production can be triggered whenever the team needs. Meanwhile, continuous deployment automatically deploys new code through testing and into production and requires zero human input.
-
-
+
+
There are many benefits to each step in this process. Continuous integration will lead to fewer bugs in production and easies release building as all issues with integration have already been found and solved. Furthermore, testing costs less since it is run on the CI server and less time is spent running the tests manually. However, CI requires writing automated testing for each new feature (Test Driven Development), as well as having a server where the automated tests are run. Furthermore, it requires developers to merge their work as often as possible, which may cause issues if some features or fixes take more time.
The benefits of continuous delivery are that your team releases more often and deploying software is less complex since it is automated. Most importantly, it releases pressure on small changes, since they can always be quickly undone or fixed with future releases. However, it requires automated deployment, which takes time to set up, and the team needs to "embrace" flaging features so that incomplete features are not released.
@@ -26,14 +30,18 @@
However, most importantly, both continuous delivery and continuous deployment can only occur if the new changes pass all the tests from continuous integration. This means that in order to successfully implement continuous delivery or deployment, you need to have an extensive set of test for your code that can verify that the changes are suitable for these environments. Otherwise, continuous delivery or deployment can lead to issues within staging and testing environments, or, worse, issues for customers.
To summarize, automated deployment is used for continous deliver or deployment. In order for this to work, continuous integration needs to be used in order to extensively test the code and ensure it is acceptable to deploy to whichever environment (depending on if delivery or deployment is used). Although it requires a strong CI, it leads to faster development, less risky releases, and more customer feedback.
+
+
+To learn more about CI/CD, please see the following article from Atlassian, an established software company from Australia: https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
+ - To learn more about the difference between continous delivery and continuous deployment, see the following article: https://docs.github.com/en/actions/deployment/about-deployments/deploying-with-github-actions
-
+______
### Examples of Common Automated Deployment Software
- Atlassian recommends using Bitbucket Pipelines, which is their "CI/CD tool that's integrated into Bitbucket Cloud," their version of GitHub. BitBucket provides extended CI/CD features that allow you to integrate with Jira, a task management software by Atlassian. However, you can implement CI/CD fairly easily with GitHub Actions.
-
-
+ Atlassian recommends using Bitbucket Pipelines (https://bitbucket.org/product/features/pipelines), which is their "CI/CD tool that's integrated into Bitbucket Cloud," their version of GitHub (https://bitbucket.org/product/). BitBucket provides extended CI/CD features that allow you to integrate with Jira, a task management software by Atlassian. However, you can implement CI/CD fairly easily with GitHub Actions.
+
+
### How to Set Up Automated Deployment with GitHub Actions
In order to set up automated deployment, you need to know the following: when do you want deployments to occur (on pull request, on push, on workflow dispatch, etc), where do you want the deployment to be (staging or production, continuous delivery vs continuous deployment), and what are the requirements for your environment (what packages do you need to set install or software do you need to set up to deploy).
@@ -41,18 +49,8 @@
Once you know these things, you can start setting up your GitHub Action using a yaml file. Start with the `on:` command and put all the situations where you want deployment to occur (and on what branches). Then, under `jobs:`, create a `deployment:` section and set the environment, what os it runs on, and the steps necessary to deploy.
For example, for Heroku, you need to specify the Heroku key (this is the login key) and the application you are deploying to. Meanwhile, for Expo, you may need to setup node, EAS (Expo Application Services), sign into EAS, install yarn dependencies, and then use EAS to deploy. An alternate method you could use is writing a shell script that performs these actions and simply having GitHub run this shell script with a GitHub Action.
-
-To learn more specifics, please see the resources below.
-
-
- ## Resources:
-
- To learn more about DevOps in general, please see the Google Cloud Automation Center DevOps article referenced in the above writing: https://cloud.google.com/architecture/devops
- - To learn more about deployment automation specifically: https://cloud.google.com/architecture/devops/devops-tech-deployment-automation
-
- To learn more about CI/CD, please see the following article from Atlassian, an established software company from Australia: https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
- - To learn more about the difference between continous delivery and continuous deployment, see the following article: https://docs.github.com/en/actions/deployment/about-deployments/deploying-with-github-actions
-
+
+
To learn more about how to set up automated deployment with GitHub actions, please see the following articles:
- Deploying with GitHub Actions:
From bcf404a36ebabed331724b530e03d69c8aaf335d Mon Sep 17 00:00:00 2001
From: jaren
-image source: https://www.w3schools.com/css/css_syntax.asp
+
+Image source: https://www.w3schools.com/css/css_syntax.asp
The link below provides interactive examples and exercises for basic CSS.
From ac81d5ae8e8f673148e7d685fca8820851fe36f8 Mon Sep 17 00:00:00 2001
From: sarihammad <63919507+sarihammad@users.noreply.github.com>
Date: Sun, 19 Mar 2023 22:35:17 -0400
Subject: [PATCH 072/206] Create Django_Rest.md
---
Topics/Tech_Stacks/Django_Rest.md | 120 ++++++++++++++++++++++++++++++
1 file changed, 120 insertions(+)
create mode 100644 Topics/Tech_Stacks/Django_Rest.md
diff --git a/Topics/Tech_Stacks/Django_Rest.md b/Topics/Tech_Stacks/Django_Rest.md
new file mode 100644
index 000000000..33b6f0933
--- /dev/null
+++ b/Topics/Tech_Stacks/Django_Rest.md
@@ -0,0 +1,120 @@
+# Building RESTful APIs using Django Rest Framework
+
+### Prerequisites
+
+Before learning Django Rest Framework, make sure that you have a working knowledge of the following:
+
+ - [Python](https://www.python.org/): High level general purpose programming language.
+ - [Django](https://www.djangoproject.com/): Web framework for Python.
+
+### What Is Django Rest Framework?
+Django Rest Framework is a popular library for building RESTful APIs with Django. It provides powerful tools for building APIs, including serialization, authentication, and permissions. You can easily create APIs that support multiple formats like JSON and XML that can be consumed by a variety of client applications. To demonstrate the power of Django Rest Framework, we will create a simple API.
+
+### Set-Up
+
+ We first set up the virtual environment and activate it using ```python3 -m venv myenv ``` and ```source myenv/bin/activate``` respectively in the project directory.
+
+ We now install Django and Django Rest Framework using the command ```pip install django djangorestframework```.
+
+ Once installed, we can start a new Django project by running: ```django-admin startproject
To learn more about CI/CD, please see the following article from Atlassian, an established software company from Australia: https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
- - To learn more about the difference between continous delivery and continuous deployment, see the following article: https://docs.github.com/en/actions/deployment/about-deployments/deploying-with-github-actions
+ - To learn more about the difference between continuous delivery and continuous deployment, see the following article: https://www.puppet.com/blog/continuous-delivery-vs-deployment
______
From 642da3df021a9e579ecad2eedb67931b028d01a2 Mon Sep 17 00:00:00 2001
From: Tomas-Ha <90397885+Tomas-Ha@users.noreply.github.com>
Date: Sun, 19 Mar 2023 23:51:34 -0400
Subject: [PATCH 075/206] Add final fixes to content
---
.../Git/Automated_Deployment.md | 27 +++++++++++++++----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/Topics/Software_Tools/Git/Automated_Deployment.md b/Topics/Software_Tools/Git/Automated_Deployment.md
index d45f42988..831177117 100644
--- a/Topics/Software_Tools/Git/Automated_Deployment.md
+++ b/Topics/Software_Tools/Git/Automated_Deployment.md
@@ -39,14 +39,31 @@ ______
### Examples of Common Automated Deployment Software
- Atlassian recommends using Bitbucket Pipelines (https://bitbucket.org/product/features/pipelines), which is their "CI/CD tool that's integrated into Bitbucket Cloud," their version of GitHub (https://bitbucket.org/product/). BitBucket provides extended CI/CD features that allow you to integrate with Jira, a task management software by Atlassian. However, you can implement CI/CD fairly easily with GitHub Actions.
-
-
+ Atlassian recommends using Bitbucket Pipelines (https://bitbucket.org/product/features/pipelines), which is their "CI/CD tool that's integrated into Bitbucket Cloud," their version of GitHub (https://bitbucket.org/product/). BitBucket provides extended CI/CD features that allow you to integrate with Jira, a task management software by Atlassian.
+
+ CircleCI (https://circleci.com) is another great CI/CD software which offers integration with BitBucket, as well as GitHub and GitHub Enterprise. It is used by companies such as Google, Pelaton, and Asana. It offers quick debugging, easy testing, and is highly customizeable. It also supports a wide variety of OSs, such as macOS, Windows, Solaris, and more. Unfortunately, it requires a subscription to use extensively, and it runs locally, not on a cloud server.
+
+ GitLab (https://about.gitlab.com) is a great choice as well, as it offers a web-based Git repository manager with features such as issue tracking, analytics, and a Wiki. It also "provides container scanning, static application security testing (SAST), dynamic application security testing (DAST), and dependency scanning to deliver secure applications along with license compliance, " as well as native CI/CD features such as automated builds, integration, and delivery. Unfortunately, it only supports Linux distributions for its OS selection, and it, too, requires a subscription.
+
+ For an open-source alternative, consider using Jenkins (https://www.jenkins.io). It supports Windows, Linux, macOS, and Unix-like OSs, and it is completely free. It has a simple user interface, easy installation, and supports distributed builds. Furthermore, it provides easy environment configuration, and it has a huge pool of user plugins which makes Jenkins very extensible.
+
+
+To learn more about these CI/CD tools and others, please see the following articles:
+- Best 14 CI/CD tools from Katalon (referenced in this section): https://katalon.com/resources-center/blog/ci-cd-tools
+- Top 14 CI/CD tools for DevOps from BrowserStack: https://www.browserstack.com/guide/top-ci-cd-tools
+
+
+Overall, the service you choose depends on the application you are building, your teams culture, and the features you need. However, you can also implement CI/CD fairly easily with GitHub Actions. This will be expanded upon in the following section.
+
+____
+
### How to Set Up Automated Deployment with GitHub Actions
+ Here is an example of a workflow that automates deployment and breaks down the steps: https://techblog.geekyants.com/github-actions-for-automating-builds-for-your-app
+
In order to set up automated deployment, you need to know the following: when do you want deployments to occur (on pull request, on push, on workflow dispatch, etc), where do you want the deployment to be (staging or production, continuous delivery vs continuous deployment), and what are the requirements for your environment (what packages do you need to set install or software do you need to set up to deploy).
- Once you know these things, you can start setting up your GitHub Action using a yaml file. Start with the `on:` command and put all the situations where you want deployment to occur (and on what branches). Then, under `jobs:`, create a `deployment:` section and set the environment, what os it runs on, and the steps necessary to deploy.
+ Once you know these things, you can start setting up your GitHub Action using a yaml file. Start with the `on:` command and put all the situations where you want deployment to occur (and on what branches). Then, under `jobs:`, create a `deployment:` section and set the environment, what operating system it runs on, and the steps necessary to deploy.
For example, for Heroku, you need to specify the Heroku key (this is the login key) and the application you are deploying to. Meanwhile, for Expo, you may need to setup node, EAS (Expo Application Services), sign into EAS, install yarn dependencies, and then use EAS to deploy. An alternate method you could use is writing a shell script that performs these actions and simply having GitHub run this shell script with a GitHub Action.
@@ -55,7 +72,7 @@ ______
- Deploying with GitHub Actions:
- https://docs.github.com/en/actions/deployment/about-deployments/deploying-with-github-actions
- - https://techblog.geekyants.com/github-actions-for-automating-builds-for-your-app
+ - https://techblog.geekyants.com/github-actions-for-automating-builds-for-your-app (This is the same as the one at the start of this section)
- Deployment to Expo:
- https://github.com/marketplace/actions/expo-github-action
From d722e758a290b761bba307855d7d59af8689f4e8 Mon Sep 17 00:00:00 2001
From: Tomas-Ha <90397885+Tomas-Ha@users.noreply.github.com>
Date: Mon, 20 Mar 2023 00:04:48 -0400
Subject: [PATCH 076/206] Add table of contents
---
.../Software_Tools/Git/Automated_Deployment.md | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/Topics/Software_Tools/Git/Automated_Deployment.md b/Topics/Software_Tools/Git/Automated_Deployment.md
index 831177117..e0473eaaa 100644
--- a/Topics/Software_Tools/Git/Automated_Deployment.md
+++ b/Topics/Software_Tools/Git/Automated_Deployment.md
@@ -1,8 +1,13 @@
# Resources for GitHub Actions Automated Deployment
-
-
- ### What is Automated Deployment? Why is it Important?
+## Table of Contents:
+ - ### [What is Automated Deployment](#what-is-automated-deployment-why-is-it-important)
+ - ### [How is Automated Deployment Used](#how-is-automated-deployment-used)
+ - ### [Software Examples](#examples-of-common-automated-deployment-cicd-software)
+ - ### [How to Setup Automated Deployment with GitHub Actions](#how-to-set-up-automated-deployment-with-github-actions)
+_____
+
+ ## What is Automated Deployment? Why is it Important?
According to the Google Cloud Automation Center, Automated Deployment is "what enables you to deploy your software to testing and production environments with the push of a button." Automated deployment is a set of scripts that perform the following actions: prepare the target environment (installing/configuring any software needed), deploying the build packages created by continuous integration (this will be discussed more in the next part), run deployment tasks such as migrating databases, perform tests on the deployment to ensure it is functioning and accessable.
@@ -14,7 +19,7 @@
______
- ### How is Automated Deployment Used
+ ## How is Automated Deployment Used
Automated Deplyment requires CI/CD to be used. CI stands for continuous integration, and CD stands for continuous delivery _or_ continuous deployment (note, there is a difference between these two). Continuous Integration ensures that the new code is ready to be deployed, and continuous delivery or deployment uses automated deployment to deploy to either staging/testing environments or a production environment, respectively.
@@ -37,7 +42,7 @@ To learn more about CI/CD, please see the following article from Atlassian, an e
______
- ### Examples of Common Automated Deployment Software
+ ## Examples of Common Automated Deployment (CI/CD) Software
Atlassian recommends using Bitbucket Pipelines (https://bitbucket.org/product/features/pipelines), which is their "CI/CD tool that's integrated into Bitbucket Cloud," their version of GitHub (https://bitbucket.org/product/). BitBucket provides extended CI/CD features that allow you to integrate with Jira, a task management software by Atlassian.
@@ -57,7 +62,7 @@ Overall, the service you choose depends on the application you are building, you
____
- ### How to Set Up Automated Deployment with GitHub Actions
+ ## How to Set Up Automated Deployment with GitHub Actions
Here is an example of a workflow that automates deployment and breaks down the steps: https://techblog.geekyants.com/github-actions-for-automating-builds-for-your-app
From 6b51a7071e59564d13919ad2d443cad70a0f576a Mon Sep 17 00:00:00 2001
From: Tomas-Ha <90397885+Tomas-Ha@users.noreply.github.com>
Date: Mon, 20 Mar 2023 00:10:30 -0400
Subject: [PATCH 077/206] Move automated_deployment out of Git folder
---
Topics/Software_Tools/{Git => }/Automated_Deployment.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename Topics/Software_Tools/{Git => }/Automated_Deployment.md (100%)
diff --git a/Topics/Software_Tools/Git/Automated_Deployment.md b/Topics/Software_Tools/Automated_Deployment.md
similarity index 100%
rename from Topics/Software_Tools/Git/Automated_Deployment.md
rename to Topics/Software_Tools/Automated_Deployment.md
From 4b120c7a307f6f60d4c18fd0fb10dd3aa8a1c53c Mon Sep 17 00:00:00 2001
From: Jonathan
+
+
+
+
+
+
+
+
+---
+## Salesforce Objects and fields
+Note: In the database language, salesforce objects refer to tables/entity sets and fields refer to the attributes of the table/entity set.
+After logging into salesforce, at the top right corner, go to:
+- setup > object manager
+There will be a list of objects and their respective API name (name of the entity set)
+- click on an object > **"Fields & Relationships"** tab to get its fields
+
+
+
+---
+## Querying data from Salesforce
+
+After logging into salesforce, at the top right corner, go to **Developer console** to test queries in the **query editor**.
+The query editor uses SOQL - [Salesforce Object Query Language](https://developer.salesforce.com/docs/atlas.en-us.240.0.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_sosl_intro.htm)
+
+
+
+### Image References:
+- https://blog.coupler.io/wp-content/uploads/2022/02/1-salesforce-api-setup.png
+- https://lh4.googleusercontent.com/qs95ISk2oMgxsg2jRGc34XGL7XlCigtrhLlKQHFiFnbHs-R87LPZn7zWPTDxAQkCogPxZtVeXe1quPx3gVl9MRsDZfcHVKZAv9sTUbIHsBJPzpAAUcnr6FFjP5crziQBhzQFTJEp
+- https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNRkGAZUW-jBmFZWukbBZbfayPEr2e-9uyGEY5GUOeeD22EXYR8PmxtiAHQnJgkwCaBmgpqFwUZKj4rGxPsEoN5hZCiN7J7rGr2AWqAWZVfJ5Okld5Cfnc3ZHewpmH61Lz9hqd4Pb12y1dPLVmeTxJm17PIM003-S9NQqAVcjQokKQmGVMjYOyMVbK/s993/Connected%20App%20Detail%20Page.jpg
+- https://www.marksgroup.net/wp-content/uploads/2019/05/console1.png
From f317dccb02889760854b1dd046953165aff2a237 Mon Sep 17 00:00:00 2001
From: Corinne <85494068+CorinneLS@users.noreply.github.com>
Date: Mon, 20 Mar 2023 09:24:29 -0400
Subject: [PATCH 080/206] Added link to Teck_Stacks/salesforce_api.md
---
Topics/Tech_Stacks.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md
index acf455d04..0afb54774 100644
--- a/Topics/Tech_Stacks.md
+++ b/Topics/Tech_Stacks.md
@@ -1,3 +1,4 @@
## Tech Stacks
### [Learning MySQL for databases](./Tech_Stacks/Learning_MySQL.md)
+### [How to access and use salesforce API](./Tech_Stacks/salesforce_api.md)
From 5e899328e464c2930b0e3ed7a1ef0c0a06efd431 Mon Sep 17 00:00:00 2001
From: Jonathan
Agile
+Waterfall
+