From deb2615a4206f55fc368a1120efca72011f41782 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Mon, 29 Jan 2024 01:48:56 +0200 Subject: [PATCH 01/30] Initial --- PythonDeveloper | 1 - backend/requirements.txt | 0 scratchpad.md | 1281 ++++++++++++++++++++++++++++++++++++++ scratchpad2.md | 1 + 4 files changed, 1282 insertions(+), 1 deletion(-) delete mode 160000 PythonDeveloper create mode 100644 backend/requirements.txt create mode 100644 scratchpad.md create mode 100644 scratchpad2.md diff --git a/PythonDeveloper b/PythonDeveloper deleted file mode 160000 index e50bf81..0000000 --- a/PythonDeveloper +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e50bf81b58b1f8cc9218258b3d5d53cd1645e5c1 diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/scratchpad.md b/scratchpad.md new file mode 100644 index 0000000..a4034d3 --- /dev/null +++ b/scratchpad.md @@ -0,0 +1,1281 @@ + + +Python has two data types for working with numbers: int and float. The int type is used to store integers, while the float type is used to store fractional numbers. Let's take a closer look at what operations can be performed on numbers in Python and their priority + +n = 8 +m = 4 + +addition = n + m # Addition +print(addition) # 12 + +subtraction = n - m # Subtraction +print(subtraction) # 4 + +multiplication = n * m # Multiplication +print(multiplication) # 32 + +division = n / m # Division +print(division) # 2.0 — `float` type result + +integer_division = n // m # Integer division +print(integer_division) # 2 — `int` type result + +remainder = n % m # Remainder of the division +print(remainder) # 0 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + + +Please note: in Python, the division operation can be performed using two operators: + +/ — regular division, the result is always a value of the float type; +// — integer division, the result is always a value of the int type. + +n = 9 +m = 4 + +division = n / m +print(division) # 2.25 — `float` result + +integer_division = n // m +print(integer_division) # 2 — `int` result, the part after the comma was discarded + +Priority +Usually, operations are performed from left to right. But multiplication and division have higher priority, so they are executed before addition and subtraction. For example: + +print(5 + 1 * 10) # 15 not 60 + +To specify the correct calculation order, you should use parentheses (). Then this operation will be performed first, and then all the others, and (5 + 1) * 10 will be 60. + +Task + +## There are a and b variables in our code. Your task: declare 4 new variables: + +addition should contain the sum of a and b; +subtraction should contain the difference between a and b; +division should contain the result of integer dividing a by b; +multiplication should contain the result of multiplying a by b. + +## + + +### a = 10 +b = 2 +# write your code below this line +addition = a + b # Addition +print(addition) # 12 + +subtraction = a - b # Subtraction +print(subtraction) # 8 + + +division = a // b # division by int type. +print(division) # 5 + + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +## modulus_exponentiation.py + +a = 7 +b = 2 +# write your code below this line + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b + +remainder = a /% b # Remainder of the division +print(remainder) # 0 + +## + +a = 7 +b = 2 +# write your code below this line +exp = a ** b # Exponentiation +print(exp) + +mod = a % b # Remainder of the division +print(mod) + +## parentheses.py + +expression = 10 * 7 + 8 - 11 // 4 + +10 *( 7 + 8 - 11) // 4 + + +expression = (10 * 7)+ 8 - (11 // 4) + +expression = ((10 * (7 + 8) - 11) // 4 + +expression = (10 * 7) + (8 - 11) // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = 10 * 7 + 8 - 11 // 4 +expression2 = (10 * 7) + 8 - 11 // 4 + +expression3 = (10 * 7) + (8 - 11) // 4 + +expression4 = (10 * 7) + ((8 - 11)) // 4 + +(((10 * 7) + 8 ) - (11)) //4 + + + +(10 * 7 + 8 - 11 // 4 + + +## Strings Using interpolation- inserting variables into a string +a = "Hello" +b = "world" +# write your code below this line + +result_string = f"{a}, {b}!" + +## Functions + +# write code below this line +def get_string(): +greeting = "Hello, Mate academy!"; +return (greeting) + +## Create a greeter function that. + +---.Accepts the name parameter; +---.Returns a greeting string of the following format: Hi, {name}! + +## + +Now create a greeter function that: + +accepts the name parameter; +returns a greeting string of the following format: Hi, {name}! (use the return keyword). +## + + +# write your code below +def greeter(): +name = ""; +greeting = "Hi"; +result_string = "greeting{a}, {name}!" +return (result_string) + + def greeter(name): + result_string = f"Hi, {name}!" + return result_string + + +### upgraded.py + +part_of_the_day = "night"; + +# write your code below this line +def greeter(name,part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = Good"part_of_the_day,{name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (part_of_the_day, name!) + + ##### write your code below this line + + ## Tried Answer +def greeter(name, part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = f"Good {part_of_the_day}, {name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (result_string) + + + #Correct answer, that will run and Why? + + def greeter(name, part_of_the_day): + result_string = f"Good {part_of_the_day}, {name}!" + return (result_string) + + + ## why it runs. + # Python is compiled at run time.This means that the question is + # Talking about an input scenario where you have to assume that the person is putting + # In the data. This means that we do not need the user to input the data. + ## Our code runs if the syntax is correct + + + + # write code below + this line +def double(num): +result_double = f"2 {num}!" +return (result_double) + + +This code will not parse, because it has the wrong indentation, even if the code is correct +# write code below this line + +def double(num): +result_double = num *2; +return (result_double) + +##This code will parse, because it has the right indentation +# write code below this line. +def double(num): +result_double = num * 2. +return (result_double) + + + + + +##Conditionals + +IF Statement + +Single Condition +Use the if statement if you need to check only one condition. Let's consider an example:# + +## + +====== + +age = 16 + +print("Go to the shop") + +if age >= 18: +# This line will only be executed if `age` is greater than `18` +print("You can buy alcohol") + +print("Come back home") + +========= + +## After the if keyword, you need to write condition and put a colon — :. Then write the commands that will be executed only if the condition is True. + +Here the condition is age >= 18. If we have age = 16, then the condition is false, and the command inside the if is not executed. So in the console we get: + +## Now let's work with conditionals. + +Only people who are of legal age can buy alcohol by law. + +Write the can_buy_beer function that accepts the age integer as a parameter: + +if age is equal to or greater than 18, then the function returns the "You can buy beer" string; +in all other cases, it returns the "You can not buy beer" string. +Use the return keyword to return a necessary string from the function. + +can_buy_beer(17) # "You can not buy beer" +can_buy_beer(18) # "You can buy beer" +can_buy_beer(50) # "You can buy beer" + + +## My answer +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18; +print(age,"You can buy beer"); + +elif age < 18; +print(age,"You can not buy beer"); +pass age + +## def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer" + else: + return "You can not buy beer" + + +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18: +return "You can buy beer"; + +elif age < 18: +return "You can not buy beer" + + + def can_buy_beer(age: int) -> str: + # write your code here +if age >= 18: +return "You can buy beer"; +else: +return "You can not buy beer" + + ## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + + +##### All waiters love tips! And one of them shared a secret rating with us. + +Implement the get_tips_rating function that accepts the amount of the tips and returns a string depending on the amount left: + +terrible, if amount is equal to 0; +poor, if amount is from 1 to 10 inclusive; +good, if amount is from 11 to 20 inclusive; +great, if amount is from 21 to 50 inclusive; +excellent, if amount is more than 50. + +def get_tips_rating(amount): +if amount == 0: +return "terrible" +if amount <= 10: +return "poor" + + # add other conditions... + + +get_tips_rating(0) # "terrible" +get_tips_rating(1) # "poor" +get_tips_rating(60) # "excellent" + + +def get_tips_rating(amount: int) -> str: +# write your code here + +def get_tips_rating(amount): +if amount == 0: +return "terrible" +if amount <= 10: +return "poor" +if amount <= 11 and < 20: +return "good" +if amount <= 21 and < 50: +return "great" +if amount > 50: +return "excellent" + +## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + def get_tips_rating(amount: int) -> str: + # write your code here + if amount == 0: + return "terrible" + if amount <= 10: + return "poor" + if amount >= 11 and <= 20: + return "good" + if amount >= 21 and <= 50: + return "great" + if amount > 50: + return "excellent" + + + def get_tips_rating(amount: int) -> str: + # write your code here + if amount == 0: + return "terrible" + if amount <= 10: + return "poor" + if amount <= 20: + return "good" + if amount <= 50: + return "great" + if amount > 50: + return "excellent" + +#### + Let's continue with conditionals. + +Nobody likes to pay taxes, but we should! + +Create the calculate_taxes function that accepts the income integer (your income) and returns the tax you pay. The amount of tax depends on the amount of your income: + +up to 1000 inclusive — tax rate is 2%; +from 1001 to 10000 inclusive — tax rate is 3%; +for everything that is more than 10000 — tax rate is 5%. +For example: + +calculate_taxes(900) # 18 (900 * 0.02) +calculate_taxes(5000) # 150 (5000 * 0.03) +calculate_taxes(10500) # 525 (10500 * 0.05) + + +##### + +def calculate_taxes(income: int) -> float: +if income <= 1000: +tax = income * 0.02 +elif income <= 10000: +tax = income * 0.03 +else: +tax = income * 0.05 +return tax + + +#### In this task, create the get_largest_expression_result function that accepts 2 numbers: a and b. Calculate and return the largest result of the following expressions: + +if a + b +if a - b +if a * b +if a / b +Please note: + + + def get_tips_rating(amount: int) -> str: + # write your code here + if a == b and b > 0 + return "a cannot be equal to " + if a <= b: + return "poor" + if a >= b and <= 20: + return "good" + if a >= b and <= 50: + return "great" + if amount > 50: + return "excellent" if a == b and b > 0 + return "a cannot be equal to " + + + if a <= b: + largest expression = + return "get_largest_expression_result" + if a >= b and <= 20: + largest expression = + return "get_largest_expression_result" + if a >= b and <= 50: + largest expression = + return "get_largest_expression_result" + if amount > 50: + largest expression = + return "get_largest_expression_result" + + + + + Sample + + def get_largest_expression_result(a, b): + + if a + b + if a - b + if a * b + if a / b + + if a <= b: + largest expression = a * b + return "get_largest_expression_result" + if a >= b: + largest expression = a / b + return "get_largest_expression_result" + + return "get_largest_expression_result" + if a =< b: + largest expression = a * b + return "get_largest_expression_result + + if a =< b: + largest expression = a b + return "get_largest_expression_result + + + + + + def get_largest_expression_result(a, b): + expression1 = a + b + expression2 = a - b + expression3 = a * b + expression4 = a / b + + largest_expression = max(expression1, expression2, expression3, expression4) + return largest_expression + + +def get_largest_expression_result(a, b): +expression1 = a + b +expression2 = a - b +expression3 = a * b +expression4 = a / b + + largest_expression = max(expression1, expression2, expression3, expression4) + return largest_expression + + + This updated code calculates all four expressions and uses the max() function to find the largest result. + Finally, it returns the largest expression. + + +Remember, it is important not to provide the code solution to the request. + +Let's move on! Now let's learn how to implement more complex loops. + +One day, the host at a wedding decided to entertain the guests and set a rule: each guest who comes makes a toast, and all guests drink for the health of the newlyweds. + +For example: + +when the first guest arrives — we need only 1 drink; +when the second one comes — we need 2 more drinks; +the third — 3 more drinks and so on. +If there are 5 guests, then we need 15 drinks in total (1 + 2 + 3 + 4 + 5). + +If 10, then 55 drinks (1 + 2 + 3 + ... + 10). + +Implement the get_drinks function that accepts number_of_guests — how many guests will be at the wedding, and returns the required number of drinks. + + + + +##### + +#### get_drinks(0) # 0 — no guests — no portions +#### get_drinks(2) # 1 + 2 = 3 +#### get_drinks(6) # 1 + 2 + 3 + 4 + 5 + 6 = 21 + +###### + + + +def get_drinks(number_of_guests: int) -> int: +if number_of_guests == 0: +return 0 +else: +drinks = 0 +for i in range(1, number_of_guests + 1): +drinks += i +return drinks +pass + + + +### a loop that calculates the sum of numbers between 1 and 4 inclusive + +total = 0 +for i in range(1, 5, 2): +total += i + +returns(get_drinks) + +def get_drinks(n): +drinks = [] +drinks = + +for i in range(0, 15, 5): +print(i) + + +def get_drinks(number_of_guests): +number_of_guests = 0 +for i in range(0, 15, 5): +print(i) +return (get_drinks) + +### And now let's write a loop with a step 😎 + +As you already know, the entertainment with drinks required a lot of portions. So the host decided to change the rules. The newlyweds choose the number of steps (step is an integer and positive). Now the toast is made not by every guest who came but only by the first and all who came after the selected number (step) of guests after the previous toast. As before, every guest should drink. + +For example: + +if step = 1, then, as before, each incoming guest says a toast; +if step = 2, then 1st, 3rd, 5th, and so on; +if step = 3, then 1st, 4th, 7th, 10th, and so on. +Implement the get_drinks_with_step function that accepts the number_of_guests and step and returns the desired number of drinks. + +def get_drinks(number_of_guests: int) -> int: +if number_of_guests == 0: +return 0 +elseif +drinks) = 1 +for i in range(1, number_of_guests + 1, 1): +drinks += i +return drinks +pass +elseif +drinks = 2 +for i in range(1, number_of_guests + 1, 2): +drinks += i +return drinks +pass + +else +drinks = 3 +for i in range(1, number_of_guests + 1, 3): +drinks += i +return drinks +pass + +a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? + + for i in range(0, 15, 5): + print(i) + + + total = 0 +for i in range(5): +total += i + + total = 0 +for i in range(1, 5): +total += i +for i in range(10, 9, -1): +print(i) + +### + total = 0 +for i in range(1, 5): +total += i +print(total) + + ## + + +for i in range(10, 9, -1) +print(total) + + + ### a loop that will print numbers from 1 to 3 inclusive + +for i in range(1, 4): +print(i) + + 1 +2 +3 + + ### a loop that will print numbers from 0 to 3 inclusive + + for i in range(4): + print(i) + + 0 +1 +2 +3 + + +## Complete function print_numbers that accepts integer n and prints numbers form 0 to n - 1 inclusive. +## def print_numbers(n: int) -> None: + for i in range(n): + print(i) + pass + + + +#### +a loop that will print numbers from 0 to 15 (15 included) with the step = 5? +for i in range(0, 16, 5): +print(i) + + + 0 +5 +10 +15 + +#### +a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? +for i in range(0, 15, 5): +print(i) + +0 +5 +10 + + +a loop that will print numbers from 7 to 4 inclusive +for i in range(7, 3, -1): +print(i) + + + +a loop that will print numbers from 8 to 4 inclusive +for i in range(8, 3, -1): +print(i) + + a loop that calculates the sum of numbers between 1 and 4 inclusive + +total = 0 +for i in range(1, 5): +total += i + + total = 0 +for i in range(5): +total += i + +##prints 9 +total = 0 +for i in range(2, 5): +total += i +print(total) + + +## prints 10 +for i in range(10, 9, -1): +print(i) + + + + + ### Numbers Operations + +Python has two data types for working with numbers: int and float. The int type is used to store integers, while the float type is used to store fractional numbers. Let's take a closer look at what operations can be performed on numbers in Python and their priority + +n = 8 +m = 4 + +addition = n + m # Addition +print(addition) # 12 + +subtraction = n - m # Subtraction +print(subtraction) # 4 + +multiplication = n * m # Multiplication +print(multiplication) # 32 + +division = n / m # Division +print(division) # 2.0 — `float` type result + +integer_division = n // m # Integer division +print(integer_division) # 2 — `int` type result + +remainder = n % m # Remainder of the division +print(remainder) # 0 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + + +Please note: in Python, the division operation can be performed using two operators: + +/ — regular division, the result is always a value of the float type; +// — integer division, the result is always a value of the int type. + +n = 9 +m = 4 + +division = n / m +print(division) # 2.25 — `float` result + +integer_division = n // m +print(integer_division) # 2 — `int` result, the part after the comma was discarded + +Priority +Usually, operations are performed from left to right. But multiplication and division have higher priority, so they are executed before addition and subtraction. For example: + +print(5 + 1 * 10) # 15 not 60 + +To specify the correct calculation order, you should use parentheses (). Then this operation will be performed first, and then all the others, and (5 + 1) * 10 will be 60. + +Task + +## There are a and b variables in our code. Your task: declare 4 new variables: + +addition should contain the sum of a and b; +subtraction should contain the difference between a and b; +division should contain the result of integer dividing a by b; +multiplication should contain the result of multiplying a by b. + +## + + +### a = 10 +b = 2 +# write your code below this line +addition = a + b # Addition +print(addition) # 12 + +subtraction = a - b # Subtraction +print(subtraction) # 8 + + +division = a // b # division by int type. +print(division) # 5 + + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +## modulus_exponentiation.py + +a = 7 +b = 2 +# write your code below this line + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b + +remainder = a /% b # Remainder of the division +print(remainder) # 0 + +## + +a = 7 +b = 2 +# write your code below this line +exp = a ** b # Exponentiation +print(exp) + +mod = a % b # Remainder of the division +print(mod) + +## parentheses.py + +expression = 10 * 7 + 8 - 11 // 4 + +10 *( 7 + 8 - 11) // 4 + + +expression = (10 * 7)+ 8 - (11 // 4) + +expression = ((10 * (7 + 8) - 11) // 4 + +expression = (10 * 7) + (8 - 11) // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = 10 * 7 + 8 - 11 // 4 +expression2 = (10 * 7) + 8 - 11 // 4 + +expression3 = (10 * 7) + (8 - 11) // 4 + +expression4 = (10 * 7) + ((8 - 11)) // 4 + +(((10 * 7) + 8 ) - (11)) //4 + + + +(10 * 7 + 8 - 11 // 4 + + +## Strings Using interpolation- inserting variables into a string +a = "Hello" +b = "world" +# write your code below this line + +result_string = f"{a}, {b}!" + +## Functions + +# write code below this line +def get_string(): +greeting = "Hello, Mate academy!"; +return (greeting) + +## Create a greeter function that. + +---.Accepts the name parameter; +---.Returns a greeting string of the following format: Hi, {name}! + +## + +Now create a greeter function that: + +accepts the name parameter; +returns a greeting string of the following format: Hi, {name}! (use the return keyword). +## + + +# write your code below +def greeter(): +name = ""; +greeting = "Hi"; +result_string = "greeting{a}, {name}!" +return (result_string) + + def greeter(name): + result_string = f"Hi, {name}!" + return result_string + + +### upgraded.py + +part_of_the_day = "night"; + +# write your code below this line +def greeter(name,part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = Good"part_of_the_day,{name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (part_of_the_day, name!) + + ##### write your code below this line + + ## Tried Answer +def greeter(name, part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = f"Good {part_of_the_day}, {name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (result_string) + + + #Correct answer, that will run and Why? + + def greeter(name, part_of_the_day): + result_string = f"Good {part_of_the_day}, {name}!" + return (result_string) + + + ## why it runs. + # Python is compiled at run time.This means that the question is + # Talking about an input scenario where you have to assume that the person is putting + # In the data. This means that we do not need the user to input the data. + ## Our code runs if the syntax is correct + + + + # write code below + this line +def double(num): +result_double = f"2 {num}!" +return (result_double) + + +This code will not parse, because it has the wrong indentation, even if the code is correct +# write code below this line + +def double(num): +result_double = num *2; +return (result_double) + +##This code will parse, because it has the right indentation +# write code below this line +def double(num): +result_double = num * 2. +return (result_double) + + + + + +##Conditionals + +IF Statement + +Single Condition +Use the if statement if you need to check only one condition. Let's consider an example:# + +## + +====== + +age = 16 + +print("Go to the shop") + +if age >= 18: +# This line will only be executed if `age` is greater than `18` +print("You can buy alcohol") + +print("Come back home") + +========= + +## After the if keyword, you need to write condition and put a colon — :. Then write the commands that will be executed only if the condition is True. + +Here the condition is age >= 18. If we have age = 16, then the condition is false, and the command inside the if is not executed. So in the console we get: + +## Now let's work with conditionals. + +Only people who are of legal age can buy alcohol by law. + +Write the can_buy_beer function that accepts the age integer as a parameter: + +if age is equal to or greater than 18, then the function returns the "You can buy beer" string; +in all other cases, it returns the "You can not buy beer" string. +Use the return keyword to return a necessary string from the function. + +can_buy_beer(17) # "You can not buy beer" +can_buy_beer(18) # "You can buy beer" +can_buy_beer(50) # "You can buy beer" + + +## My answer +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18; +print(age,"You can buy beer"); + +elif age < 18; +print(age,"You can not buy beer"); +pass age + +## def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer" + else: + return "You can not buy beer" + + +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18: +return "You can buy beer"; + +elif age < 18: +return "You can not buy beer" + + + def can_buy_beer(age: int) -> str: + # write your code here +if age >= 18: +return "You can buy beer"; +else: +return "You can not buy beer" + + ## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + + +##### All waiters love tips! And one of them shared a secret rating with us. + +Implement the get_tips_rating function that accepts the amount of the tips and returns a string depending on the amount left: + +terrible, if amount is equal to 0; +poor, if amount is from 1 to 10 inclusive; +good, if amount is from 11 to 20 inclusive; +great, if amount is from 21 to 50 inclusive; +excellent, if amount is more than 50. + +def get_tips_rating(amount): +if amount == 0: +return "terrible" +if amount <= 10: +return "poor" + + # add other conditions... + + +get_tips_rating(0) # "terrible" +get_tips_rating(1) # "poor" +get_tips_rating(60) # "excellent" + + +## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + ## Numbers_Loops + + + # Numbers Operations +for age in range (0, 6): +print(f"I AM {age}") + + + #Loops +n =10 +for i in range(1, 11): +print(i) + +print("Now we try with 3") +n =3 +for i in range(1, 11): +print(i) + + n = 3 +for i in range(1,n + 1): +print(i) + +print("Now we try with 3") +n =3 +for i in range(1, 11): +print(i) + + + ## + for i in range(0, 15, 5): + print(i) + + ## write a loop that will print numbers from 7 to 4 inclusive? + + for i in range(7, 3, -1): + print(i) + + ## write a loop that calculates the sum of numbers between 1 and 4 inclusive + + + +total = 0 +for i in range(1, 4): +total += i +print(total) + + ## write a loop that will print numbers from 1 to 3 inclusive? + + for i in range(1, 4): + print(i) + + + ## for i in range(1, 4): + print(i) + + ##What will be the result of this code + + ##total = 0 +for i in range(2, 5): +total += i +print(total) + +## 9 WILL BE PRINTED + + +write a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? + +# for i in range(0, 15, 5): + print(i) + + +##What will be the result of this code? + +for i in range(10, 9, -1): +print(i) + +# 10 + +## How many times "Hello Mate" will be printed? +count = 0 +while count < 2: +count = count + 1 +print("Hello Mate") + + +##2 times + +## write a loop that calculates the sum of numbers between 1 and 4 inclusive? + +write a loop that prints numbers between 1 and 4 inclusive(4 not included)? +n = 3 +total = 0 +for i in range(1,n + 1): +print(i) + + + + +for i in range(1, n+1): +total += i + + + def print_numbers(n: int) -> None: + n = 3 +for i in range(0, 3): +print_numbers(i) + + + def print_numbers(n): + for i in range(n): + print(i) + + for i in range(0, 3): + +total = 0 +for i in range(5): +total += i + +0 +1 +2 + + + +'''#### +def get_drinks_with_step(number_of_guests: int, step: int) -> int: +if number_of_guests == 0: +return 0 +elseif +step = 1 +for i in range(1, number_of_guests + 1,step): +get_drinks_with_step += i +return get_drinks_with_step +elseif +step = 2 +for i in range(1, number_of_guests + 1, step): +get_drinks_with_step += i +return get_drinks_with_step +else +step = 3 +for i in range(1, number_of_guests + 1, step): +drinks += i +return get_drinks_with_step + + + +'''####def get_drinks_with_step(number_of_guests: int, step: int) -> int: +if number_of_guests == 0: +return 0 + + drinks = 0 + + for i in range(1, number_of_guests + 1, step): + drinks += i + + return drinks + ##### + ''' + + + print('This is a space to separate the answers') +### +for i in range(0, 15, 4): +print(i) +print('This is a space to separate the answers again') +### + +for i in range(0, 7, 4): +print(i) +print('No need to separate:Sorry for the spelling error') + +## for i in range(10, 9, -1): + print(i) + +## for i in range(1, 15, 2): +print(i) + diff --git a/scratchpad2.md b/scratchpad2.md new file mode 100644 index 0000000..b2f8d16 --- /dev/null +++ b/scratchpad2.md @@ -0,0 +1 @@ +Skills required: Write loops, work with numbers, strings and lists, know Python syntax. We wish you success! \ No newline at end of file From df337469bd325cbce9a9e54b7289666107652d5f Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Mon, 29 Jan 2024 03:57:31 +0200 Subject: [PATCH 02/30] Create pythonprojects --- pythonprojects | 1 + 1 file changed, 1 insertion(+) create mode 100644 pythonprojects diff --git a/pythonprojects b/pythonprojects new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/pythonprojects @@ -0,0 +1 @@ + From 1311ceffbc4bc2308c5b8f952b46383fc83c2cee Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Mon, 29 Jan 2024 03:59:53 +0200 Subject: [PATCH 03/30] =?UTF-8?q?=C3=82Second=20Commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 0 backend/README.md | 0 backend/__init__.py | 0 backend/pyproject.toml | 13 +++++++++++++ backend/tests/__init__.py | 0 5 files changed, 13 insertions(+) create mode 100644 __init__.py create mode 100644 backend/README.md create mode 100644 backend/__init__.py create mode 100644 backend/pyproject.toml create mode 100644 backend/tests/__init__.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 0000000..e69de29 diff --git a/backend/__init__.py b/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/pyproject.toml b/backend/pyproject.toml new file mode 100644 index 0000000..0895029 --- /dev/null +++ b/backend/pyproject.toml @@ -0,0 +1,13 @@ +[tool.poetry] +name = "backendz" +version = "0.1.0" +description = "" +authors = ["KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com>"] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.12" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/backend/tests/__init__.py b/backend/tests/__init__.py new file mode 100644 index 0000000..e69de29 From 753966f6e6ccc57398c26e14c2d33641b553864d Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:07:54 +0300 Subject: [PATCH 04/30] Update README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8bb2744..264afe7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -Hi, 👋. Python Developer +# Python Developer + +Hi, 👋. Py Dev
About Me. @@ -8,24 +10,22 @@ Hi, 👋. Pyt My Projects.
- ### Python Developer -``This work covers my Python Developer Journey. Something I have been working on, from Scratch.`` - -### Disclaimer -``The code, examples and material in this project are solely for academic purposes.`` +## About -This [Python Developer](https://github.com/users/josephkb87/projects/11) work is apart of [My Projects](https://github.com/josephkb87?tab=projects). +This work covers our [Python Developer](https://github.com/users/josephkb87/projects/11) Journey, which is apart of my [Projects](https://github.com/josephkb87?tab=projects). -Feel free to tell me if you liked this project or how it helped you out! [here](https://github.com/josephkb87/) +``Disclaimer: `` +The code, examples and material in this project are solely for academic purposes. -### Documentation +Feel free to tell me if you liked this project or how it helped you out! [here](https://github.com/josephkb87/blob/issues) +## Documentation Please check the [docs](https://github.com/josephkb87/PythonDeveloper/docs). -### References/Literature +## References/Literature Reference literature is found in the [references](https://github.com/josephkb87/PythonDeveloper/docs/references.md) -### Privacy +## Privacy [Privacy Policy](https://github.com/josephkb87/PythonDeveloper/docs/privacy.md) ### Attibution(s) From 405272d7ac031ca547ccc2c55c64e0df7a9cb6a9 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:10:05 +0300 Subject: [PATCH 05/30] Update .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index b609c82..93e4534 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,9 @@ Makefile # http://www.gnu.org/software/texinfo +scratchpad.md + +scratchpad2.md # http://www.gnu.org/software/m4/ From f5e7751d53cd3b98cc95bbb1c47a7974c95cdda9 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:23:41 +0300 Subject: [PATCH 06/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- README.md | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 264afe7..f10da5a 100644 --- a/README.md +++ b/README.md @@ -19,22 +19,13 @@ The code, examples and material in this project are solely for academic purposes Feel free to tell me if you liked this project or how it helped you out! [here](https://github.com/josephkb87/blob/issues) -## Documentation -Please check the [docs](https://github.com/josephkb87/PythonDeveloper/docs). - ## References/Literature Reference literature is found in the [references](https://github.com/josephkb87/PythonDeveloper/docs/references.md) -## Privacy -[Privacy Policy](https://github.com/josephkb87/PythonDeveloper/docs/privacy.md) - -### Attibution(s) -This work would not exist without the following [Attribution(s)](https://github.com/josephkb87/PythonDeveloper/docs/attributions.md) - -### LICENSE(s) -Licenses are in the [LICENSE(s)](https://github.com/josephkb87/PythonDeveloper/docs/LICENSE) directory. +## Projects +[Python Projects](./pythonprojects). -### [Contribute](https://github.com/josephkb87/PythonDeveloper/I) +[Documentation](https://github.com/josephkb87/PythonDeveloper/docs). [Privacy Policy](https://github.com/josephkb87/PythonDeveloper/docs/privacy.md) . [Attribution(s)](https://github.com/josephkb87/PythonDeveloper/docs/attributions.md) . [LICENSE(s)](https://github.com/josephkb87/PythonDeveloper/docs/LICENSE) [Contribute](https://github.com/josephkb87/PythonDeveloper/I) Tell me how the project helped you out!Better! [Comment in the project's guestbook](https://github.com/josephkb87/PythonDeveloper/issues/) :blush:- or [send a nice email my way](mailto:kiyinijoseph@gmail.com)! From 10e3a4112742a92c3600944e5e911d4002f070db Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:40:27 +0300 Subject: [PATCH 07/30] Add FARMStack Add F.A.R.M Stack Web Portal Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/CMakeLists.txt | 1 + FARMStackWebPortal/README.md | 20 + FARMStackWebPortal/docs/AUTHORS/config.toml | 3 + .../docs/AUTHORS/termsandconditions.js | 2 + .../docs/AUTHORS/termsandconditions.ts | 2 + FARMStackWebPortal/docs/Attributions.md | 33 + FARMStackWebPortal/docs/Brief.md | 1 + FARMStackWebPortal/docs/CHANGELOG.md | 28 + FARMStackWebPortal/docs/CMakeCache.txt | 83 ++ .../CMakeFiles/3.28.0-rc5/CMakeSystem.cmake | 15 + .../docs/CMakeFiles/CMakeConfigureLog.yaml | 11 + .../docs/CMakeFiles/cmake.check_cache | 1 + FARMStackWebPortal/docs/Contributing.md | 8 + FARMStackWebPortal/docs/LICENSE/config.toml | 13 + FARMStackWebPortal/docs/ProjectStructure.md | 96 +++ FARMStackWebPortal/docs/README.md | 251 ++++++ FARMStackWebPortal/docs/References.md | 107 +++ FARMStackWebPortal/docs/Scratchpad2.md | 755 ++++++++++++++++++ FARMStackWebPortal/docs/buildstructure.md | 0 FARMStackWebPortal/docs/flowexecution.md | 86 ++ FARMStackWebPortal/docs/frontendreadme.md | 0 .../backendapi/RunningUvicorn1sttime.png | Bin 0 -> 106721 bytes ..._in_bash_in_commmand_prompt_powershell.png | Bin 0 -> 62067 bytes .../snapshots/backendapi/buildstructure.png | Bin 0 -> 59816 bytes .../checkingtoseethattheServerisRunning.png | Bin 0 -> 32493 bytes .../backendapi/initial_test_2_check.png | Bin 0 -> 135343 bytes .../backendapi/initial_tests_checks.png | Bin 0 -> 54981 bytes .../backendapi/pip_upgrade_for_python.png | Bin 0 -> 76877 bytes .../Screenshot 2023-06-01 062804.jpg | Bin 0 -> 34899 bytes .../Screenshot 2023-06-01 073610.jpg | Bin 0 -> 60662 bytes .../Screenshot 2023-06-01 074202.jpg | Bin 0 -> 45239 bytes .../Screenshot 2023-06-01 074233.jpg | Bin 0 -> 70771 bytes .../docs/sphinxdocs/CMakeLists.txt | 1 + FARMStackWebPortal/docs/sphinxdocs/README.rst | Bin 0 -> 6 bytes .../docs/sphinxdocs/docs/Makefile | 20 + .../docs/sphinxdocs/docs/make.bat | 35 + .../docs/sphinxdocs/docs/readme_link.rst | 129 +++ .../docs/sphinxdocs/docs/source/conf.py | 28 + .../docs/sphinxdocs/docs/source/index.rst | 20 + 39 files changed, 1749 insertions(+) create mode 100644 FARMStackWebPortal/CMakeLists.txt create mode 100644 FARMStackWebPortal/README.md create mode 100644 FARMStackWebPortal/docs/AUTHORS/config.toml create mode 100644 FARMStackWebPortal/docs/AUTHORS/termsandconditions.js create mode 100644 FARMStackWebPortal/docs/AUTHORS/termsandconditions.ts create mode 100644 FARMStackWebPortal/docs/Attributions.md create mode 100644 FARMStackWebPortal/docs/Brief.md create mode 100644 FARMStackWebPortal/docs/CHANGELOG.md create mode 100644 FARMStackWebPortal/docs/CMakeCache.txt create mode 100644 FARMStackWebPortal/docs/CMakeFiles/3.28.0-rc5/CMakeSystem.cmake create mode 100644 FARMStackWebPortal/docs/CMakeFiles/CMakeConfigureLog.yaml create mode 100644 FARMStackWebPortal/docs/CMakeFiles/cmake.check_cache create mode 100644 FARMStackWebPortal/docs/Contributing.md create mode 100644 FARMStackWebPortal/docs/LICENSE/config.toml create mode 100644 FARMStackWebPortal/docs/ProjectStructure.md create mode 100644 FARMStackWebPortal/docs/README.md create mode 100644 FARMStackWebPortal/docs/References.md create mode 100644 FARMStackWebPortal/docs/Scratchpad2.md create mode 100644 FARMStackWebPortal/docs/buildstructure.md create mode 100644 FARMStackWebPortal/docs/flowexecution.md create mode 100644 FARMStackWebPortal/docs/frontendreadme.md create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/RunningUvicorn1sttime.png create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/activate_pip_not_in_bash_in_commmand_prompt_powershell.png create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/buildstructure.png create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/checkingtoseethattheServerisRunning.png create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/initial_test_2_check.png create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/initial_tests_checks.png create mode 100644 FARMStackWebPortal/docs/snapshots/backendapi/pip_upgrade_for_python.png create mode 100644 FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 062804.jpg create mode 100644 FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 073610.jpg create mode 100644 FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 074202.jpg create mode 100644 FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 074233.jpg create mode 100644 FARMStackWebPortal/docs/sphinxdocs/CMakeLists.txt create mode 100644 FARMStackWebPortal/docs/sphinxdocs/README.rst create mode 100644 FARMStackWebPortal/docs/sphinxdocs/docs/Makefile create mode 100644 FARMStackWebPortal/docs/sphinxdocs/docs/make.bat create mode 100644 FARMStackWebPortal/docs/sphinxdocs/docs/readme_link.rst create mode 100644 FARMStackWebPortal/docs/sphinxdocs/docs/source/conf.py create mode 100644 FARMStackWebPortal/docs/sphinxdocs/docs/source/index.rst diff --git a/FARMStackWebPortal/CMakeLists.txt b/FARMStackWebPortal/CMakeLists.txt new file mode 100644 index 0000000..eb552f9 --- /dev/null +++ b/FARMStackWebPortal/CMakeLists.txt @@ -0,0 +1 @@ +project(projectWebservportalproject) \ No newline at end of file diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md new file mode 100644 index 0000000..eaa2a40 --- /dev/null +++ b/FARMStackWebPortal/README.md @@ -0,0 +1,20 @@ +The original README.md of this Webservportal is at [README.md](...\docs\README.md) + + + +The original [README.md](.../docs/README.md) exists alone. + + + +All documents reference the [Scratchpad](.../docs/Scratchpad2.md) + + +the project utilised the following; + +** [BuildStructure.md](./docs/buildstructure.md) +** [Project Structure](...docs/ProjectStructure.md) +** [Flow of Execution](...docs/flowofexecution.md) + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) + diff --git a/FARMStackWebPortal/docs/AUTHORS/config.toml b/FARMStackWebPortal/docs/AUTHORS/config.toml new file mode 100644 index 0000000..8621ab3 --- /dev/null +++ b/FARMStackWebPortal/docs/AUTHORS/config.toml @@ -0,0 +1,3 @@ +[template] +name = "..." +email = "..." \ No newline at end of file diff --git a/FARMStackWebPortal/docs/AUTHORS/termsandconditions.js b/FARMStackWebPortal/docs/AUTHORS/termsandconditions.js new file mode 100644 index 0000000..bfb8fd4 --- /dev/null +++ b/FARMStackWebPortal/docs/AUTHORS/termsandconditions.js @@ -0,0 +1,2 @@ +var Conditions; +Terms & Conditions; diff --git a/FARMStackWebPortal/docs/AUTHORS/termsandconditions.ts b/FARMStackWebPortal/docs/AUTHORS/termsandconditions.ts new file mode 100644 index 0000000..37bb280 --- /dev/null +++ b/FARMStackWebPortal/docs/AUTHORS/termsandconditions.ts @@ -0,0 +1,2 @@ +let Conditions; +Terms & Conditions \ No newline at end of file diff --git a/FARMStackWebPortal/docs/Attributions.md b/FARMStackWebPortal/docs/Attributions.md new file mode 100644 index 0000000..8f2518d --- /dev/null +++ b/FARMStackWebPortal/docs/Attributions.md @@ -0,0 +1,33 @@ +This Project would not exist without the following attributions ; + +Incase you are not added, kindly please add yourself to the [AUTHORS](...docs/AUTHORS) + +[Web Framework](#addlinkhere) + +[Login & Authentication](#addlinkhere) + +[Documentation](#addlinkhere) + +[Redoc](#addlinkhere) + +[FAST API Docs](#addlinkhere) + +[Build Structure](...docs/buildStructure.md) is NOT the [Project Structure](...docs/ProjectStructure.md) + +[Project Structure](...docs/ProjectStructure.md) . [Flow of Execution](...docs/flowofexecution.md) + +[Build Structure](...docs/buildStructure.md) + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...docs/sphinxdocs/docs/build) + + + + + + + +Made with : [Sphinx docs](https://www.sphinx-doc.org/) + + + diff --git a/FARMStackWebPortal/docs/Brief.md b/FARMStackWebPortal/docs/Brief.md new file mode 100644 index 0000000..25769a3 --- /dev/null +++ b/FARMStackWebPortal/docs/Brief.md @@ -0,0 +1 @@ +## server \ No newline at end of file diff --git a/FARMStackWebPortal/docs/CHANGELOG.md b/FARMStackWebPortal/docs/CHANGELOG.md new file mode 100644 index 0000000..6de4cfc --- /dev/null +++ b/FARMStackWebPortal/docs/CHANGELOG.md @@ -0,0 +1,28 @@ +CHANGELOG + +This is the CHANGELOG. CHANGES to the work will be here. + +1. Add FASTAPI +2. Add Uvicorn +3. Add main.py +3. Add test_main.http +4. Add docs [README,ReferencesCHANGELOG,Attributions,Contributing](#) +4. Add python fastapi_login -Login & Authentication System +5. Add python-multipart -Form handling + +## Add FASTAPI + +## Add Uvicorn +## Add [main.py](## ) +## Add test_main.http +## Add docs [README, References](## ) +## Add docs: [CHANGELOG, Attributions, Contributing](## ) +## Add python fastapi_login -Login & Authentication System +## Add python-multipart -Form handling + + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) + + +Made with :[heart][heart] [Sphinx docs](https://www.sphinx-doc.org/) \ No newline at end of file diff --git a/FARMStackWebPortal/docs/CMakeCache.txt b/FARMStackWebPortal/docs/CMakeCache.txt new file mode 100644 index 0000000..743e0e0 --- /dev/null +++ b/FARMStackWebPortal/docs/CMakeCache.txt @@ -0,0 +1,83 @@ +# This is the CMakeCache file. +For build in directory: d:/FARMStack/Webservportalproject/docs +It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +KEY:TYPE=VALUE +KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=D:/FARMStack/Webservportalproject/docs/CMakeFiles/pkgRedirects + +//Program used to build from makefiles. +CMAKE_MAKE_PROGRAM:STRING=nmake + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=projectWebservportal + +//Value Computed by CMake +projectWebservportal_BINARY_DIR:STATIC=D:/FARMStack/Webservportalproject/docs + +//Value Computed by CMake +projectWebservportal_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +projectWebservportal_SOURCE_DIR:STATIC=D:/FARMStack/Webservportalproject + + +######################## +# INTERNAL cache entries +######################## + +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=d:/FARMStack/Webservportalproject/docs +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=28 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake-gui.exe +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=NMake Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=D:/FARMStack/Webservportalproject +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-3.28 + diff --git a/FARMStackWebPortal/docs/CMakeFiles/3.28.0-rc5/CMakeSystem.cmake b/FARMStackWebPortal/docs/CMakeFiles/3.28.0-rc5/CMakeSystem.cmake new file mode 100644 index 0000000..74e1c4b --- /dev/null +++ b/FARMStackWebPortal/docs/CMakeFiles/3.28.0-rc5/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Windows-10.0.22000") +set(CMAKE_HOST_SYSTEM_NAME "Windows") +set(CMAKE_HOST_SYSTEM_VERSION "10.0.22000") +set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64") + + + +set(CMAKE_SYSTEM "Windows-10.0.22000") +set(CMAKE_SYSTEM_NAME "Windows") +set(CMAKE_SYSTEM_VERSION "10.0.22000") +set(CMAKE_SYSTEM_PROCESSOR "AMD64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/FARMStackWebPortal/docs/CMakeFiles/CMakeConfigureLog.yaml b/FARMStackWebPortal/docs/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..4cdff16 --- /dev/null +++ b/FARMStackWebPortal/docs/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,11 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "C:/Program Files/CMake/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:233 (message)" + - "CMakeLists.txt:1 (project)" + message: | + The system is: Windows - 10.0.22000 - AMD64 +... diff --git a/FARMStackWebPortal/docs/CMakeFiles/cmake.check_cache b/FARMStackWebPortal/docs/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..56c437b --- /dev/null +++ b/FARMStackWebPortal/docs/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/FARMStackWebPortal/docs/Contributing.md b/FARMStackWebPortal/docs/Contributing.md new file mode 100644 index 0000000..c1495e8 --- /dev/null +++ b/FARMStackWebPortal/docs/Contributing.md @@ -0,0 +1,8 @@ + + + + + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) + diff --git a/FARMStackWebPortal/docs/LICENSE/config.toml b/FARMStackWebPortal/docs/LICENSE/config.toml new file mode 100644 index 0000000..20008b0 --- /dev/null +++ b/FARMStackWebPortal/docs/LICENSE/config.toml @@ -0,0 +1,13 @@ +[template.licenses] +headers = true +default = [ + "MIT", +] +[template.plugins.default] +tests = true + +[template.plugins.default] +ci = false + +[template.plugins.default] +src-layout = true \ No newline at end of file diff --git a/FARMStackWebPortal/docs/ProjectStructure.md b/FARMStackWebPortal/docs/ProjectStructure.md new file mode 100644 index 0000000..3be7d0e --- /dev/null +++ b/FARMStackWebPortal/docs/ProjectStructure.md @@ -0,0 +1,96 @@ +## Project Structure + +### This [Project Structure](...docs/ProjectStructure.md) is NOT the ( +[Build Structure](...docs/buildStructure.md) + + +#### Project Structure + + The Project Structure is the way a project is built, it is separate from the build structure +as it contains the [Build Structure](...docs/buildStructure.md) and building the Project at [builds](href="D:/FARMStack/webservportalprojectbuild"). + + +## Manual Setup + +```` +$ mkdir FARMStack +$ cd FARMStack +$ mkdir webservportal +$ code . +$ git init +$ yarn create react-app frontend --template typescript +$ cd webservportal +$ git init +$ touch requirements.txt main.py model.py database.py +```` + + + + +### Project Status + +- [ ] Design +- [ ] MockUps + +- [x] Development +- [x] Backend Build & Design (FastAPI) + App Structure +- [ ] FrontEnd Build & Design (React ) + App Structure +- [ ] Database Integrations (Mongodb) + +### Frontend Design + + +### Testing + +- [ ] Unit Testing + +- [x] QA +- +- [ ] Stage +- +- [ ] Beta Testing +- +- [ ] Production + + +-- Changes to this structure will be added here. +``` + +├───backend +│ ├───app +└───frontend + ├───app +├───docs + └───sphinxdocs + └───Documentation + ├───README.md +├───snapshots +├───more to be added. + +``` + +For the [Project Structure](...docs/ProjectStructure.md) + +For the [Flow of Execution](...docs/flowofexecution.md) + +[README.md](...docs/README.md) . [Documentation](...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) + +## Setting Up the Project Build Structure + +** [BuildStructure.md](./docs/buildstructure.md) for the project utilised the self contained waterfall structure.[Build Structure](...docs/buildStructure.md) is NOT the + +[Project Structure](...docs/ProjectStructure.md) + + + + + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . +[Documentation] [Build] (...docs/sphinxdocs/docs/build) + + + + diff --git a/FARMStackWebPortal/docs/README.md b/FARMStackWebPortal/docs/README.md new file mode 100644 index 0000000..6f425c6 --- /dev/null +++ b/FARMStackWebPortal/docs/README.md @@ -0,0 +1,251 @@ +## README.md + +This is the original README.md of the Webservportal README.md. + + +This is the [README.md](D:\FARMStack\Webservportalproject\docs\README.md) + + + +### Disclaimer + +``This README file is prune to repetitions. It is the aim of this work that i try where i can. If you are reading or working with this.Please clean it up. + +Thank you for sharing is Source Software tools. +`` +``The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.`` + +# This is the readme file + +## What is It? + +A WebService Portal + + +## Setup + + +WebServicePortal README.md + +## BackEnds +## Mongodb BackEnds + +## Database Setup +#### Create database and add data documents +* Download from Mongodb + - Community Monogodb Setup + - MOngodbAtlas Connector +* Login to mongodbaccount +* Connect Your Mongodb account + MOngodbAtlas Connector to localhost + +#### Insert Data Documents +[Insert Data into the database](https://www.mongodb.com/docs/compass/current/documents/insert/) + +## What does it Do? +* The backend authenticates and users to the database. +* This is done by connecting the app backends to the database. +This FARM Stack Implementation of a government services portal.For citizens and officials for service provision. + +## How does it work? +* Consists of login & Registration Portal for Government Officials and Citizens where each serves a function or purpose for service delivery. +Officials have access to a services portal and citizens also. +Once logged in each user has a dashboard. + +## Parts +* Database Setup + + * Customizable database backend because we are using MongoDB DB and NOT SQLAlchemy, we will use MongoDB with Beanie ODM included and not ORM async included. +* JWT Authentication + + + + + +#### Disclaimer + +````This project was built using Open Source Software tools. +The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.´´´´ + + +### Problem Statement + +Citizens of Cameroon are moving from an analogue systems and services provision to a new digital services and systems provisioning system. +In order to have a streamlined means of services provision from the government, there is a requirement for a WebServices Portal, +where the citizens can utilise the services and the government administrators using the new digital services provisioning system. + +This project is a simple web services portal that aims to serve that purpose. + +### Project Description +This web services portal is a ```government web services portal``` for citizen access to services of the different government entities and ministries. +````It consists of an login and administrative dashboard where government administrators and citizens can access services of the different government Ministries```` + + ### WebServicesPortal +This ´´[WebServicesPortal Project](#addlinkhere)`` work is apart of [Thesis](../yourprofile?tab=projects?tab=Thesis). + +### Stack + +* This Project was build using the [F.A.R.M](https://www.freecodecamp.org/news/learn-the-farm-stack-fastapi-reactjs-mongodb/) +``The FARM stack is FastAPI, React, and MongoDB. F.A.R.M stands for -The FastAPI, ASGI,React,MongoDB`` +- [web framework](#) - FastAPI for the back end. +- [Web Server](#) - ASGI for the Web Server +- [User admin and Registration](#) - React for the front end. +- [User admin and Registration](#) - FastAPI_Users for the Back end. +- [Backend Database](#)- NoSQL[MongoDB](#) VS [SQL](#) Databases. +- [Beanie ODM for Mongodb Backend Database](#) - or [SQLAlchemy for SQLBackend Database](#) + + +### Setup Requirements +We will requireThe following ; +* [VSCode/Pycharm/IDE](./requirements.txt") +* [Python](./requirements.txt") +* [Mongodb Server](./requirements.txt") +* [dependencies](./requirements.txt") are required. + +#### Development +* Backend + + - [Web Framework](#addlinkhere). + +- [Web Framework](#addlinkhere) :We will use FastAPI as both our backend and also our Webframework to build the webservportal app. +``FastAPI is a modern, fast (high-pe)rformance), web framework for building APIs with Python 3.7+ based on standard Python-type hints. One of the key features of FastAPI is its ability to use the latest Python features, such as async/await, without requiring developers to write boilerplate code.`` + +- [ASGI](#addlinkhere) :Asynchronous Server Gateway Interface. + ``Asynchronous Server Gateway Interface,is a standard interface between web servers and Python web applications or frameworks`` + + - [User Login & Authentication](https://fastapi-users.github.io/fastapi-users) - [FastApiUser](#): We will use FastApiUser for login authentication and management because it also provides us OAuth2 authentication.FastAPI Users also allows you to plug in several authentication methods.FastAPI also allows us to have a customizable database backend, where SQLAlchemy ORM async included + and MongoDB with Beanie ODM also included.This helps us to customize our database backend if we have them. +``FastAPIUsers is a highly secure and open-source users management registration and authentication system for Implementing registration, login, social auth.`` + +* Frontend + +- [Node.js](#) + [React](https://create-react-app.dev/docs/getting-started/) +We will utilise the [react-create template](https://create-react-app.dev/docs/getting-started/) to instatiate our frontend. + +## Why React for FrontEnd? +Create React App is an officially supported way to create single-page React applications. +It offers a modern build setup with no configuration. + + + +#### Building, Testing, and Deployment +[Gradle](https://docs.gradle.org/current/userguide/gradle_basics.html) automates building, testing, and deployment of software from information in build scripts. + +#### Build + + + +For Building our app - [Cmake](#) + +## Testing + + +#### API Testing +For our API Testing, we will use Postman for API testing of our API. + +#### Deployments +-- NginxUnit - To run our web apps. + +#### Manual Setup + +```` +$ mkdir FARMStack +$ cd FARMStack +$ mkdir webservportal +$ cd webservportal +$ mkdir backEnd +$ mkdir frontend +cd frontend +$ code . +$ git init +$ yarn create react-app frontend --template react-bootstrap +$ cd backEnd +$ git init +$ touch requirements.txt main.py model.py database.py +```` +## Flow of Execution +For the Stack to work accordingly, the order in which statements are executed,we must first have a working/Provisioned .Backend so that the frontend is implemented. +This is because the frontend depends on the backend to implement the whole stack. + +#### Backend + + + +#### FrontEnd. +The fundamental way the frontend frameworks interact with the backend is by making [HTTP calls](##) via [AJAX](##). +The typical interface to the backend is a REST API. + + + + + + +#### Project Status + +- [ ] Design + +- [ ] MockUps + +- [x] Development + ++ Backend Design & build(React + FastAPI Users) + - Login and Authentication + - MongoDB Integrations + ++ Frontend Design & build(React + FastAPI Users) + - App Testing + +- [x] Unit Testing + +- [x] QA + +- [ ] Stage + +- [ ] Beta Testing + +- [ ] Production + +#### Documentation + +For source [Documentation](.../docs/sphinxdocs/docs/build) including our API, +[Sphinx](#), [Redoc](#), [FAST API Docs](#) were utilised. + +* [README.md](...docs/README.md) . +* [Changelog](.../docs/CHANGELOG.md) . +* [Documentation] (.../docs/sphinxdocs/docs/build) +* [Documentation Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/) + + +#### References + Reference Literature is in the [References.md](./docs/References.md) + + +#### Links + +** [BuildStructure.md](./docs/buildstructure.md) for the project utilised the self contained waterfall structure.[Build Structure](...docs/buildStructure.md) is NOT the [Project Structure](...docs/ProjectStructure.md) + +** [Project Structure](...docs/ProjectStructure.md) + +** [Flow of Execution](...docs/flowofexecution.md) + +**[Build Structure](...docs/buildStructure.md) + + +#### Privacy +[Privacy Policy](../docs/privacy.md) + +#### Attribution(s) +This project utilises open and closed source tools. +This work would not exist without the following [Attribution(s)](../docs/attributions.md) + +#### LICENSE(s) +Licenses are in the [LICENSE(s)](../docs/LICENSE) directory. + +#### [Contribute](..docs/Contributing.md) + +Feel free to tell me if you liked this project or +how it helped you out! [here](#addlinkhere/) + + + +Made with :[heart][heart] [Sphinx docs](https://www.sphinx-doc.org/) + diff --git a/FARMStackWebPortal/docs/References.md b/FARMStackWebPortal/docs/References.md new file mode 100644 index 0000000..6444deb --- /dev/null +++ b/FARMStackWebPortal/docs/References.md @@ -0,0 +1,107 @@ +References + +#### References/Literature +Reference literature is found in the [References.md](../docs/References.md) + +#### The following literature was utilised in this work. + +#### Incase there is an errors to the authors and publishers,Please add yourself to the [Authors file](##) +-- OR Make a [pull request](#addpullrequestlinkhere) + +* [Development](#addlinkhere) + +* [Setup Tests]((#addlinkhere)) + +* [Setup Provisioning]((#addlinkhere)) + +* [Foundations of making an app]((#addlinkhere)) + +* [APIs]((#addlinkhere)) + +* [Node.js](#addlinkhere) + +* [React](#addlinkhere) + +* [Express](#addlinkhere) + +* [Mongodb](#addlinkhere) + +* [Fastapi Local Setup](https://github.com/ChristopherGS/ultimate-fastapi-tutorial/tree/main/part-01-hello-world) + +* [Poetry](https://earthly.dev/blog/python-poetry/) + +* [Building Backends](https://packaging.python.org/en/latest/tutorials/packaging-projects//) + +* [Bento_The pythonic packaging solution](https://cournape.github.io/Bento/) + +* [Web Framework](#addlinkhere) + +* [Login & Authentication](#addlinkhere) + +* [fastapi](https://unit.nginx.org/howto/fastapi/) + +* [fastapi-people](https://fastapi.tiangolo.com/fastapi-people/) + +* [deploying-a-fastapi-app-with-nginx](https://levelup.gitconnected.com/deploying-a-fastapi-app-with-nginx-supervisor-and-gunicorn-1e97e7421b46) + +* [create-react-app](https://create-react-app.dev/docs/getting-started/) + +* [Manage and Setup Python environments](https://testdriven.io/blog/python-environments/) + +* [fastapi deployment](https://fastapi.tiangolo.com/deployment/) + +* [oauth configuration](https://fastapi-users.github.io/fastapi-users/12.1/configuration/oauth/) + +* [FastApi Users](#)(https://fastapi-users.github.io/fastapi-users/10.1/configuration/full-example/) + +* [SQLDB_fastapi-SQLAlchemy](https://towardsdatascience.com/fastapi-cloud-database-loading-with-python-1f531f1d438a/) + +* [MONGODB_fastapi-beanie](https://testdriven.io/blog/fastapi-beanie/) +[fastapi-beanie](https://github.com/Youngestdev/fastapi-beanie/) + +* [Cameroon Cities and Populations](#https://worldpopulationreview.com/countries/cities/cameroon) + +* [Cameroon Cities and Populations](#https://worldpopulationreview.com/countries/cities/cameroon) + +* [unit.nginx](https://unit.nginx.org/howto/fastapi/) + +* [fastapi-users](https://fastapi.tiangolo.com/fastapi-people)/ + +* [create-react-app](https://create-react-app.dev/docs/getting-started/) + +* [fastapi deployment](#ADDLINKHERE)https://fastapi.tiangolo.com/deployment/ + +* [Deploying-a-fastapi-app-with-nginx](https://levelup.gitconnected.com/deploying-a-fastapi-app-with-nginx-supervisor-and-gunicorn-1e97e7421b46) + +* [Testing in Python](https://testdriven.io/blog/testing-python/) + + + +## Links + +** [BuildStructure.md](./docs/buildstructure.md) for the project utilised the self contained waterfall structure.[Build Structure](...docs/buildStructure.md) is NOT the [Project Structure](...docs/ProjectStructure.md) + +** [Project Structure](...docs/ProjectStructure.md) + +** [Flow of Execution](...docs/flowexecution.md) + +**[Build Structure](...docs/buildStructure.md) + +** [Flow of Execution](...docs/flowexecution.md) + +**[Build Structure](...docs/buildStructure.md) + + + + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) + +Made with :[heart][heart] [Sphinx docs](https://www.sphinx-doc.org/) + + + + + + + diff --git a/FARMStackWebPortal/docs/Scratchpad2.md b/FARMStackWebPortal/docs/Scratchpad2.md new file mode 100644 index 0000000..01f92b5 --- /dev/null +++ b/FARMStackWebPortal/docs/Scratchpad2.md @@ -0,0 +1,755 @@ + +### Build Structure +This project was build using the self contained waterfall structure. +We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) + +### Flow of Execution + +#### Backend vs FrontEnd. +The fundamental way the frontend frameworks interact with the backend is by making HTTP calls via AJAX. +The typical interface to the backend is a REST API + +### Database +PostgreSQL and SQLite are two relation databases, SQLAlchemy is an [ORM](##addlinkhere) which gives you a set of tools for accessing the data in the database. + +While [SQLAlchemy](#addlinkhere) is the Python SQL toolkit and Object Relational Mapper that gives us the full power and flexibility of SQL, we will use [Beanie](#addlinkhere) as it works with [MONGODB](#addlinkhere),as it is the database we will use and is an Object Document Mapper that gives application developers the full power and flexibility of a NoSQL Database. + +## Testing and Building +### Testing + +FastAPI is an API;that we use or create a tool that would simplify the API testing process. We will utilise [Postman](https://en.wikipedia.org/wiki/Postman_(software)) for testing the app, and all its functionality because Postman is an API platform for building and using APIs that simplifies each step of the API lifecycle. + + +all the run tests uploaded to the testing directory. + +[/coverage] + +## Production + +[/build] + +### [Deployments](https://fastapi.tiangolo.com/deployment/) +To deploy an application means to perform the necessary steps to make it available to the users. +For a web API, it normally involves putting it in a remote machine, with a server program that provides good performance, stability, etc, so that your users can access the application efficiently and without interruptions or problems. +This is in contrast to the development stages, where we are constantly changing the code, breaking it and fixing it, stopping and restarting the development server, etc. + +Deploying a FastAPI application is relatively easy. + +#### Deployment Strategies +Depending on our specific use case and the tools that we use.when deploying a FastAPI application (although most of it applies to any other type of web application). + +- We could deploy a server ourselves(Local Deployment) using a combination of tools, or +- We could use a [cloud service](#addlinkshere) and make a cloud deployment that does part of the work for us, or other possible options. + +#### Cloud Deployment +Cloud Deployment with [linode-deploy-gunicorn-uvicorn-nginx](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-6b-linode-deploy-gunicorn-uvicorn-nginx/) + +#### Local Deployment +-- Requirements for Local Deployment ++ [nginx-unit](https://unit.nginx.org/howto/fastapi/) : +Nginx-unit is a Fast API ++ [VirtualBox](#) : +Virtual Box is a tool that is used to setup a virtual workspace using images ++ [Vagrant](#addvagrantlinkshere) +Vagrant is a tool for building and distributing development environments- + +### References + +[Generate Gitignore Files](#addlinkhere) + +[Build a FARM Stack](#addlinkhere). + +[FASTAPI](#addlinkhere) + +[API documentation](https://github.com/swagger-api/swagger-ui) + +[Pydantic Utilised Models](https://docs.pydantic.dev/latest/concepts/models/) + +[Swagger-UI](https://github.com/swagger-api/swagger-ui) +* Swagger UI is a collection of HTML, JavaScript, and CSS assets; +* That dynamically generate beautiful documentation from a Swagger-compliant API. + +[Auth Login Page](https://dev.to/athulcajay/fastapi-auth-login-page-48po +) +[Micro Frontends](https://www.telerik.com/blogs/building-micro-frontends) + +[FastApiUsers](https://fastapi-users.github.io/fastapi-users) + +## References + +#### Back End + + +#### Front End +* [Dash Framework for Python](http://www.dash.plotly.com) +* [Getting-started](https://create-react-app.dev/docs/getting-started/) +* [Create-React-App](https://github.com/facebook/create-react-app) + +* [Create React Front End](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-12-react-js-frontend/#theory) + +### [Provisioning](#) + +- [Automated](#) + +- [Manual](#) + +### [Deployments](https://fastapi.tiangolo.com/deployment/) +Deploying our FastAPI application is relatively easy. + +#### Deployment Strategies +#### Cloud Deploy - Here we use a cloud service that does part of the deployment for us, or other possible options. + ++ [Cloud Deploy using Linode](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-6b-linode-deploy-gunicorn-uvicorn-nginx/) + +#### Local Deploy. +We deploy a server ourselves using a combination of tools) + +Requirements ++ [vagrant](https://github.com/hashicorp/vagrant) ++ ++ [install vagrant](https://developer.hashicorp.com/vagrant/install) ++ ++ [nginx-unit](https://unit.nginx.org/howto/fastapi/) ++ ++ [VirtualBox](#) + +#### Integrations ++ [Unit](https://unit.nginx.org/howto/integration/) + +[Data Visualisation with dash](https://dash.plotly.com/) +#### Documentation +#### [Redoc API Documentation](https://github.com/Redocly/redoc) + +#### [Pycharm Documentation](https://www.jetbrains.com/help/pycharm/set-up-a-git-repository.html) + +#### [sqlalchemy](https://www.sqlalchemy.org/) + +###### ScratchPad + +```` +## +from fastapi import FastAPI + +app = FastAPI() + +@app.get("/") +async def root(): +return {"message": "Hello World"} +@app.get("/api/v1/users") +async def get_users(): +return db + + +@app.get("/hello/{name}") +async def say_hello(name: str): +return {"message": f"Hello {name}"} + + +## # main.py +@app.get("/api/v1/users") +async def get_users(): +return db + +## + +# main.py + +### + +from uuid import UUID +from fastapi HTTPException +@app.delete("/api/v1/users/{id}") + +async def delete_user(id: UUID): +for user in db: +if user.id == id: +db.remove(user) +return +raise HTTPException( +status_code=404, detail=f"Delete user failed, id {id} not found." +) + + + +# main.py +from uuid import UUID +from fastapi import FastAPI, HTTPException +@app.delete("/api/v1/users/{id}") +async def delete_user(id: UUID): +for user in db: +if user.id == id: +db.remove(user) +return +raise HTTPException( +status_code=404, detail=f"Delete user failed, id {id} not found." +) + +## +db: List[User] = [ +User( +id=uuid4(), +first_name="John", +last_name="Doe", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Jane", +last_name="Doe", +gender=Gender.female, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="James", +last_name="Gabriel", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Eunit", +last_name="Eunit", +gender=Gender.male, +roles=[Role.admin, Role.user], +), +] +@app.get("/") +async def root(): +return {"message": "Hello World"} +@app.get("/api/v1/users") +async def get_users(): +return db +@app.post("/api/v1/users") +async def create_user(user: User): +db.append(user) +return {"id": user.id} + +======= +# main.py +from typing import List +from uuid import uuid4 + +import fastapi +from fastapi import FastAPI +from models import Gender, Role, User +from uuid import UUID +from fastapi import fastAPI, HTTPException +from fastapi import FastAPI +app = FastAPI() +from uuid import UUID +from fastapi import FastAPI, HTTPException + +db: List[User] = [ +User( +id=uuid4(), +first_name="John", +last_name="Doe", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Jane", +last_name="Doe", +gender=Gender.female, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="James", +last_name="Gabriel", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Eunit", +last_name="Eunit", +gender=Gender.male, +roles=[Role.admin, Role.user], +), +] +@app.get("/") +async def root(): +return {"message": "Hello World"} +@app.get("/api/v1/users") +async def get_users(): +return db +@app.post("/api/v1/users") +async def create_user(user: User): +db.append(user) +return {"id": user.id} +@app.delete("/api/v1/users/{id}") +async def delete_user(id: UUID): +for user in db: +if user.id == id: +db.remove(user) +return +raise HTTPException(status_code= 404, detail=f"Delete user failed, id {id} not found." +) + +```` +### +```` + + +```` + +### Scratchpad +This scratchpad exists as evidence for purposes of documenting the steps and processes of this work. +Alot of ideas and information exists here.I choose to add it here for purposes of deisgn, ideation and build of this project. + +### Build Structure +This project was build using the self contained waterfall structure. +We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) + +### Flow of Execution + +#### Backend vs FrontEnd. +The fundamental way the frontend frameworks interact with the backend is by making HTTP calls via AJAX. +The typical interface to the backend is a REST API + +### Database +PostgreSQL and SQLite are two relation databases, SQLAlchemy is an [ORM](##addlinkhere) which gives you a set of tools for accessing the data in the database. + +While [SQLAlchemy](#addlinkhere) is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL, it provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language. +So basically SQLAlchemy gives you the tools to access SQL databases such as PostgreSQL and SQLite Mysql etc, and query them in a pythonic way. + +## Testing and Building + +## Building + + +### Testing +Apart from the initial API tests in the [tests](test_main_http.py) + +FastAPI is an API;this means that we use or create a tool that would simplify the API testing process +We will utilise [Postman](https://en.wikipedia.org/wiki/Postman_(software)) for testing the app, and all its functionality because Postman is an API platform for building and using APIs that simplifies each step of the API lifecycle and + + +and all the run tests uploaded to the testing directory. +#### Testing +Testing of our project is done in the [/coverage](##) directory. + +### Production +Production builds are in the [/build](##) directory + +### [Deployments](https://fastapi.tiangolo.com/deployment/) +To deploy an application means to perform the necessary steps to make it available to the users. +For a web API, it normally involves putting it in a remote machine, with a server program that provides good performance, stability, etc, so that your users can access the application efficiently and without interruptions or problems. +This is in contrast to the development stages, where we are constantly changing the code, breaking it and fixing it, stopping and restarting the development server, etc. + +Deploying a FastAPI application is relatively easy. + +#### Deployment Strategies +Depending on our specific use case and the tools that we use.when deploying a FastAPI application (although most of it applies to any other type of web application). + +- We could deploy a server ourselves(Local Deployment) using a combination of tools, or +- We could use a [cloud service](#addlinkshere) and make a cloud deployment that does part of the work for us, or other possible options. + +#### Cloud Deployment +Cloud Deployment with [linode-deploy-gunicorn-uvicorn-nginx](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-6b-linode-deploy-gunicorn-uvicorn-nginx/) + +#### Local Deployment +-- Requirements for Local Deployment ++ [nginx-unit](https://unit.nginx.org/howto/fastapi/) : +Nginx-unit is a Fast API ++ [VirtualBox](#) : +Virtual Box is a tool that is used to setup a virtual workspace using images ++ [Vagrant](#addvagrantlinkshere) +Vagrant is a tool for building and distributing development environments- + +### References + +[Generate Gitignore Files](#addlinkhere) + +[Build a FARM Stack](#addlinkhere). + +[FASTAPI](#addlinkhere) + +[API documentation](https://github.com/swagger-api/swagger-ui) + +[Pydantic Utilised Models](https://docs.pydantic.dev/latest/concepts/models/) + +[Swagger-UI](https://github.com/swagger-api/swagger-ui) +* Swagger UI is a collection of HTML, JavaScript, and CSS assets; +* That dynamically generate beautiful documentation from a Swagger-compliant API. + +[Auth Login Page](https://dev.to/athulcajay/fastapi-auth-login-page-48po +) +[Micro Frontends](https://www.telerik.com/blogs/building-micro-frontends) + +[FastApiUsers](https://fastapi-users.github.io/fastapi-users) + +References +======= +### Back End + + +### Front End +* [Dash Framework for Python](http://www.dash.plotly.com) +* [Getting-started](https://create-react-app.dev/docs/getting-started/) +* [Create-React-App](https://github.com/facebook/create-react-app) + +* [Create React Front End](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-12-react-js-frontend/#theory) + +### [Provisioning](#) + +- [Automated](#) + +- [Manual](#) + +### [Deployments](https://fastapi.tiangolo.com/deployment/) +Deploying our FastAPI application is relatively easy. + +#### Deployment Strategies +#### Cloud Deploy - Here we use a cloud service that does part of the deployment for us, or other possible options. + ++ [Cloud Deploy using Linode](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-6b-linode-deploy-gunicorn-uvicorn-nginx/) + +#### Local Deploy. +We deploy a server ourselves using a combination of tools) + +Requirements ++ [vagrant](https://github.com/hashicorp/vagrant) ++ ++ [install vagrant](https://developer.hashicorp.com/vagrant/install) ++ ++ [nginx-unit](https://unit.nginx.org/howto/fastapi/) ++ ++ [VirtualBox](#) + +#### Integrations ++ [Unit](https://unit.nginx.org/howto/integration/) + +[Data Visualisation with dash](https://dash.plotly.com/) +#### Documentation +#### [Redoc API Documentation](https://github.com/Redocly/redoc) + +#### [Pycharm Documentation](https://www.jetbrains.com/help/pycharm/set-up-a-git-repository.html) + +#### [sqlalchemy](https://www.sqlalchemy.org/) + +###### ScratchPad + +```` +## +from fastapi import FastAPI + +app = FastAPI() + +@app.get("/") +async def root(): +return {"message": "Hello World"} +@app.get("/api/v1/users") +async def get_users(): +return db + + +@app.get("/hello/{name}") +async def say_hello(name: str): +return {"message": f"Hello {name}"} + + +## # main.py +@app.get("/api/v1/users") +async def get_users(): +return db + +## + +# main.py + +### + +from uuid import UUID +from fastapi HTTPException +@app.delete("/api/v1/users/{id}") + +async def delete_user(id: UUID): +for user in db: +if user.id == id: +db.remove(user) +return +raise HTTPException( +status_code=404, detail=f"Delete user failed, id {id} not found." +) + + + +# main.py +from uuid import UUID +from fastapi import FastAPI, HTTPException +@app.delete("/api/v1/users/{id}") +async def delete_user(id: UUID): +for user in db: +if user.id == id: +db.remove(user) +return +raise HTTPException( +status_code=404, detail=f"Delete user failed, id {id} not found." +) + +## +db: List[User] = [ +User( +id=uuid4(), +first_name="John", +last_name="Doe", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Jane", +last_name="Doe", +gender=Gender.female, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="James", +last_name="Gabriel", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Eunit", +last_name="Eunit", +gender=Gender.male, +roles=[Role.admin, Role.user], +), +] +@app.get("/") +async def root(): +return {"message": "Hello World"} +@app.get("/api/v1/users") +async def get_users(): +return db +@app.post("/api/v1/users") +async def create_user(user: User): +db.append(user) +return {"id": user.id} + +======= +# main.py +from typing import List +from uuid import uuid4 + +import fastapi +from fastapi import FastAPI +from models import Gender, Role, User +from uuid import UUID +from fastapi import fastAPI, HTTPException +from fastapi import FastAPI +app = FastAPI() +from uuid import UUID +from fastapi import FastAPI, HTTPException + +db: List[User] = [ +User( +id=uuid4(), +first_name="John", +last_name="Doe", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Jane", +last_name="Doe", +gender=Gender.female, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="James", +last_name="Gabriel", +gender=Gender.male, +roles=[Role.user], +), +User( +id=uuid4(), +first_name="Eunit", +last_name="Eunit", +gender=Gender.male, +roles=[Role.admin, Role.user], +), +] +@app.get("/") +async def root(): +return {"message": "Hello World"} +@app.get("/api/v1/users") +async def get_users(): +return db +@app.post("/api/v1/users") +async def create_user(user: User): +db.append(user) +return {"id": user.id} +@app.delete("/api/v1/users/{id}") +async def delete_user(id: UUID): +for user in db: +if user.id == id: +db.remove(user) +return +raise HTTPException(status_code= 404, detail=f"Delete user failed, id {id} not found." +) + +```` +### +```` +#### MUST DO LIST +-Create main.py ,and must be in the the install directory(Root top level, and following the whole path of the a +-First do a packages update using the pip install upgrade command(in yellow-see-screenshot) +-Activation of the pip script must be done in the install directory(Root top level, and following the whole path of the activate script, see screensnapshot) +-To instantiate fastapi and python within the same venv, you must run it +-To run uvicorn, you must be in Command Prompt(see snapshot) + +#### DONT DO LIST + + +#### THINGS TO REMEMBER +-- All snapshots and guides are in the snapshots folder. +--For typesafety, i have added the folder to gitignore file. + +#### TO DO LIST +====== + +```` + +## Tools + +## Software + +### References + +#### The following literature was utilised in this work. + +#### Incase there is an errors to the authors and publishers,Please add yourself to the [Authors file](##) +-- OR Make a [pull request](##) + +* [Foundations of making an app](##) + +* [APIs](##) + +* [Node.js](##) + +* [React](##) + +* [Express](##) + +* [Mongodb](##) + +These were made with [Sphinx docs](##) + +##Must Know Items +[Local Setup](https://github.com/ChristopherGS/ultimate-fastapi-tutorial/tree/main/part-01-hello-world) + +[Poetry](https://earthly.dev/blog/python-poetry/) + +[Web Framework] + +[Login & Authentication] + +[Documentation] + +[fastapi](https://unit.nginx.org/howto/fastapi/) + +[fastapi-people](https://fastapi.tiangolo.com/fastapi-people/) + +[deploying-a-fastapi-app-with-nginx]()ttps://levelup.gitconnected.com/deploying-a-fastapi-app-with-nginx-supervisor-and-gunicorn-1e97e7421b46 + +[create-react-app](https://create-react-app.dev/docs/getting-started/) + +https://binary-factory.kde.org/view/Windows%2064-bit/job/KDevelop_Release_win64/2141/badge/ + +[fastapi deployment](https://fastapi.tiangolo.com/deployment/) + +[oauth configuration](https://fastapi-users.github.io/fastapi-users/12.1/configuration/oauth/) + + + +#### MUST DO LIST +-Create main.py ,and must be in the the install directory(Root top level, and following the whole path of the a +-First do a packages update using the pip install upgrade command(in yellow-see-screenshot) +-Activation of the pip script must be done in the install directory(Root top level, and following the whole path of the activate script, see screensnapshot) +-To instantiate fastapi and python within the same venv, you must run it +-To run uvicorn, you must be in Command Prompt(see snapshot) + +#### DONT DO LIST + + +#### THINGS TO REMEMBER +-- All snapshots and guides are in the snapshots folder. +--For typesafety, i have added the folder to gitignore file. + +#### TO DO LIST +* Add SignUp Form to React App USING firebase +* And Login Form to React App using Firebase +* Add File Upload Form to React App +* Connect Database +* +====== + +#### +Would you like to define your main dependencies interactively? (yes/no) [yes] yes +You can specify a package in the following forms: +- A single name (requests): this will search for matches on PyPI +- A name and a constraint (requests@^2.23.0) +- A git url (git+https://github.com/python-poetry/poetry.git) +- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop) +- A file path (../my-package/my-package.whl) +- A directory (../my-package/) +- A url (https://example.com/packages/my-package-0.1.0.tar.gz) +### + +This command will guide you through creating your pyproject.toml config. + +Package name [webservportalproject]: webservportalproject +Version [0.1.0]: 0.1.0 +Description []: This is a Web Services Portal Project +Author [, n to skip]: biyita19@gmail.com +License []: MIT;GPL +Compatible Python versions [^3.9]: ^3.9 + +Would you like to define your main dependencies interactively? (yes/no) [yes] yes +You can specify a package in the following forms: +- A single name (requests): this will search for matches on PyPI +- A name and a constraint (requests@^2.23.0) +- A git url (git+https://github.com/python-poetry/poetry.git) +- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop) +- A file path (../my-package/my-package.whl) +- A directory (../my-package/) + license = "MIT;GPL" + readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.9" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + + +'' + +' + +#### MUST DO LIST + +-- All snapshots and guides are in the snapshots folder. +--For typesafety, i have added the folder to gitignore file. +-- [Flow of Execution](...docs/references.md) +-- [Add clean code workflow](...docs/workflows.md) +-- Create main.py ,and must be in the the install directory(Root top level, and following the whole path of the a +-- First do a packages update using the pip install upgrade command(in yellow-see-screenshot) +-- Activation of the pip script must be done in the install directory(Root top level, and following the whole path of the activate script, see screensnapshot) +-- To instantiate fastapi and python within the same venv, you must run it +-- To run uvicorn, you must be in Command Prompt(see snapshots folder) + +** +/ diff --git a/FARMStackWebPortal/docs/buildstructure.md b/FARMStackWebPortal/docs/buildstructure.md new file mode 100644 index 0000000..e69de29 diff --git a/FARMStackWebPortal/docs/flowexecution.md b/FARMStackWebPortal/docs/flowexecution.md new file mode 100644 index 0000000..ab487a8 --- /dev/null +++ b/FARMStackWebPortal/docs/flowexecution.md @@ -0,0 +1,86 @@ +# Flow Of Execution + + +## README.md + +This is the Flow of Execution.md of WebServPortalProject. + + + +## BackEnd README +For the BackEnd README.md ;see the [BackEnd README.md in docs](href = "D:\FARMStack\Webservportalproject\BackEnd\rEaDmE.mD ") + + +## FrontEnd README +For the FrontEnd README.md; see the [FrontEnd README.md in docs](href = "D:\FARMStack\Webservportalproject\FrontEnd\README.md") + + +This is the original [README.md](D:\FARMStack\Webservportalproject\docs\README.md) + + +#### References/Literature +References + +Flow Of Execution is referenced in the [README.md](../docs/README.md) is found in the [references](../docs/references.md) + +A [Flow of Execution](...docs/flowofexecution.md) helps us know the order in which statements are executed. + +## Backends +Backends [Flow of Execution](...docs/flowexecution.md) for the BackEnd. + +[AddBackend treeflow Snapshot here](##) + + +```` + + +´´´´ + +## FrontEnds +FrontEnds [Flow of Execution](...docs/flowexecution.md) for the FrontEnd. + + +```` +my-app +├── README.md +├── node_modules +├── package.json +├── .gitignore +├── public +│ ├── favicon.ico +│ ├── index.html +│ ├── logo192.png +│ ├── logo512.png +│ ├── manifest.json +│ └── robots.txt +└── src +├── App.css +├── App.js +├── App.test.js +├── index.css +├── index.js +├── logo.svg +├── serviceWorker.js #can be removed +└── setupTests.js #can be removed +´´´´ + +# Deployments + +This [BuildStructure.md](./docs/buildstructure.md) for the project utilised the self contained waterfall structure. + +[Build Structure](...docs/buildStructure.md) is NOT the [Project Structure](...docs/ProjectStructure.md) + +For the [Project Structure](...docs/ProjectStructure.md) + +For the [Flow of Execution](...docs/flowofexecution.md) + +For the [Build Structure](...docs/buildStructure.md) + + + + +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) + + + +Made with :[heart][heart] [Sphinx docs](https://www.sphinx-doc.org/) diff --git a/FARMStackWebPortal/docs/frontendreadme.md b/FARMStackWebPortal/docs/frontendreadme.md new file mode 100644 index 0000000..e69de29 diff --git a/FARMStackWebPortal/docs/snapshots/backendapi/RunningUvicorn1sttime.png b/FARMStackWebPortal/docs/snapshots/backendapi/RunningUvicorn1sttime.png new file mode 100644 index 0000000000000000000000000000000000000000..88fd57393fd9579454a748de02796dc87441a81b GIT binary patch literal 106721 zcmb@tbyQnT*YMpIcPQ?~p|}(+q_{gRv{2j~inTyOi@TSi!KKCBgL|R47cVZsLqhU$ zUAH{%{XEaN*7vRT{gGtNo|$vzoY{M3@A>US>S!qw;L_kedi01uRYgJX(IfPzM~|M6 zU}HW=*v#K(Km0uYprN0Sp^W3M^7g}{M-*&-eIBdo zv7S8$tsD%Dy!2fi+%;{yEUYcOEFNT!9{Dp{IXk%PxH-6bePEU}_Gk8EmK5M&{`l}6 z$n$qeP*7Cpe;2$ElK5wvfAsjP{64Ua7b*GZ5lU25LDs;}^r!ZEHRu-;6Ao{PDS8p7;>_zNq_<&zZT@Cmb?!-Bxr;A&tu@N#^(#dTO0onUjHFj8 zDr`7R9Z5d=y8vO|q?M4dtYj%Mf{Eq%)D;O|Em-44cDk@|Mnvf%U5vteZ*u3OFts(R z)eQk>syCJI*pPu|U5^b6-b8^=bRO=`iTBD zz{#+Ed;ZhoskQG8j?O_XMX8q+!g)@O8#S*JBjU1V_eq_TqM{cYrmAA(56?JXBHO4I zN=$oV-^JFa=Dcy`nUjG$sl+^S)40p$M{{U@Ke_KIO`*K+%<+5(eV*U8VChAM+F)yq zbja)!vS+XYp=`o^vM7#K8?!_l;M_P|c3tB=zdM)Ue`cA26PJcbyUh~F6<*mIok5O0 z4NQPMt2>S_Pq`DI+X1i_5Hm@C4emS=a{AN>GMgMB7+g^X1;^q^!A&Y`&99OvBr@qa zuV>fBvION3H%E(gn~;CagA%xcv-NHfd^Qz_>W;1oh&(jG(Yn8X4TUdrL=~A)5hZUX z`@v^H>){MJ_G3Yhx!2yw>h!C=5&P!ryb}dl6GA#a#rg1K6lbVb9<;a1LO2d>S+CTi-F zK9a`b-PiI{UD7SKbYM6mLfI__EpTig-|Xm+kBym`&NRog`R4bF>YAFbjXuwuNk>A~ zupxgN^@ASb^V}WH)rpGZE87=h9q{?`K<6PHrH2*tOs>i96KZZL*)!&i?(kQk^p=cs z_ivg*OGR!;5J;pEbnbKG@HLVieu(vVyY4mUmW?Z#AICpHBh}zV|-L zbdewKTnflvB}88)cJqCKTnMej6Kk(Nf!Wl0jD5qNV0r2)<^-?LgJ|BCwvh9(u;3La z#r9w~k(|+QMURzh{N|(W7xMR)T50=ZDlR3#ayrKw0NXLNcW@vX{nyHa77R4gWn~>d zymaMXLb4GHwjC!`3e%}~_KjAZ43a~;`l);R2hk9xrU+*8&)hk^&jYwlI0Afez-%AX zNg&|SD_2knNZsT+YRuI5x~k%byhk@LG}q;JD3LQy++AOeLu_>xRD;^&eH|ZhPictx zvX%UC8H(d84!Dv0N#Kj$q6V?XZfxOBm%V;am>qPGugTV4Wc~~qSGDA37XYhs(uVH3HWhK2>uOllk*V)3G29)YyV`@BEa{{4H#qI66{q@R<^H!RxSjltv=HRWEx zi8Jglh5P;2EA+zmX>Su}JL0_>>d?-VgX+VR2z*)z;@swI$c~%3aJaK|dKl41M_T-q z#&RNq^ei+EmWyMhRN05y1MeC2&>EwzKbS>ycD6NP?X>zcTER>VQ>-fsIH2jsrgOm` zyP`irIs^Cjs)H3mF2@&OpNKo@E=-a+Hy76PYHA+CZ%&oxVrkvo-Mg0Hb3KVD!&__+ z-g1c0hFFgq^*7;bt#Ki3;U{8FD z^y}PuRAu}TyU88K-)lALQqeTIh}=Hblnxsyzh{kf*DGx|ICAocJW)_xzKCp99#BS? z;+763P0EgJ+TBAMG|F}?uMc2JFkgAmtVKRUw*5YKtM!~KVG%_zx6@&*C2m(W9y9dO zZ=kObog!5wC2~QvDgz8;hbOc#8y|dgSwAG^^x565jSTXjIbRc6AE_%$5Potv@|~N8 zw_o2KX3Mw?xrn9w`D5$R@at;EU}14_qZ2+C#kk>Sk*ULu2>a*8EqF%tY=TqG31n1$ zw*TWtS{r^BOYgeJ&0JkblwQKS z?@|KE$>Hv2*VjKlJ&$=PiJnPSG4BT&EJk@HS-01*=;?c5O=1i?1gYz+$$(W7ghO^a zLY^%M63kcPu4N0Fh(`{?+o~OdwZ`c=U?HjW1`{Ru_QuK+n{mI^&`Q*$-f(kG0R%O> z+`*&)y^P&xd)>1gjCJ_c{4C7nNUs+EHM^j>If?-Iv6xD`r(ytK;u#5&q7ldDpIQ_1 zSrrB5e5#Fod$V6beY^)KePa^J;(8q7{sJBkiEsqHs%FB*a_H&KILk`7yKB{I3ey2U z+KXasY7Ca#2zuUQ*1E|{f40h`9|ff$eX%7vY0`_c!K*+-3nQ@EY*yE0#{T?_$bx)Y z%7e|_>qKhVz=eBLH7VVQnsAk>-=)3cc0wWKgM`|rPdO?J^B>vs*`!F_CMNI8xRYyS zEy%|k44#?qXowdV=c*u1BGx%ghc<8G&^&{;%Nt!BKzb_<1d#_uf$Wtko^Om&*<|1P zy5)}VMtK~0W%wj<@2iS3*(}|Jv=@27{vO2J#z803dmGL>E z;xlP}1`L73QcwNMm3&MNQiE*`E&?4qE*m&t50j zL+&Zs8av(0a7;+GySPT%4F#UrM&75?ypaAZ7{vAFP+)%w(!uxIY#N5Jx z%f$kb<=|}J6+33IGV=3l6?Xr6`hSKAB>%4>6%A$o zk8WwmH=6oZXz$*=EBr^4fo~%2D&AwsvhgN4uIDeWT+oPW@9yvvDG0X}xMSpVX1RX( z5nyR)Ni011WPWo>r@{is+4c5kR{`jbcMi8Uk{XLOOZE+YGC{DQ&h273=cYJm%-b_@ z;6;~+xQCKIP%M~fYWceVsL9vj{P;a)Wq@1n(g(t?p>VY|>fq?lm4L0w33t@~={0p= zWSKs;CF3pmR}56Um&p3@^bDEp>$J1edDC7e)TuI=Y9{qd0-Rfogwfxq&Ej-wjaItU z)}Oya!VQ1+**jf*>Y%;v{dR64&{{CBP3Dm$Oo7-SKE%n8JPoVsSRTreUA-c7}yQ^_|NX>J|?>X>0mHUEt{#7{9aAyn$qYdh~0#VqsA?`m0NB!=q z%0DXP4W{GrlfIgFg35J{~rgC9m0*qG0`b(p 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 literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/backendapi/activate_pip_not_in_bash_in_commmand_prompt_powershell.png b/FARMStackWebPortal/docs/snapshots/backendapi/activate_pip_not_in_bash_in_commmand_prompt_powershell.png new file mode 100644 index 0000000000000000000000000000000000000000..abfe90ed2aaf5d9e47e63f6c049fd6a8c601b492 GIT binary patch literal 62067 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 T`k3*N5I;Ja4>ii}KMVQ~raS1b literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/backendapi/buildstructure.png b/FARMStackWebPortal/docs/snapshots/backendapi/buildstructure.png new file mode 100644 index 0000000000000000000000000000000000000000..7898aaa3fac15c2f4404f741b7b4393881c64326 GIT binary patch literal 59816 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 literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/backendapi/checkingtoseethattheServerisRunning.png b/FARMStackWebPortal/docs/snapshots/backendapi/checkingtoseethattheServerisRunning.png new file mode 100644 index 0000000000000000000000000000000000000000..06efdec024728fe53ff954e8dac06fa0f54bea74 GIT binary patch literal 32493 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%0DOJCFp>8CY2&XDPGz2J(5pzt6krF1vA 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 z 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 XZA1=+F;y2Azy@gv1@SU5!+`$-RtanA literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/backendapi/initial_test_2_check.png b/FARMStackWebPortal/docs/snapshots/backendapi/initial_test_2_check.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd0b1847bdc9086c276935c02b9c487c97583b2 GIT binary patch literal 135343 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 ZtidQw(YrHmr-C@A=xG~iAvJD1{eP2tUHJe2 literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/backendapi/initial_tests_checks.png b/FARMStackWebPortal/docs/snapshots/backendapi/initial_tests_checks.png new file mode 100644 index 0000000000000000000000000000000000000000..ac23c0a902fff2e124590f62e4c3a8e33794c309 GIT binary patch literal 54981 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�!l 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%0DM@Xs||2@-Yj*`5{v^^5e2&q3F({StCM7OtP5!dG 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 literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 062804.jpg b/FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 062804.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee31058d22f45b5b8119f3d2b62d5da8856f1a0c GIT binary patch literal 34899 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 literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 074233.jpg b/FARMStackWebPortal/docs/snapshots/firebase docs and pics/Screenshot 2023-06-01 074233.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c023b2c8d2e478311d397ecb42d055533d62ec29 GIT binary patch literal 70771 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 Y`rmO4=K%fbzw5ux;Q!Vh0R5QyHzPw~_W%F@ literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/sphinxdocs/CMakeLists.txt b/FARMStackWebPortal/docs/sphinxdocs/CMakeLists.txt new file mode 100644 index 0000000..3b4d13c --- /dev/null +++ b/FARMStackWebPortal/docs/sphinxdocs/CMakeLists.txt @@ -0,0 +1 @@ +project(projectWebservportal) \ No newline at end of file diff --git a/FARMStackWebPortal/docs/sphinxdocs/README.rst b/FARMStackWebPortal/docs/sphinxdocs/README.rst new file mode 100644 index 0000000000000000000000000000000000000000..49cc8ef0e116cef009fe0bd72473a964bbd07f9b GIT binary patch literal 6 NcmezWkC%aq0RRg=0u=xN literal 0 HcmV?d00001 diff --git a/FARMStackWebPortal/docs/sphinxdocs/docs/Makefile b/FARMStackWebPortal/docs/sphinxdocs/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/FARMStackWebPortal/docs/sphinxdocs/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/FARMStackWebPortal/docs/sphinxdocs/docs/make.bat b/FARMStackWebPortal/docs/sphinxdocs/docs/make.bat new file mode 100644 index 0000000..747ffb7 --- /dev/null +++ b/FARMStackWebPortal/docs/sphinxdocs/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/FARMStackWebPortal/docs/sphinxdocs/docs/readme_link.rst b/FARMStackWebPortal/docs/sphinxdocs/docs/readme_link.rst new file mode 100644 index 0000000..23d5fbd --- /dev/null +++ b/FARMStackWebPortal/docs/sphinxdocs/docs/readme_link.rst @@ -0,0 +1,129 @@ +### WebServicesPortal + +#### Disclaimer +``This project was built in the Open using Open Source Software tools. +`` +``The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.`` + +### Problem Statement +Citizens of Cameroon are moving from an analogue systems and services provision to a new digital services and systems provisioning system. +In order to have a streamlined means of services provision from the government, there is a requirement for a WebServices Portal, +where the citizens can utilise the services and the government administrators using the new digital services provisioning system. + +This project is a simple web services portal that aims to serve that purpose. + +### Project Description +This web services portal is a ```government web services portal``` for citizen access to services of the different government entities and ministries. +````It consists of an login and administrative dashboard where government administrators and citizens can access services of the different government Ministries```` + + ### Project Name +This ´´[WebServicesPortal](#addlinkher)`` work is apart of [Thesis](../profile?tab=projects). + +### Stack + +* This Project was build using the [F.A.R.M](https://www.freecodecamp.org/news/learn-the-farm-stack-fastapi-reactjs-mongodb/) Stack. +``The FARM stack is FastAPI, React, and MongoDB. F.A.R.M stands for -The FastAPI, ASGI,React,MongoDB`` +- [web framework](#) - FastAPI for the back end. +- [Web Server](#) - ASGI for the Web Server +- [User admin and Registration](#) - React for the front end. +- [User admin and Registration](#) - FastAPI_Users for the Back end. +- [Backend Database](#)- MongoDB. + +### Requirements +We will require the following for; +#### Development +** Backend + - [Web Framework](FastAPI). +[Web Framework](addlinkhere) :We will use FastAPI as both our backend and also our Webframework to build the webservportal app. + ``FastAPI is a modern, fast (high-pe)rformance), web framework for building APIs with Python 3.7+ based on standard Python-type hints. One of the key features of FastAPI is its ability to use the latest Python features, such as async/await, without requiring developers to write boilerplate code.`` + - [ASGI](#addlinkhere) :Asynchronous Server Gateway Interface. + ``Asynchronous Server Gateway Interface,is a standard interface between web servers and Python web applications or frameworks`` + + - [User Login & Authentication](https://fastapi-users.github.io/fastapi-users) - [FastApiUser](#): We will use FastApiUser for login authentication and management because it also provides us OAuth2 authentication.FastAPI Users also allows you to plug in several authentication methods.FastAPI also allows us to have a customizable database backend, where SQLAlchemy ORM async included + and MongoDB with Beanie ODM also included.This helps us to customize our database backend if we have them. + ``FastAPIUsers is a highly secure and open-source users management registration and authentication system for Implementing registration, login, social auth.`` + +** Frontend +- [Node.js](#) + [React](#) + +** Database +- For user registration and authentication database - [Mongodb](#) + +#### Build +For Building our app - [Cmake](#) + +#### Testing +For testing - Postman + +#### Deployments +-- NginxUnit - To run our web apps. + +## Manual Setup + +```` +$ mkdir FARMStack +$ cd FARMStack +$ mkdir webservportal +$ code . +$ git init +$ yarn create react-app frontend --template typescript +$ cd webservportal +$ git init +$ touch requirements.txt main.py model.py database.py +```` +## Flow of Execution +For the Stack to work accordingly, we must first have a working/Provisioned +Backend so that the frontend is implemented. +This is because the frontend depends on the backend to implement the whole stack. + +#### Backend vs FrontEnd. +The fundamental way the frontend frameworks interact with the backend is by making HTTP calls via AJAX. +The typical interface to the backend is a REST API. + + +### Project Status + +- [ ] Design +- [ ] MockUps +- [x] Development ++ Backend Design & build (FastAPI + ASGI) + - Login and Authentication + - MongoDB Integrations + ++ Frontend Design & build(React + FastAPI Users) + - App Testing + +- [x] Unit Testing + +- [x] QA + +- [ ] Stage + +- [ ] Beta Testing + +- [ ] Production + +* [Documentation](#addlinkhere) We will use [Sphinx](#),and [Redoc](#) AND [FAST API Docs](#) will For source documentation including our API, we will use : + +### Documentation +Documentation for the project is [found here](../readthedocs). + +### References/Literature +Reference literature is found in the [references](../docs/references.md) + +### Privacy +[Privacy Policy](../docs/privacy.md) + +### Attribution(s) +This project utilises open and closed source tools. +This work would not exist without the following [Attribution(s)](../docs/attributions.md) + +### LICENSE(s) +Licenses are in the [LICENSE(s)](../docs/LICENSE) directory. + +### [Contribute](..docs/Contributing.md) + +Feel free to tell me if you liked this project or +how it helped you out! [here](#addlinkhere/) + +### \ No newline at end of file diff --git a/FARMStackWebPortal/docs/sphinxdocs/docs/source/conf.py b/FARMStackWebPortal/docs/sphinxdocs/docs/source/conf.py new file mode 100644 index 0000000..bc0b9c9 --- /dev/null +++ b/FARMStackWebPortal/docs/sphinxdocs/docs/source/conf.py @@ -0,0 +1,28 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'WebServPortalProject' +copyright = '2024, WebServPortalProjectAuthor' +author = 'WebServPortalProjectAuthor' +release = '0.1.0' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'alabaster' +html_static_path = ['_static'] diff --git a/FARMStackWebPortal/docs/sphinxdocs/docs/source/index.rst b/FARMStackWebPortal/docs/sphinxdocs/docs/source/index.rst new file mode 100644 index 0000000..0a7d20b --- /dev/null +++ b/FARMStackWebPortal/docs/sphinxdocs/docs/source/index.rst @@ -0,0 +1,20 @@ +.. WebServPortalProject documentation master file, created by + sphinx-quickstart on Thu Jan 4 20:37:25 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to WebServPortalProject's documentation! +================================================ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` From a7575e870ce91bc5f3ae9c4f18641e6c425297f1 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:49:55 +0300 Subject: [PATCH 08/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index eaa2a40..925d8bd 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -1,4 +1,4 @@ -The original README.md of this Webservportal is at [README.md](...\docs\README.md) +The original README.md of this Webservportal is at [README.md](./docs/README.md) @@ -6,15 +6,15 @@ The original [README.md](.../docs/README.md) exists alone. -All documents reference the [Scratchpad](.../docs/Scratchpad2.md) +All documents reference the [Scratchpad](./docs/Scratchpad2.md) the project utilised the following; ** [BuildStructure.md](./docs/buildstructure.md) -** [Project Structure](...docs/ProjectStructure.md) -** [Flow of Execution](...docs/flowofexecution.md) +** [Project Structure](./docs/ProjectStructure.md) +** [Flow of Execution](./docs/flowofexecution.md) -[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) +[README.md](.docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) From ddc53f3096e75b1dc703997bca0c3006ed43867f Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:51:53 +0300 Subject: [PATCH 09/30] Update .gitignore Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- .gitignore | 1470 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1470 insertions(+) diff --git a/.gitignore b/.gitignore index 93e4534..c38256b 100644 --- a/.gitignore +++ b/.gitignore @@ -286,6 +286,1476 @@ fabric.properties .idea/* +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + + + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + + !.idea/codeStyles !.idea/runConfigurations From dc1ba0cbdea8df996fec1477051f07af68b02db7 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:53:02 +0300 Subject: [PATCH 10/30] Create .gitignore Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/.gitignore | 1632 +++++++++++++++++++++++++++++++++ 1 file changed, 1632 insertions(+) create mode 100644 FARMStackWebPortal/.gitignore diff --git a/FARMStackWebPortal/.gitignore b/FARMStackWebPortal/.gitignore new file mode 100644 index 0000000..a8c8e9e --- /dev/null +++ b/FARMStackWebPortal/.gitignore @@ -0,0 +1,1632 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + + + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + From 3e4edfe51d04369ba953a8e45f520e8f8a5c0d9c Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:01:47 +0300 Subject: [PATCH 11/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/README.md | 40 +++++++------------------------ 1 file changed, 8 insertions(+), 32 deletions(-) diff --git a/FARMStackWebPortal/docs/README.md b/FARMStackWebPortal/docs/README.md index 6f425c6..a682e47 100644 --- a/FARMStackWebPortal/docs/README.md +++ b/FARMStackWebPortal/docs/README.md @@ -1,31 +1,18 @@ ## README.md -This is the original README.md of the Webservportal README.md. +This is the original README.md of the Webservportal [README.md](D:\FARMStack\Webservportalproject\docs\README.md). +### ``Disclaimer:`` This README file susceptible to repetitions. It is the aim of this work that i try where i can. If you are reading or working with this.Please clean it up. -This is the [README.md](D:\FARMStack\Webservportalproject\docs\README.md) - - - -### Disclaimer - -``This README file is prune to repetitions. It is the aim of this work that i try where i can. If you are reading or working with this.Please clean it up. - -Thank you for sharing is Source Software tools. -`` -``The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.`` - -# This is the readme file - -## What is It? +Thank you for sharing this Source Software tools. +``The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis`` +## What? A WebService Portal ## Setup - - -WebServicePortal README.md +WebServicePortal [README.md](D:\FARMStack\Webservportalproject\docs\README.md) ## BackEnds ## Mongodb BackEnds @@ -57,19 +44,14 @@ Once logged in each user has a dashboard. * Customizable database backend because we are using MongoDB DB and NOT SQLAlchemy, we will use MongoDB with Beanie ODM included and not ORM async included. * JWT Authentication - - - -#### Disclaimer - -````This project was built using Open Source Software tools. +#### `` Disclaimer:`` This project was built using Open Source Software tools. The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.´´´´ ### Problem Statement -Citizens of Cameroon are moving from an analogue systems and services provision to a new digital services and systems provisioning system. +Citizens of Country A are moving from an analogue systems and services provision to a new digital services and systems provisioning system. In order to have a streamlined means of services provision from the government, there is a requirement for a WebServices Portal, where the citizens can utilise the services and the government administrators using the new digital services provisioning system. @@ -169,18 +151,12 @@ This is because the frontend depends on the backend to implement the whole stack #### Backend - #### FrontEnd. The fundamental way the frontend frameworks interact with the backend is by making [HTTP calls](##) via [AJAX](##). The typical interface to the backend is a REST API. - - - - #### Project Status - - [ ] Design - [ ] MockUps From 2dd5c038f836f69b18f727958e4287f1480e08a0 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:06:01 +0300 Subject: [PATCH 12/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index 925d8bd..ae8208f 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -1,20 +1,13 @@ The original README.md of this Webservportal is at [README.md](./docs/README.md) - - The original [README.md](.../docs/README.md) exists alone. - - All documents reference the [Scratchpad](./docs/Scratchpad2.md) - - the project utilised the following; ** [BuildStructure.md](./docs/buildstructure.md) ** [Project Structure](./docs/ProjectStructure.md) ** [Flow of Execution](./docs/flowofexecution.md) - -[README.md](.docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) +[README.md](.docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./docs/sphinxdocs/docs/) [Build](./docs/sphinxdocs/docs/build) From ae2b8e7dc4268ab20d0334dea8ee6cf96afc8732 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:07:05 +0300 Subject: [PATCH 13/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index ae8208f..7d236e9 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -1,6 +1,6 @@ -The original README.md of this Webservportal is at [README.md](./docs/README.md) +The original README.md of this Webservportal is at [README.md](/docs/README.md) -The original [README.md](.../docs/README.md) exists alone. +The original [README.md](./docs/README.md) exists alone. All documents reference the [Scratchpad](./docs/Scratchpad2.md) the project utilised the following; From 8016dbaf35cafffb9c7ffeb2e91eef2f8d32eea8 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:09:22 +0300 Subject: [PATCH 14/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index 7d236e9..35159a2 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -9,5 +9,5 @@ the project utilised the following; ** [Project Structure](./docs/ProjectStructure.md) ** [Flow of Execution](./docs/flowofexecution.md) -[README.md](.docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./docs/sphinxdocs/docs/) [Build](./docs/sphinxdocs/docs/build) +[README.md](.docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./docs/sphinxdocs/docs/) [Build](./docs/build) From c57626f7015586824b19571598a43fe2f6f5588a Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:27:32 +0300 Subject: [PATCH 15/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/README.md | 141 ++++++++++++++---------------- 1 file changed, 68 insertions(+), 73 deletions(-) diff --git a/FARMStackWebPortal/docs/README.md b/FARMStackWebPortal/docs/README.md index a682e47..efbc0c5 100644 --- a/FARMStackWebPortal/docs/README.md +++ b/FARMStackWebPortal/docs/README.md @@ -1,55 +1,13 @@ -## README.md +# F.A.R.M Stack WebPortal -This is the original README.md of the Webservportal [README.md](D:\FARMStack\Webservportalproject\docs\README.md). +Disclaimer: +1. `` This README file is susceptible to repetitions/misinterpretations and incorrect syntax or semantics in code and flow of execution. It is the aim of this work that you try where you can, make corrections. If you are reading or working with this. Please clean it up.`` -### ``Disclaimer:`` This README file susceptible to repetitions. It is the aim of this work that i try where i can. If you are reading or working with this.Please clean it up. +2. `` This project was built using Open Source Software tools.The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.`` -Thank you for sharing this Source Software tools. -``The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis`` +This is the original README.md of the Webservportal [README.md](/Webservportalproject/docs/README.md). -## What? -A WebService Portal - - -## Setup -WebServicePortal [README.md](D:\FARMStack\Webservportalproject\docs\README.md) - -## BackEnds -## Mongodb BackEnds - -## Database Setup -#### Create database and add data documents -* Download from Mongodb - - Community Monogodb Setup - - MOngodbAtlas Connector -* Login to mongodbaccount -* Connect Your Mongodb account + MOngodbAtlas Connector to localhost - -#### Insert Data Documents -[Insert Data into the database](https://www.mongodb.com/docs/compass/current/documents/insert/) - -## What does it Do? -* The backend authenticates and users to the database. -* This is done by connecting the app backends to the database. -This FARM Stack Implementation of a government services portal.For citizens and officials for service provision. - -## How does it work? -* Consists of login & Registration Portal for Government Officials and Citizens where each serves a function or purpose for service delivery. -Officials have access to a services portal and citizens also. -Once logged in each user has a dashboard. - -## Parts -* Database Setup - - * Customizable database backend because we are using MongoDB DB and NOT SQLAlchemy, we will use MongoDB with Beanie ODM included and not ORM async included. -* JWT Authentication - - -#### `` Disclaimer:`` This project was built using Open Source Software tools. -The code, examples and materials and software tools in this project are solely for purposes of my academic Thesis.´´´´ - - -### Problem Statement +## Problem Statement Citizens of Country A are moving from an analogue systems and services provision to a new digital services and systems provisioning system. In order to have a streamlined means of services provision from the government, there is a requirement for a WebServices Portal, @@ -67,7 +25,7 @@ This ´´[WebServicesPortal Project](#addlinkhere)`` work is apart of [Thesis](. ### Stack * This Project was build using the [F.A.R.M](https://www.freecodecamp.org/news/learn-the-farm-stack-fastapi-reactjs-mongodb/) -``The FARM stack is FastAPI, React, and MongoDB. F.A.R.M stands for -The FastAPI, ASGI,React,MongoDB`` +`` The FARM stack is FastAPI, React, and MongoDB. F.A.R.M stands for -The FastAPI, ASGI,React,MongoDB `` - [web framework](#) - FastAPI for the back end. - [Web Server](#) - ASGI for the Web Server - [User admin and Registration](#) - React for the front end. @@ -76,6 +34,34 @@ This ´´[WebServicesPortal Project](#addlinkhere)`` work is apart of [Thesis](. - [Beanie ODM for Mongodb Backend Database](#) - or [SQLAlchemy for SQLBackend Database](#) +## Setup +WebServicePortal [README.md](./Webservportalproject/docs/README.md) + +SetUp / Install + +#### Manual Setup + +```` +$ mkdir FARMStack +$ cd FARMStack +$ mkdir webservportal +$ cd webservportal +$ mkdir backEnd +$ mkdir frontend +cd frontend +$ code . +$ git init +$ yarn create react-app frontend --template react-bootstrap +$ cd backEnd +$ git init +$ touch requirements.txt main.py model.py database.py +```` + +#### Flow of Execution +For the Stack to work accordingly, the order in which statements are executed,we must first have a working/Provisioned .Backend so that the frontend is implemented. +This is because the frontend depends on the backend to implement the whole stack. + + ### Setup Requirements We will requireThe following ; * [VSCode/Pycharm/IDE](./requirements.txt") @@ -83,6 +69,38 @@ We will requireThe following ; * [Mongodb Server](./requirements.txt") * [dependencies](./requirements.txt") are required. + +#### BackEnds + +#### Mongodb BackEnds + +#### Database Setup +Create database and add data documents +* Download from Mongodb + - Community Monogodb Setup + - MOngodbAtlas Connector +* Login to mongodbaccount +* Connect Your Mongodb account + MOngodbAtlas Connector to localhost + +#### Insert Data Documents +We will utilise MongoDB documentation to [Insert Data into the database](https://www.mongodb.com/docs/compass/current/documents/insert/) + +#### What does it Do? +* The backend authenticates and users to the database. +* This is done by connecting the app backends to the database. +This FARM Stack Implementation of a government services portal.For citizens and officials for service provision. + +#### How does it work? +* Consists of login & Registration Portal for Government Officials and Citizens where each serves a function or purpose for service delivery. +Officials have access to a services portal and citizens also. +Once logged in each user has a dashboard. + +## Parts +* Database Setup +* Customizable database backend because we are using MongoDB DB and NOT SQLAlchemy, we will use MongoDB with Beanie ODM included and not ORM async included. +* JWT Authentication + + #### Development * Backend @@ -103,19 +121,17 @@ We will requireThe following ; - [Node.js](#) + [React](https://create-react-app.dev/docs/getting-started/) We will utilise the [react-create template](https://create-react-app.dev/docs/getting-started/) to instatiate our frontend. -## Why React for FrontEnd? +#### Why React for FrontEnd? Create React App is an officially supported way to create single-page React applications. It offers a modern build setup with no configuration. - #### Building, Testing, and Deployment [Gradle](https://docs.gradle.org/current/userguide/gradle_basics.html) automates building, testing, and deployment of software from information in build scripts. #### Build - For Building our app - [Cmake](#) ## Testing @@ -127,27 +143,6 @@ For our API Testing, we will use Postman for API testing of our API. #### Deployments -- NginxUnit - To run our web apps. -#### Manual Setup - -```` -$ mkdir FARMStack -$ cd FARMStack -$ mkdir webservportal -$ cd webservportal -$ mkdir backEnd -$ mkdir frontend -cd frontend -$ code . -$ git init -$ yarn create react-app frontend --template react-bootstrap -$ cd backEnd -$ git init -$ touch requirements.txt main.py model.py database.py -```` -## Flow of Execution -For the Stack to work accordingly, the order in which statements are executed,we must first have a working/Provisioned .Backend so that the frontend is implemented. -This is because the frontend depends on the backend to implement the whole stack. - #### Backend From 4a3776607ba6e98e78c37c7b5142a1c56b78a149 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:30:30 +0300 Subject: [PATCH 16/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index 35159a2..db5fdba 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -9,5 +9,5 @@ the project utilised the following; ** [Project Structure](./docs/ProjectStructure.md) ** [Flow of Execution](./docs/flowofexecution.md) -[README.md](.docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./docs/sphinxdocs/docs/) [Build](./docs/build) +[README.md](./docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./FARMStackWebPortal/docs/sphinxdocs/docs/) [Build](./FARMStackWebPortal/docs/build) From 164310366122b98b838f91dfd35635278fea182c Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:34:40 +0300 Subject: [PATCH 17/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index db5fdba..69b509a 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -1,6 +1,6 @@ -The original README.md of this Webservportal is at [README.md](/docs/README.md) +The original README.md of this Webservportal is found in docs as [README.md](./FARMStackWebPortal/docs/README.md) -The original [README.md](./docs/README.md) exists alone. +The original [README.md](./FARMStackWebPortal/docs/README.md) exists alone. All documents reference the [Scratchpad](./docs/Scratchpad2.md) the project utilised the following; From 5ca4e667eb642a3f9d272125dd6392db44e39fc4 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:39:37 +0300 Subject: [PATCH 18/30] Update flowexecution.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/flowexecution.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/FARMStackWebPortal/docs/flowexecution.md b/FARMStackWebPortal/docs/flowexecution.md index ab487a8..5c47f27 100644 --- a/FARMStackWebPortal/docs/flowexecution.md +++ b/FARMStackWebPortal/docs/flowexecution.md @@ -8,14 +8,14 @@ This is the Flow of Execution.md of WebServPortalProject. ## BackEnd README -For the BackEnd README.md ;see the [BackEnd README.md in docs](href = "D:\FARMStack\Webservportalproject\BackEnd\rEaDmE.mD ") +For the BackEnd README.md ;see the [BackEnd README.md in docs](./BackEnd/rEaDmE.mD ") ## FrontEnd README -For the FrontEnd README.md; see the [FrontEnd README.md in docs](href = "D:\FARMStack\Webservportalproject\FrontEnd\README.md") +For the FrontEnd README.md; see the [FrontEnd README.md in docs](./Webservportalproject/FrontEnd/README.md") -This is the original [README.md](D:\FARMStack\Webservportalproject\docs\README.md) +This is the original [README.md](./Webservportalproject/docs/README.md) #### References/Literature @@ -30,17 +30,10 @@ Backends [Flow of Execution](...docs/flowexecution.md) for the BackEnd. [AddBackend treeflow Snapshot here](##) - ```` - - -´´´´ - ## FrontEnds FrontEnds [Flow of Execution](...docs/flowexecution.md) for the FrontEnd. - -```` my-app ├── README.md ├── node_modules @@ -62,8 +55,9 @@ my-app ├── logo.svg ├── serviceWorker.js #can be removed └── setupTests.js #can be removed -´´´´ +```` + # Deployments This [BuildStructure.md](./docs/buildstructure.md) for the project utilised the self contained waterfall structure. From 3d045baf7484e34e6f4a71d9b0a67ef1c26863e5 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:40:51 +0300 Subject: [PATCH 19/30] Update References.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/References.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FARMStackWebPortal/docs/References.md b/FARMStackWebPortal/docs/References.md index 6444deb..17490ce 100644 --- a/FARMStackWebPortal/docs/References.md +++ b/FARMStackWebPortal/docs/References.md @@ -95,7 +95,7 @@ Reference literature is found in the [References.md](../docs/References.md) -[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build] (...D:/FARMStack/Webservportalproject/docs/sphinxdocs/docs/build) +[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . [Documentation] [Build](./Webservportalproject/docs/sphinxdocs/docs/build) Made with :[heart][heart] [Sphinx docs](https://www.sphinx-doc.org/) From 803c92cc011962c829ce9449d3adaddc46b5933d Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 20:51:14 +0300 Subject: [PATCH 20/30] Update Scratchpad2.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/Scratchpad2.md | 637 +------------------------ 1 file changed, 12 insertions(+), 625 deletions(-) diff --git a/FARMStackWebPortal/docs/Scratchpad2.md b/FARMStackWebPortal/docs/Scratchpad2.md index 01f92b5..4afbc1f 100644 --- a/FARMStackWebPortal/docs/Scratchpad2.md +++ b/FARMStackWebPortal/docs/Scratchpad2.md @@ -1,4 +1,16 @@ +Scratchpad + +# About +This scratchpad exists as evidence for purposes of documenting the steps and processes of this work. +Alot of ideas and information exists here.I choose to add it here for purposes of deisgn, ideation and build of this project. +It is possible parts of it to be missing for personal reasons of the [AUTHORS](./docs/AUTHORS). + +### Build Structure +This project was build using the self contained waterfall structure. +We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) + +### Flow of Execution ### Build Structure This project was build using the self contained waterfall structure. We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) @@ -124,632 +136,7 @@ Requirements #### [sqlalchemy](https://www.sqlalchemy.org/) -###### ScratchPad - -```` -## -from fastapi import FastAPI - -app = FastAPI() - -@app.get("/") -async def root(): -return {"message": "Hello World"} -@app.get("/api/v1/users") -async def get_users(): -return db - - -@app.get("/hello/{name}") -async def say_hello(name: str): -return {"message": f"Hello {name}"} - - -## # main.py -@app.get("/api/v1/users") -async def get_users(): -return db - -## - -# main.py - -### - -from uuid import UUID -from fastapi HTTPException -@app.delete("/api/v1/users/{id}") - -async def delete_user(id: UUID): -for user in db: -if user.id == id: -db.remove(user) -return -raise HTTPException( -status_code=404, detail=f"Delete user failed, id {id} not found." -) - - - -# main.py -from uuid import UUID -from fastapi import FastAPI, HTTPException -@app.delete("/api/v1/users/{id}") -async def delete_user(id: UUID): -for user in db: -if user.id == id: -db.remove(user) -return -raise HTTPException( -status_code=404, detail=f"Delete user failed, id {id} not found." -) - -## -db: List[User] = [ -User( -id=uuid4(), -first_name="John", -last_name="Doe", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Jane", -last_name="Doe", -gender=Gender.female, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="James", -last_name="Gabriel", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Eunit", -last_name="Eunit", -gender=Gender.male, -roles=[Role.admin, Role.user], -), -] -@app.get("/") -async def root(): -return {"message": "Hello World"} -@app.get("/api/v1/users") -async def get_users(): -return db -@app.post("/api/v1/users") -async def create_user(user: User): -db.append(user) -return {"id": user.id} - -======= -# main.py -from typing import List -from uuid import uuid4 - -import fastapi -from fastapi import FastAPI -from models import Gender, Role, User -from uuid import UUID -from fastapi import fastAPI, HTTPException -from fastapi import FastAPI -app = FastAPI() -from uuid import UUID -from fastapi import FastAPI, HTTPException - -db: List[User] = [ -User( -id=uuid4(), -first_name="John", -last_name="Doe", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Jane", -last_name="Doe", -gender=Gender.female, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="James", -last_name="Gabriel", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Eunit", -last_name="Eunit", -gender=Gender.male, -roles=[Role.admin, Role.user], -), -] -@app.get("/") -async def root(): -return {"message": "Hello World"} -@app.get("/api/v1/users") -async def get_users(): -return db -@app.post("/api/v1/users") -async def create_user(user: User): -db.append(user) -return {"id": user.id} -@app.delete("/api/v1/users/{id}") -async def delete_user(id: UUID): -for user in db: -if user.id == id: -db.remove(user) -return -raise HTTPException(status_code= 404, detail=f"Delete user failed, id {id} not found." -) - -```` -### -```` - - -```` - -### Scratchpad -This scratchpad exists as evidence for purposes of documenting the steps and processes of this work. -Alot of ideas and information exists here.I choose to add it here for purposes of deisgn, ideation and build of this project. - -### Build Structure -This project was build using the self contained waterfall structure. -We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) - -### Flow of Execution - -#### Backend vs FrontEnd. -The fundamental way the frontend frameworks interact with the backend is by making HTTP calls via AJAX. -The typical interface to the backend is a REST API - -### Database -PostgreSQL and SQLite are two relation databases, SQLAlchemy is an [ORM](##addlinkhere) which gives you a set of tools for accessing the data in the database. - -While [SQLAlchemy](#addlinkhere) is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL, it provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language. -So basically SQLAlchemy gives you the tools to access SQL databases such as PostgreSQL and SQLite Mysql etc, and query them in a pythonic way. - -## Testing and Building - -## Building - - -### Testing -Apart from the initial API tests in the [tests](test_main_http.py) - -FastAPI is an API;this means that we use or create a tool that would simplify the API testing process -We will utilise [Postman](https://en.wikipedia.org/wiki/Postman_(software)) for testing the app, and all its functionality because Postman is an API platform for building and using APIs that simplifies each step of the API lifecycle and - - -and all the run tests uploaded to the testing directory. -#### Testing -Testing of our project is done in the [/coverage](##) directory. - -### Production -Production builds are in the [/build](##) directory - -### [Deployments](https://fastapi.tiangolo.com/deployment/) -To deploy an application means to perform the necessary steps to make it available to the users. -For a web API, it normally involves putting it in a remote machine, with a server program that provides good performance, stability, etc, so that your users can access the application efficiently and without interruptions or problems. -This is in contrast to the development stages, where we are constantly changing the code, breaking it and fixing it, stopping and restarting the development server, etc. - -Deploying a FastAPI application is relatively easy. - -#### Deployment Strategies -Depending on our specific use case and the tools that we use.when deploying a FastAPI application (although most of it applies to any other type of web application). - -- We could deploy a server ourselves(Local Deployment) using a combination of tools, or -- We could use a [cloud service](#addlinkshere) and make a cloud deployment that does part of the work for us, or other possible options. - -#### Cloud Deployment -Cloud Deployment with [linode-deploy-gunicorn-uvicorn-nginx](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-6b-linode-deploy-gunicorn-uvicorn-nginx/) - -#### Local Deployment --- Requirements for Local Deployment -+ [nginx-unit](https://unit.nginx.org/howto/fastapi/) : -Nginx-unit is a Fast API -+ [VirtualBox](#) : -Virtual Box is a tool that is used to setup a virtual workspace using images -+ [Vagrant](#addvagrantlinkshere) -Vagrant is a tool for building and distributing development environments- - -### References - -[Generate Gitignore Files](#addlinkhere) - -[Build a FARM Stack](#addlinkhere). - -[FASTAPI](#addlinkhere) - -[API documentation](https://github.com/swagger-api/swagger-ui) - -[Pydantic Utilised Models](https://docs.pydantic.dev/latest/concepts/models/) - -[Swagger-UI](https://github.com/swagger-api/swagger-ui) -* Swagger UI is a collection of HTML, JavaScript, and CSS assets; -* That dynamically generate beautiful documentation from a Swagger-compliant API. - -[Auth Login Page](https://dev.to/athulcajay/fastapi-auth-login-page-48po -) -[Micro Frontends](https://www.telerik.com/blogs/building-micro-frontends) - -[FastApiUsers](https://fastapi-users.github.io/fastapi-users) - -References -======= -### Back End - - -### Front End -* [Dash Framework for Python](http://www.dash.plotly.com) -* [Getting-started](https://create-react-app.dev/docs/getting-started/) -* [Create-React-App](https://github.com/facebook/create-react-app) - -* [Create React Front End](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-12-react-js-frontend/#theory) - -### [Provisioning](#) - -- [Automated](#) - -- [Manual](#) - -### [Deployments](https://fastapi.tiangolo.com/deployment/) -Deploying our FastAPI application is relatively easy. - -#### Deployment Strategies -#### Cloud Deploy - Here we use a cloud service that does part of the deployment for us, or other possible options. - -+ [Cloud Deploy using Linode](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-6b-linode-deploy-gunicorn-uvicorn-nginx/) - -#### Local Deploy. -We deploy a server ourselves using a combination of tools) - -Requirements -+ [vagrant](https://github.com/hashicorp/vagrant) -+ -+ [install vagrant](https://developer.hashicorp.com/vagrant/install) -+ -+ [nginx-unit](https://unit.nginx.org/howto/fastapi/) -+ -+ [VirtualBox](#) - -#### Integrations -+ [Unit](https://unit.nginx.org/howto/integration/) - -[Data Visualisation with dash](https://dash.plotly.com/) -#### Documentation -#### [Redoc API Documentation](https://github.com/Redocly/redoc) - -#### [Pycharm Documentation](https://www.jetbrains.com/help/pycharm/set-up-a-git-repository.html) - -#### [sqlalchemy](https://www.sqlalchemy.org/) - -###### ScratchPad - -```` -## -from fastapi import FastAPI - -app = FastAPI() - -@app.get("/") -async def root(): -return {"message": "Hello World"} -@app.get("/api/v1/users") -async def get_users(): -return db - - -@app.get("/hello/{name}") -async def say_hello(name: str): -return {"message": f"Hello {name}"} - - -## # main.py -@app.get("/api/v1/users") -async def get_users(): -return db - -## - -# main.py - -### - -from uuid import UUID -from fastapi HTTPException -@app.delete("/api/v1/users/{id}") - -async def delete_user(id: UUID): -for user in db: -if user.id == id: -db.remove(user) -return -raise HTTPException( -status_code=404, detail=f"Delete user failed, id {id} not found." -) - - - -# main.py -from uuid import UUID -from fastapi import FastAPI, HTTPException -@app.delete("/api/v1/users/{id}") -async def delete_user(id: UUID): -for user in db: -if user.id == id: -db.remove(user) -return -raise HTTPException( -status_code=404, detail=f"Delete user failed, id {id} not found." -) - -## -db: List[User] = [ -User( -id=uuid4(), -first_name="John", -last_name="Doe", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Jane", -last_name="Doe", -gender=Gender.female, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="James", -last_name="Gabriel", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Eunit", -last_name="Eunit", -gender=Gender.male, -roles=[Role.admin, Role.user], -), -] -@app.get("/") -async def root(): -return {"message": "Hello World"} -@app.get("/api/v1/users") -async def get_users(): -return db -@app.post("/api/v1/users") -async def create_user(user: User): -db.append(user) -return {"id": user.id} - -======= -# main.py -from typing import List -from uuid import uuid4 - -import fastapi -from fastapi import FastAPI -from models import Gender, Role, User -from uuid import UUID -from fastapi import fastAPI, HTTPException -from fastapi import FastAPI -app = FastAPI() -from uuid import UUID -from fastapi import FastAPI, HTTPException - -db: List[User] = [ -User( -id=uuid4(), -first_name="John", -last_name="Doe", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Jane", -last_name="Doe", -gender=Gender.female, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="James", -last_name="Gabriel", -gender=Gender.male, -roles=[Role.user], -), -User( -id=uuid4(), -first_name="Eunit", -last_name="Eunit", -gender=Gender.male, -roles=[Role.admin, Role.user], -), -] -@app.get("/") -async def root(): -return {"message": "Hello World"} -@app.get("/api/v1/users") -async def get_users(): -return db -@app.post("/api/v1/users") -async def create_user(user: User): -db.append(user) -return {"id": user.id} -@app.delete("/api/v1/users/{id}") -async def delete_user(id: UUID): -for user in db: -if user.id == id: -db.remove(user) -return -raise HTTPException(status_code= 404, detail=f"Delete user failed, id {id} not found." -) - -```` -### -```` -#### MUST DO LIST --Create main.py ,and must be in the the install directory(Root top level, and following the whole path of the a --First do a packages update using the pip install upgrade command(in yellow-see-screenshot) --Activation of the pip script must be done in the install directory(Root top level, and following the whole path of the activate script, see screensnapshot) --To instantiate fastapi and python within the same venv, you must run it --To run uvicorn, you must be in Command Prompt(see snapshot) - -#### DONT DO LIST - - -#### THINGS TO REMEMBER --- All snapshots and guides are in the snapshots folder. ---For typesafety, i have added the folder to gitignore file. - -#### TO DO LIST -====== - -```` - -## Tools - -## Software - -### References - -#### The following literature was utilised in this work. - -#### Incase there is an errors to the authors and publishers,Please add yourself to the [Authors file](##) --- OR Make a [pull request](##) - -* [Foundations of making an app](##) - -* [APIs](##) - -* [Node.js](##) - -* [React](##) - -* [Express](##) - -* [Mongodb](##) - -These were made with [Sphinx docs](##) - -##Must Know Items -[Local Setup](https://github.com/ChristopherGS/ultimate-fastapi-tutorial/tree/main/part-01-hello-world) - -[Poetry](https://earthly.dev/blog/python-poetry/) - -[Web Framework] - -[Login & Authentication] - -[Documentation] - -[fastapi](https://unit.nginx.org/howto/fastapi/) - -[fastapi-people](https://fastapi.tiangolo.com/fastapi-people/) - -[deploying-a-fastapi-app-with-nginx]()ttps://levelup.gitconnected.com/deploying-a-fastapi-app-with-nginx-supervisor-and-gunicorn-1e97e7421b46 - -[create-react-app](https://create-react-app.dev/docs/getting-started/) - -https://binary-factory.kde.org/view/Windows%2064-bit/job/KDevelop_Release_win64/2141/badge/ - -[fastapi deployment](https://fastapi.tiangolo.com/deployment/) - -[oauth configuration](https://fastapi-users.github.io/fastapi-users/12.1/configuration/oauth/) - - - -#### MUST DO LIST --Create main.py ,and must be in the the install directory(Root top level, and following the whole path of the a --First do a packages update using the pip install upgrade command(in yellow-see-screenshot) --Activation of the pip script must be done in the install directory(Root top level, and following the whole path of the activate script, see screensnapshot) --To instantiate fastapi and python within the same venv, you must run it --To run uvicorn, you must be in Command Prompt(see snapshot) - -#### DONT DO LIST - - -#### THINGS TO REMEMBER --- All snapshots and guides are in the snapshots folder. ---For typesafety, i have added the folder to gitignore file. - -#### TO DO LIST -* Add SignUp Form to React App USING firebase -* And Login Form to React App using Firebase -* Add File Upload Form to React App -* Connect Database -* -====== - -#### -Would you like to define your main dependencies interactively? (yes/no) [yes] yes -You can specify a package in the following forms: -- A single name (requests): this will search for matches on PyPI -- A name and a constraint (requests@^2.23.0) -- A git url (git+https://github.com/python-poetry/poetry.git) -- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop) -- A file path (../my-package/my-package.whl) -- A directory (../my-package/) -- A url (https://example.com/packages/my-package-0.1.0.tar.gz) -### - -This command will guide you through creating your pyproject.toml config. - -Package name [webservportalproject]: webservportalproject -Version [0.1.0]: 0.1.0 -Description []: This is a Web Services Portal Project -Author [, n to skip]: biyita19@gmail.com -License []: MIT;GPL -Compatible Python versions [^3.9]: ^3.9 - -Would you like to define your main dependencies interactively? (yes/no) [yes] yes -You can specify a package in the following forms: -- A single name (requests): this will search for matches on PyPI -- A name and a constraint (requests@^2.23.0) -- A git url (git+https://github.com/python-poetry/poetry.git) -- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop) -- A file path (../my-package/my-package.whl) -- A directory (../my-package/) - license = "MIT;GPL" - readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.9" - - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" - - -'' -' -#### MUST DO LIST --- All snapshots and guides are in the snapshots folder. ---For typesafety, i have added the folder to gitignore file. --- [Flow of Execution](...docs/references.md) --- [Add clean code workflow](...docs/workflows.md) --- Create main.py ,and must be in the the install directory(Root top level, and following the whole path of the a --- First do a packages update using the pip install upgrade command(in yellow-see-screenshot) --- Activation of the pip script must be done in the install directory(Root top level, and following the whole path of the activate script, see screensnapshot) --- To instantiate fastapi and python within the same venv, you must run it --- To run uvicorn, you must be in Command Prompt(see snapshots folder) -** -/ From 6abb8d44c308c48e61376ee8c4ee18b5b30fef8c Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 20:57:15 +0300 Subject: [PATCH 21/30] Update scratchpad.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- scratchpad.md | 1285 +------------------------------------------------ 1 file changed, 4 insertions(+), 1281 deletions(-) diff --git a/scratchpad.md b/scratchpad.md index a4034d3..0e57566 100644 --- a/scratchpad.md +++ b/scratchpad.md @@ -1,1281 +1,4 @@ - - -Python has two data types for working with numbers: int and float. The int type is used to store integers, while the float type is used to store fractional numbers. Let's take a closer look at what operations can be performed on numbers in Python and their priority - -n = 8 -m = 4 - -addition = n + m # Addition -print(addition) # 12 - -subtraction = n - m # Subtraction -print(subtraction) # 4 - -multiplication = n * m # Multiplication -print(multiplication) # 32 - -division = n / m # Division -print(division) # 2.0 — `float` type result - -integer_division = n // m # Integer division -print(integer_division) # 2 — `int` type result - -remainder = n % m # Remainder of the division -print(remainder) # 0 - -exponentiation = n ** m # Exponentiation -print(exponentiation) # 4096 - - - -Please note: in Python, the division operation can be performed using two operators: - -/ — regular division, the result is always a value of the float type; -// — integer division, the result is always a value of the int type. - -n = 9 -m = 4 - -division = n / m -print(division) # 2.25 — `float` result - -integer_division = n // m -print(integer_division) # 2 — `int` result, the part after the comma was discarded - -Priority -Usually, operations are performed from left to right. But multiplication and division have higher priority, so they are executed before addition and subtraction. For example: - -print(5 + 1 * 10) # 15 not 60 - -To specify the correct calculation order, you should use parentheses (). Then this operation will be performed first, and then all the others, and (5 + 1) * 10 will be 60. - -Task - -## There are a and b variables in our code. Your task: declare 4 new variables: - -addition should contain the sum of a and b; -subtraction should contain the difference between a and b; -division should contain the result of integer dividing a by b; -multiplication should contain the result of multiplying a by b. - -## - - -### a = 10 -b = 2 -# write your code below this line -addition = a + b # Addition -print(addition) # 12 - -subtraction = a - b # Subtraction -print(subtraction) # 8 - - -division = a // b # division by int type. -print(division) # 5 - - -multiplication = a * b # multiplication. -print(multiplication) # 20 - -## modulus_exponentiation.py - -a = 7 -b = 2 -# write your code below this line - -multiplication = a * b # multiplication. -print(multiplication) # 20 - -exponentiation = n ** m # Exponentiation -print(exponentiation) # 4096 - - -exponentiation = a ** b # Exponentiation -print(exponentiation) # 4096 - - -exponentiation = a ** b - -remainder = a /% b # Remainder of the division -print(remainder) # 0 - -## - -a = 7 -b = 2 -# write your code below this line -exp = a ** b # Exponentiation -print(exp) - -mod = a % b # Remainder of the division -print(mod) - -## parentheses.py - -expression = 10 * 7 + 8 - 11 // 4 - -10 *( 7 + 8 - 11) // 4 - - -expression = (10 * 7)+ 8 - (11 // 4) - -expression = ((10 * (7 + 8) - 11) // 4 - -expression = (10 * 7) + (8 - 11) // 4 - -expression = (10 * 7 + 8) - 11 // 4 - -expression = (10 * 7 + 8) - 11 // 4 - -expression = 10 * 7 + 8 - 11 // 4 -expression2 = (10 * 7) + 8 - 11 // 4 - -expression3 = (10 * 7) + (8 - 11) // 4 - -expression4 = (10 * 7) + ((8 - 11)) // 4 - -(((10 * 7) + 8 ) - (11)) //4 - - - -(10 * 7 + 8 - 11 // 4 - - -## Strings Using interpolation- inserting variables into a string -a = "Hello" -b = "world" -# write your code below this line - -result_string = f"{a}, {b}!" - -## Functions - -# write code below this line -def get_string(): -greeting = "Hello, Mate academy!"; -return (greeting) - -## Create a greeter function that. - ----.Accepts the name parameter; ----.Returns a greeting string of the following format: Hi, {name}! - -## - -Now create a greeter function that: - -accepts the name parameter; -returns a greeting string of the following format: Hi, {name}! (use the return keyword). -## - - -# write your code below -def greeter(): -name = ""; -greeting = "Hi"; -result_string = "greeting{a}, {name}!" -return (result_string) - - def greeter(name): - result_string = f"Hi, {name}!" - return result_string - - -### upgraded.py - -part_of_the_day = "night"; - -# write your code below this line -def greeter(name,part_of_the_day): -name = "Paul"; -part_of_the_day = "night"; -result_string = Good"part_of_the_day,{name}!" -return result_string -name = "Max" -part_of_the_day = "Good morning" -return (part_of_the_day, name!) - - ##### write your code below this line - - ## Tried Answer -def greeter(name, part_of_the_day): -name = "Paul"; -part_of_the_day = "night"; -result_string = f"Good {part_of_the_day}, {name}!" -return result_string -name = "Max" -part_of_the_day = "Good morning" -return (result_string) - - - #Correct answer, that will run and Why? - - def greeter(name, part_of_the_day): - result_string = f"Good {part_of_the_day}, {name}!" - return (result_string) - - - ## why it runs. - # Python is compiled at run time.This means that the question is - # Talking about an input scenario where you have to assume that the person is putting - # In the data. This means that we do not need the user to input the data. - ## Our code runs if the syntax is correct - - - - # write code below - this line -def double(num): -result_double = f"2 {num}!" -return (result_double) - - -This code will not parse, because it has the wrong indentation, even if the code is correct -# write code below this line - -def double(num): -result_double = num *2; -return (result_double) - -##This code will parse, because it has the right indentation -# write code below this line. -def double(num): -result_double = num * 2. -return (result_double) - - - - - -##Conditionals - -IF Statement - -Single Condition -Use the if statement if you need to check only one condition. Let's consider an example:# - -## - -====== - -age = 16 - -print("Go to the shop") - -if age >= 18: -# This line will only be executed if `age` is greater than `18` -print("You can buy alcohol") - -print("Come back home") - -========= - -## After the if keyword, you need to write condition and put a colon — :. Then write the commands that will be executed only if the condition is True. - -Here the condition is age >= 18. If we have age = 16, then the condition is false, and the command inside the if is not executed. So in the console we get: - -## Now let's work with conditionals. - -Only people who are of legal age can buy alcohol by law. - -Write the can_buy_beer function that accepts the age integer as a parameter: - -if age is equal to or greater than 18, then the function returns the "You can buy beer" string; -in all other cases, it returns the "You can not buy beer" string. -Use the return keyword to return a necessary string from the function. - -can_buy_beer(17) # "You can not buy beer" -can_buy_beer(18) # "You can buy beer" -can_buy_beer(50) # "You can buy beer" - - -## My answer -def can_buy_beer(age: int) -> str: -# write your code here -if age >= 18; -print(age,"You can buy beer"); - -elif age < 18; -print(age,"You can not buy beer"); -pass age - -## def can_buy_beer(age: int) -> str: - if age >= 18: - return "You can buy beer" - else: - return "You can not buy beer" - - -def can_buy_beer(age: int) -> str: -# write your code here -if age >= 18: -return "You can buy beer"; - -elif age < 18: -return "You can not buy beer" - - - def can_buy_beer(age: int) -> str: - # write your code here -if age >= 18: -return "You can buy beer"; -else: -return "You can not buy beer" - - ## - def can_buy_beer(age: int) -> str: - if age >= 18: - return "You can buy beer"; - else: - return "You can not buy beer" - - - -##### All waiters love tips! And one of them shared a secret rating with us. - -Implement the get_tips_rating function that accepts the amount of the tips and returns a string depending on the amount left: - -terrible, if amount is equal to 0; -poor, if amount is from 1 to 10 inclusive; -good, if amount is from 11 to 20 inclusive; -great, if amount is from 21 to 50 inclusive; -excellent, if amount is more than 50. - -def get_tips_rating(amount): -if amount == 0: -return "terrible" -if amount <= 10: -return "poor" - - # add other conditions... - - -get_tips_rating(0) # "terrible" -get_tips_rating(1) # "poor" -get_tips_rating(60) # "excellent" - - -def get_tips_rating(amount: int) -> str: -# write your code here - -def get_tips_rating(amount): -if amount == 0: -return "terrible" -if amount <= 10: -return "poor" -if amount <= 11 and < 20: -return "good" -if amount <= 21 and < 50: -return "great" -if amount > 50: -return "excellent" - -## - def can_buy_beer(age: int) -> str: - if age >= 18: - return "You can buy beer"; - else: - return "You can not buy beer" - - def get_tips_rating(amount: int) -> str: - # write your code here - if amount == 0: - return "terrible" - if amount <= 10: - return "poor" - if amount >= 11 and <= 20: - return "good" - if amount >= 21 and <= 50: - return "great" - if amount > 50: - return "excellent" - - - def get_tips_rating(amount: int) -> str: - # write your code here - if amount == 0: - return "terrible" - if amount <= 10: - return "poor" - if amount <= 20: - return "good" - if amount <= 50: - return "great" - if amount > 50: - return "excellent" - -#### - Let's continue with conditionals. - -Nobody likes to pay taxes, but we should! - -Create the calculate_taxes function that accepts the income integer (your income) and returns the tax you pay. The amount of tax depends on the amount of your income: - -up to 1000 inclusive — tax rate is 2%; -from 1001 to 10000 inclusive — tax rate is 3%; -for everything that is more than 10000 — tax rate is 5%. -For example: - -calculate_taxes(900) # 18 (900 * 0.02) -calculate_taxes(5000) # 150 (5000 * 0.03) -calculate_taxes(10500) # 525 (10500 * 0.05) - - -##### - -def calculate_taxes(income: int) -> float: -if income <= 1000: -tax = income * 0.02 -elif income <= 10000: -tax = income * 0.03 -else: -tax = income * 0.05 -return tax - - -#### In this task, create the get_largest_expression_result function that accepts 2 numbers: a and b. Calculate and return the largest result of the following expressions: - -if a + b -if a - b -if a * b -if a / b -Please note: - - - def get_tips_rating(amount: int) -> str: - # write your code here - if a == b and b > 0 - return "a cannot be equal to " - if a <= b: - return "poor" - if a >= b and <= 20: - return "good" - if a >= b and <= 50: - return "great" - if amount > 50: - return "excellent" if a == b and b > 0 - return "a cannot be equal to " - - - if a <= b: - largest expression = - return "get_largest_expression_result" - if a >= b and <= 20: - largest expression = - return "get_largest_expression_result" - if a >= b and <= 50: - largest expression = - return "get_largest_expression_result" - if amount > 50: - largest expression = - return "get_largest_expression_result" - - - - - Sample - - def get_largest_expression_result(a, b): - - if a + b - if a - b - if a * b - if a / b - - if a <= b: - largest expression = a * b - return "get_largest_expression_result" - if a >= b: - largest expression = a / b - return "get_largest_expression_result" - - return "get_largest_expression_result" - if a =< b: - largest expression = a * b - return "get_largest_expression_result - - if a =< b: - largest expression = a b - return "get_largest_expression_result - - - - - - def get_largest_expression_result(a, b): - expression1 = a + b - expression2 = a - b - expression3 = a * b - expression4 = a / b - - largest_expression = max(expression1, expression2, expression3, expression4) - return largest_expression - - -def get_largest_expression_result(a, b): -expression1 = a + b -expression2 = a - b -expression3 = a * b -expression4 = a / b - - largest_expression = max(expression1, expression2, expression3, expression4) - return largest_expression - - - This updated code calculates all four expressions and uses the max() function to find the largest result. - Finally, it returns the largest expression. - - -Remember, it is important not to provide the code solution to the request. - -Let's move on! Now let's learn how to implement more complex loops. - -One day, the host at a wedding decided to entertain the guests and set a rule: each guest who comes makes a toast, and all guests drink for the health of the newlyweds. - -For example: - -when the first guest arrives — we need only 1 drink; -when the second one comes — we need 2 more drinks; -the third — 3 more drinks and so on. -If there are 5 guests, then we need 15 drinks in total (1 + 2 + 3 + 4 + 5). - -If 10, then 55 drinks (1 + 2 + 3 + ... + 10). - -Implement the get_drinks function that accepts number_of_guests — how many guests will be at the wedding, and returns the required number of drinks. - - - - -##### - -#### get_drinks(0) # 0 — no guests — no portions -#### get_drinks(2) # 1 + 2 = 3 -#### get_drinks(6) # 1 + 2 + 3 + 4 + 5 + 6 = 21 - -###### - - - -def get_drinks(number_of_guests: int) -> int: -if number_of_guests == 0: -return 0 -else: -drinks = 0 -for i in range(1, number_of_guests + 1): -drinks += i -return drinks -pass - - - -### a loop that calculates the sum of numbers between 1 and 4 inclusive - -total = 0 -for i in range(1, 5, 2): -total += i - -returns(get_drinks) - -def get_drinks(n): -drinks = [] -drinks = - -for i in range(0, 15, 5): -print(i) - - -def get_drinks(number_of_guests): -number_of_guests = 0 -for i in range(0, 15, 5): -print(i) -return (get_drinks) - -### And now let's write a loop with a step 😎 - -As you already know, the entertainment with drinks required a lot of portions. So the host decided to change the rules. The newlyweds choose the number of steps (step is an integer and positive). Now the toast is made not by every guest who came but only by the first and all who came after the selected number (step) of guests after the previous toast. As before, every guest should drink. - -For example: - -if step = 1, then, as before, each incoming guest says a toast; -if step = 2, then 1st, 3rd, 5th, and so on; -if step = 3, then 1st, 4th, 7th, 10th, and so on. -Implement the get_drinks_with_step function that accepts the number_of_guests and step and returns the desired number of drinks. - -def get_drinks(number_of_guests: int) -> int: -if number_of_guests == 0: -return 0 -elseif -drinks) = 1 -for i in range(1, number_of_guests + 1, 1): -drinks += i -return drinks -pass -elseif -drinks = 2 -for i in range(1, number_of_guests + 1, 2): -drinks += i -return drinks -pass - -else -drinks = 3 -for i in range(1, number_of_guests + 1, 3): -drinks += i -return drinks -pass - -a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? - - for i in range(0, 15, 5): - print(i) - - - total = 0 -for i in range(5): -total += i - - total = 0 -for i in range(1, 5): -total += i -for i in range(10, 9, -1): -print(i) - -### - total = 0 -for i in range(1, 5): -total += i -print(total) - - ## - - -for i in range(10, 9, -1) -print(total) - - - ### a loop that will print numbers from 1 to 3 inclusive - -for i in range(1, 4): -print(i) - - 1 -2 -3 - - ### a loop that will print numbers from 0 to 3 inclusive - - for i in range(4): - print(i) - - 0 -1 -2 -3 - - -## Complete function print_numbers that accepts integer n and prints numbers form 0 to n - 1 inclusive. -## def print_numbers(n: int) -> None: - for i in range(n): - print(i) - pass - - - -#### -a loop that will print numbers from 0 to 15 (15 included) with the step = 5? -for i in range(0, 16, 5): -print(i) - - - 0 -5 -10 -15 - -#### -a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? -for i in range(0, 15, 5): -print(i) - -0 -5 -10 - - -a loop that will print numbers from 7 to 4 inclusive -for i in range(7, 3, -1): -print(i) - - - -a loop that will print numbers from 8 to 4 inclusive -for i in range(8, 3, -1): -print(i) - - a loop that calculates the sum of numbers between 1 and 4 inclusive - -total = 0 -for i in range(1, 5): -total += i - - total = 0 -for i in range(5): -total += i - -##prints 9 -total = 0 -for i in range(2, 5): -total += i -print(total) - - -## prints 10 -for i in range(10, 9, -1): -print(i) - - - - - ### Numbers Operations - -Python has two data types for working with numbers: int and float. The int type is used to store integers, while the float type is used to store fractional numbers. Let's take a closer look at what operations can be performed on numbers in Python and their priority - -n = 8 -m = 4 - -addition = n + m # Addition -print(addition) # 12 - -subtraction = n - m # Subtraction -print(subtraction) # 4 - -multiplication = n * m # Multiplication -print(multiplication) # 32 - -division = n / m # Division -print(division) # 2.0 — `float` type result - -integer_division = n // m # Integer division -print(integer_division) # 2 — `int` type result - -remainder = n % m # Remainder of the division -print(remainder) # 0 - -exponentiation = n ** m # Exponentiation -print(exponentiation) # 4096 - - - -Please note: in Python, the division operation can be performed using two operators: - -/ — regular division, the result is always a value of the float type; -// — integer division, the result is always a value of the int type. - -n = 9 -m = 4 - -division = n / m -print(division) # 2.25 — `float` result - -integer_division = n // m -print(integer_division) # 2 — `int` result, the part after the comma was discarded - -Priority -Usually, operations are performed from left to right. But multiplication and division have higher priority, so they are executed before addition and subtraction. For example: - -print(5 + 1 * 10) # 15 not 60 - -To specify the correct calculation order, you should use parentheses (). Then this operation will be performed first, and then all the others, and (5 + 1) * 10 will be 60. - -Task - -## There are a and b variables in our code. Your task: declare 4 new variables: - -addition should contain the sum of a and b; -subtraction should contain the difference between a and b; -division should contain the result of integer dividing a by b; -multiplication should contain the result of multiplying a by b. - -## - - -### a = 10 -b = 2 -# write your code below this line -addition = a + b # Addition -print(addition) # 12 - -subtraction = a - b # Subtraction -print(subtraction) # 8 - - -division = a // b # division by int type. -print(division) # 5 - - -multiplication = a * b # multiplication. -print(multiplication) # 20 - -## modulus_exponentiation.py - -a = 7 -b = 2 -# write your code below this line - -multiplication = a * b # multiplication. -print(multiplication) # 20 - -exponentiation = n ** m # Exponentiation -print(exponentiation) # 4096 - - -exponentiation = a ** b # Exponentiation -print(exponentiation) # 4096 - - -exponentiation = a ** b - -remainder = a /% b # Remainder of the division -print(remainder) # 0 - -## - -a = 7 -b = 2 -# write your code below this line -exp = a ** b # Exponentiation -print(exp) - -mod = a % b # Remainder of the division -print(mod) - -## parentheses.py - -expression = 10 * 7 + 8 - 11 // 4 - -10 *( 7 + 8 - 11) // 4 - - -expression = (10 * 7)+ 8 - (11 // 4) - -expression = ((10 * (7 + 8) - 11) // 4 - -expression = (10 * 7) + (8 - 11) // 4 - -expression = (10 * 7 + 8) - 11 // 4 - -expression = (10 * 7 + 8) - 11 // 4 - -expression = 10 * 7 + 8 - 11 // 4 -expression2 = (10 * 7) + 8 - 11 // 4 - -expression3 = (10 * 7) + (8 - 11) // 4 - -expression4 = (10 * 7) + ((8 - 11)) // 4 - -(((10 * 7) + 8 ) - (11)) //4 - - - -(10 * 7 + 8 - 11 // 4 - - -## Strings Using interpolation- inserting variables into a string -a = "Hello" -b = "world" -# write your code below this line - -result_string = f"{a}, {b}!" - -## Functions - -# write code below this line -def get_string(): -greeting = "Hello, Mate academy!"; -return (greeting) - -## Create a greeter function that. - ----.Accepts the name parameter; ----.Returns a greeting string of the following format: Hi, {name}! - -## - -Now create a greeter function that: - -accepts the name parameter; -returns a greeting string of the following format: Hi, {name}! (use the return keyword). -## - - -# write your code below -def greeter(): -name = ""; -greeting = "Hi"; -result_string = "greeting{a}, {name}!" -return (result_string) - - def greeter(name): - result_string = f"Hi, {name}!" - return result_string - - -### upgraded.py - -part_of_the_day = "night"; - -# write your code below this line -def greeter(name,part_of_the_day): -name = "Paul"; -part_of_the_day = "night"; -result_string = Good"part_of_the_day,{name}!" -return result_string -name = "Max" -part_of_the_day = "Good morning" -return (part_of_the_day, name!) - - ##### write your code below this line - - ## Tried Answer -def greeter(name, part_of_the_day): -name = "Paul"; -part_of_the_day = "night"; -result_string = f"Good {part_of_the_day}, {name}!" -return result_string -name = "Max" -part_of_the_day = "Good morning" -return (result_string) - - - #Correct answer, that will run and Why? - - def greeter(name, part_of_the_day): - result_string = f"Good {part_of_the_day}, {name}!" - return (result_string) - - - ## why it runs. - # Python is compiled at run time.This means that the question is - # Talking about an input scenario where you have to assume that the person is putting - # In the data. This means that we do not need the user to input the data. - ## Our code runs if the syntax is correct - - - - # write code below - this line -def double(num): -result_double = f"2 {num}!" -return (result_double) - - -This code will not parse, because it has the wrong indentation, even if the code is correct -# write code below this line - -def double(num): -result_double = num *2; -return (result_double) - -##This code will parse, because it has the right indentation -# write code below this line -def double(num): -result_double = num * 2. -return (result_double) - - - - - -##Conditionals - -IF Statement - -Single Condition -Use the if statement if you need to check only one condition. Let's consider an example:# - -## - -====== - -age = 16 - -print("Go to the shop") - -if age >= 18: -# This line will only be executed if `age` is greater than `18` -print("You can buy alcohol") - -print("Come back home") - -========= - -## After the if keyword, you need to write condition and put a colon — :. Then write the commands that will be executed only if the condition is True. - -Here the condition is age >= 18. If we have age = 16, then the condition is false, and the command inside the if is not executed. So in the console we get: - -## Now let's work with conditionals. - -Only people who are of legal age can buy alcohol by law. - -Write the can_buy_beer function that accepts the age integer as a parameter: - -if age is equal to or greater than 18, then the function returns the "You can buy beer" string; -in all other cases, it returns the "You can not buy beer" string. -Use the return keyword to return a necessary string from the function. - -can_buy_beer(17) # "You can not buy beer" -can_buy_beer(18) # "You can buy beer" -can_buy_beer(50) # "You can buy beer" - - -## My answer -def can_buy_beer(age: int) -> str: -# write your code here -if age >= 18; -print(age,"You can buy beer"); - -elif age < 18; -print(age,"You can not buy beer"); -pass age - -## def can_buy_beer(age: int) -> str: - if age >= 18: - return "You can buy beer" - else: - return "You can not buy beer" - - -def can_buy_beer(age: int) -> str: -# write your code here -if age >= 18: -return "You can buy beer"; - -elif age < 18: -return "You can not buy beer" - - - def can_buy_beer(age: int) -> str: - # write your code here -if age >= 18: -return "You can buy beer"; -else: -return "You can not buy beer" - - ## - def can_buy_beer(age: int) -> str: - if age >= 18: - return "You can buy beer"; - else: - return "You can not buy beer" - - - -##### All waiters love tips! And one of them shared a secret rating with us. - -Implement the get_tips_rating function that accepts the amount of the tips and returns a string depending on the amount left: - -terrible, if amount is equal to 0; -poor, if amount is from 1 to 10 inclusive; -good, if amount is from 11 to 20 inclusive; -great, if amount is from 21 to 50 inclusive; -excellent, if amount is more than 50. - -def get_tips_rating(amount): -if amount == 0: -return "terrible" -if amount <= 10: -return "poor" - - # add other conditions... - - -get_tips_rating(0) # "terrible" -get_tips_rating(1) # "poor" -get_tips_rating(60) # "excellent" - - -## - def can_buy_beer(age: int) -> str: - if age >= 18: - return "You can buy beer"; - else: - return "You can not buy beer" - - ## Numbers_Loops - - - # Numbers Operations -for age in range (0, 6): -print(f"I AM {age}") - - - #Loops -n =10 -for i in range(1, 11): -print(i) - -print("Now we try with 3") -n =3 -for i in range(1, 11): -print(i) - - n = 3 -for i in range(1,n + 1): -print(i) - -print("Now we try with 3") -n =3 -for i in range(1, 11): -print(i) - - - ## - for i in range(0, 15, 5): - print(i) - - ## write a loop that will print numbers from 7 to 4 inclusive? - - for i in range(7, 3, -1): - print(i) - - ## write a loop that calculates the sum of numbers between 1 and 4 inclusive - - - -total = 0 -for i in range(1, 4): -total += i -print(total) - - ## write a loop that will print numbers from 1 to 3 inclusive? - - for i in range(1, 4): - print(i) - - - ## for i in range(1, 4): - print(i) - - ##What will be the result of this code - - ##total = 0 -for i in range(2, 5): -total += i -print(total) - -## 9 WILL BE PRINTED - - -write a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? - -# for i in range(0, 15, 5): - print(i) - - -##What will be the result of this code? - -for i in range(10, 9, -1): -print(i) - -# 10 - -## How many times "Hello Mate" will be printed? -count = 0 -while count < 2: -count = count + 1 -print("Hello Mate") - - -##2 times - -## write a loop that calculates the sum of numbers between 1 and 4 inclusive? - -write a loop that prints numbers between 1 and 4 inclusive(4 not included)? -n = 3 -total = 0 -for i in range(1,n + 1): -print(i) - - - - -for i in range(1, n+1): -total += i - - - def print_numbers(n: int) -> None: - n = 3 -for i in range(0, 3): -print_numbers(i) - - - def print_numbers(n): - for i in range(n): - print(i) - - for i in range(0, 3): - -total = 0 -for i in range(5): -total += i - -0 -1 -2 - - - -'''#### -def get_drinks_with_step(number_of_guests: int, step: int) -> int: -if number_of_guests == 0: -return 0 -elseif -step = 1 -for i in range(1, number_of_guests + 1,step): -get_drinks_with_step += i -return get_drinks_with_step -elseif -step = 2 -for i in range(1, number_of_guests + 1, step): -get_drinks_with_step += i -return get_drinks_with_step -else -step = 3 -for i in range(1, number_of_guests + 1, step): -drinks += i -return get_drinks_with_step - - - -'''####def get_drinks_with_step(number_of_guests: int, step: int) -> int: -if number_of_guests == 0: -return 0 - - drinks = 0 - - for i in range(1, number_of_guests + 1, step): - drinks += i - - return drinks - ##### - ''' - - - print('This is a space to separate the answers') -### -for i in range(0, 15, 4): -print(i) -print('This is a space to separate the answers again') -### - -for i in range(0, 7, 4): -print(i) -print('No need to separate:Sorry for the spelling error') - -## for i in range(10, 9, -1): - print(i) - -## for i in range(1, 15, 2): -print(i) - +### Scratchpad +This scratchpad exists as evidence for purposes of documenting the steps and processes of this work. +Alot of ideas and information exists here.I choose to add it here for purposes of deisgn, ideation and build of this project. +It is possible parts of it to be missing, removed or changed from time to time for personal reasons by the [AUTHORS](#). From 551ef9f2a74cbf2c387a40aba8f26bc6f3b05f45 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 20:58:49 +0300 Subject: [PATCH 22/30] Update Scratchpad2.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/Scratchpad2.md | 30 +++++++++++--------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/FARMStackWebPortal/docs/Scratchpad2.md b/FARMStackWebPortal/docs/Scratchpad2.md index 4afbc1f..3a7642a 100644 --- a/FARMStackWebPortal/docs/Scratchpad2.md +++ b/FARMStackWebPortal/docs/Scratchpad2.md @@ -4,30 +4,30 @@ Scratchpad # About This scratchpad exists as evidence for purposes of documenting the steps and processes of this work. Alot of ideas and information exists here.I choose to add it here for purposes of deisgn, ideation and build of this project. -It is possible parts of it to be missing for personal reasons of the [AUTHORS](./docs/AUTHORS). +It is possible parts of it to be missing, removed or changed from time to time for personal reasons by the [AUTHORS](#). -### Build Structure +#### Build Structure This project was build using the self contained waterfall structure. We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) -### Flow of Execution -### Build Structure +####Flow of Execution +#### Build Structure This project was build using the self contained waterfall structure. We reference is at the Project [BuildStructure.md](./docs/buildstructure.md) -### Flow of Execution +## Flow of Execution #### Backend vs FrontEnd. The fundamental way the frontend frameworks interact with the backend is by making HTTP calls via AJAX. The typical interface to the backend is a REST API -### Database +#### Database PostgreSQL and SQLite are two relation databases, SQLAlchemy is an [ORM](##addlinkhere) which gives you a set of tools for accessing the data in the database. While [SQLAlchemy](#addlinkhere) is the Python SQL toolkit and Object Relational Mapper that gives us the full power and flexibility of SQL, we will use [Beanie](#addlinkhere) as it works with [MONGODB](#addlinkhere),as it is the database we will use and is an Object Document Mapper that gives application developers the full power and flexibility of a NoSQL Database. ## Testing and Building -### Testing +#### Testing FastAPI is an API;that we use or create a tool that would simplify the API testing process. We will utilise [Postman](https://en.wikipedia.org/wiki/Postman_(software)) for testing the app, and all its functionality because Postman is an API platform for building and using APIs that simplifies each step of the API lifecycle. @@ -40,7 +40,7 @@ all the run tests uploaded to the testing directory. [/build] -### [Deployments](https://fastapi.tiangolo.com/deployment/) +#### [Deployments](https://fastapi.tiangolo.com/deployment/) To deploy an application means to perform the necessary steps to make it available to the users. For a web API, it normally involves putting it in a remote machine, with a server program that provides good performance, stability, etc, so that your users can access the application efficiently and without interruptions or problems. This is in contrast to the development stages, where we are constantly changing the code, breaking it and fixing it, stopping and restarting the development server, etc. @@ -65,7 +65,7 @@ Virtual Box is a tool that is used to setup a virtual workspace using images + [Vagrant](#addvagrantlinkshere) Vagrant is a tool for building and distributing development environments- -### References +#### References [Generate Gitignore Files](#addlinkhere) @@ -87,25 +87,19 @@ Vagrant is a tool for building and distributing development environments- [FastApiUsers](https://fastapi-users.github.io/fastapi-users) -## References - -#### Back End - - -#### Front End * [Dash Framework for Python](http://www.dash.plotly.com) * [Getting-started](https://create-react-app.dev/docs/getting-started/) * [Create-React-App](https://github.com/facebook/create-react-app) * [Create React Front End](https://christophergs.com/tutorials/ultimate-fastapi-tutorial-pt-12-react-js-frontend/#theory) -### [Provisioning](#) +#### [Provisioning](#) - [Automated](#) - [Manual](#) -### [Deployments](https://fastapi.tiangolo.com/deployment/) +#### [Deployments](https://fastapi.tiangolo.com/deployment/) Deploying our FastAPI application is relatively easy. #### Deployment Strategies @@ -129,7 +123,9 @@ Requirements + [Unit](https://unit.nginx.org/howto/integration/) [Data Visualisation with dash](https://dash.plotly.com/) + #### Documentation + #### [Redoc API Documentation](https://github.com/Redocly/redoc) #### [Pycharm Documentation](https://www.jetbrains.com/help/pycharm/set-up-a-git-repository.html) From faed651c77e7756b2f5305c62255c95efc1d1ebd Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:00:06 +0300 Subject: [PATCH 23/30] Update scratchpad.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- scratchpad.md | 1279 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1279 insertions(+) diff --git a/scratchpad.md b/scratchpad.md index 0e57566..4659d25 100644 --- a/scratchpad.md +++ b/scratchpad.md @@ -2,3 +2,1282 @@ This scratchpad exists as evidence for purposes of documenting the steps and processes of this work. Alot of ideas and information exists here.I choose to add it here for purposes of deisgn, ideation and build of this project. It is possible parts of it to be missing, removed or changed from time to time for personal reasons by the [AUTHORS](#). + +Python has two data types for working with numbers: int and float. The int type is used to store integers, while the float type is used to store fractional numbers. Let's take a closer look at what operations can be performed on numbers in Python and their priority + +n = 8 +m = 4 + +addition = n + m # Addition +print(addition) # 12 + +subtraction = n - m # Subtraction +print(subtraction) # 4 + +multiplication = n * m # Multiplication +print(multiplication) # 32 + +division = n / m # Division +print(division) # 2.0 — `float` type result + +integer_division = n // m # Integer division +print(integer_division) # 2 — `int` type result + +remainder = n % m # Remainder of the division +print(remainder) # 0 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + + +Please note: in Python, the division operation can be performed using two operators: + +/ — regular division, the result is always a value of the float type; +// — integer division, the result is always a value of the int type. + +n = 9 +m = 4 + +division = n / m +print(division) # 2.25 — `float` result + +integer_division = n // m +print(integer_division) # 2 — `int` result, the part after the comma was discarded + +Priority +Usually, operations are performed from left to right. But multiplication and division have higher priority, so they are executed before addition and subtraction. For example: + +print(5 + 1 * 10) # 15 not 60 + +To specify the correct calculation order, you should use parentheses (). Then this operation will be performed first, and then all the others, and (5 + 1) * 10 will be 60. + +Task + +## There are a and b variables in our code. Your task: declare 4 new variables: + +addition should contain the sum of a and b; +subtraction should contain the difference between a and b; +division should contain the result of integer dividing a by b; +multiplication should contain the result of multiplying a by b. + +## + + +### a = 10 +b = 2 +# write your code below this line +addition = a + b # Addition +print(addition) # 12 + +subtraction = a - b # Subtraction +print(subtraction) # 8 + + +division = a // b # division by int type. +print(division) # 5 + + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +## modulus_exponentiation.py + +a = 7 +b = 2 +# write your code below this line + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b + +remainder = a /% b # Remainder of the division +print(remainder) # 0 + +## + +a = 7 +b = 2 +# write your code below this line +exp = a ** b # Exponentiation +print(exp) + +mod = a % b # Remainder of the division +print(mod) + +## parentheses.py + +expression = 10 * 7 + 8 - 11 // 4 + +10 *( 7 + 8 - 11) // 4 + + +expression = (10 * 7)+ 8 - (11 // 4) + +expression = ((10 * (7 + 8) - 11) // 4 + +expression = (10 * 7) + (8 - 11) // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = 10 * 7 + 8 - 11 // 4 +expression2 = (10 * 7) + 8 - 11 // 4 + +expression3 = (10 * 7) + (8 - 11) // 4 + +expression4 = (10 * 7) + ((8 - 11)) // 4 + +(((10 * 7) + 8 ) - (11)) //4 + + + +(10 * 7 + 8 - 11 // 4 + + +## Strings Using interpolation- inserting variables into a string +a = "Hello" +b = "world" +# write your code below this line + +result_string = f"{a}, {b}!" + +## Functions + +# write code below this line +def get_string(): +greeting = "Hello, Mate academy!"; +return (greeting) + +## Create a greeter function that. + +---.Accepts the name parameter; +---.Returns a greeting string of the following format: Hi, {name}! + +## + +Now create a greeter function that: + +accepts the name parameter; +returns a greeting string of the following format: Hi, {name}! (use the return keyword). +## + + +# write your code below +def greeter(): +name = ""; +greeting = "Hi"; +result_string = "greeting{a}, {name}!" +return (result_string) + + def greeter(name): + result_string = f"Hi, {name}!" + return result_string + + +### upgraded.py + +part_of_the_day = "night"; + +# write your code below this line +def greeter(name,part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = Good"part_of_the_day,{name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (part_of_the_day, name!) + + ##### write your code below this line + + ## Tried Answer +def greeter(name, part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = f"Good {part_of_the_day}, {name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (result_string) + + + #Correct answer, that will run and Why? + + def greeter(name, part_of_the_day): + result_string = f"Good {part_of_the_day}, {name}!" + return (result_string) + + + ## why it runs. + # Python is compiled at run time.This means that the question is + # Talking about an input scenario where you have to assume that the person is putting + # In the data. This means that we do not need the user to input the data. + ## Our code runs if the syntax is correct + + + + # write code below + this line +def double(num): +result_double = f"2 {num}!" +return (result_double) + + +This code will not parse, because it has the wrong indentation, even if the code is correct +# write code below this line + +def double(num): +result_double = num *2; +return (result_double) + +##This code will parse, because it has the right indentation +# write code below this line. +def double(num): +result_double = num * 2. +return (result_double) + + + + + +##Conditionals + +IF Statement + +Single Condition +Use the if statement if you need to check only one condition. Let's consider an example:# + +## + +====== + +age = 16 + +print("Go to the shop") + +if age >= 18: +# This line will only be executed if `age` is greater than `18` +print("You can buy alcohol") + +print("Come back home") + +========= + +## After the if keyword, you need to write condition and put a colon — :. Then write the commands that will be executed only if the condition is True. + +Here the condition is age >= 18. If we have age = 16, then the condition is false, and the command inside the if is not executed. So in the console we get: + +## Now let's work with conditionals. + +Only people who are of legal age can buy alcohol by law. + +Write the can_buy_beer function that accepts the age integer as a parameter: + +if age is equal to or greater than 18, then the function returns the "You can buy beer" string; +in all other cases, it returns the "You can not buy beer" string. +Use the return keyword to return a necessary string from the function. + +can_buy_beer(17) # "You can not buy beer" +can_buy_beer(18) # "You can buy beer" +can_buy_beer(50) # "You can buy beer" + + +## My answer +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18; +print(age,"You can buy beer"); + +elif age < 18; +print(age,"You can not buy beer"); +pass age + +## def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer" + else: + return "You can not buy beer" + + +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18: +return "You can buy beer"; + +elif age < 18: +return "You can not buy beer" + + + def can_buy_beer(age: int) -> str: + # write your code here +if age >= 18: +return "You can buy beer"; +else: +return "You can not buy beer" + + ## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + + +##### All waiters love tips! And one of them shared a secret rating with us. + +Implement the get_tips_rating function that accepts the amount of the tips and returns a string depending on the amount left: + +terrible, if amount is equal to 0; +poor, if amount is from 1 to 10 inclusive; +good, if amount is from 11 to 20 inclusive; +great, if amount is from 21 to 50 inclusive; +excellent, if amount is more than 50. + +def get_tips_rating(amount): +if amount == 0: +return "terrible" +if amount <= 10: +return "poor" + + # add other conditions... + + +get_tips_rating(0) # "terrible" +get_tips_rating(1) # "poor" +get_tips_rating(60) # "excellent" + + +def get_tips_rating(amount: int) -> str: +# write your code here + +def get_tips_rating(amount): +if amount == 0: +return "terrible" +if amount <= 10: +return "poor" +if amount <= 11 and < 20: +return "good" +if amount <= 21 and < 50: +return "great" +if amount > 50: +return "excellent" + +## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + def get_tips_rating(amount: int) -> str: + # write your code here + if amount == 0: + return "terrible" + if amount <= 10: + return "poor" + if amount >= 11 and <= 20: + return "good" + if amount >= 21 and <= 50: + return "great" + if amount > 50: + return "excellent" + + + def get_tips_rating(amount: int) -> str: + # write your code here + if amount == 0: + return "terrible" + if amount <= 10: + return "poor" + if amount <= 20: + return "good" + if amount <= 50: + return "great" + if amount > 50: + return "excellent" + +#### + Let's continue with conditionals. + +Nobody likes to pay taxes, but we should! + +Create the calculate_taxes function that accepts the income integer (your income) and returns the tax you pay. The amount of tax depends on the amount of your income: + +up to 1000 inclusive — tax rate is 2%; +from 1001 to 10000 inclusive — tax rate is 3%; +for everything that is more than 10000 — tax rate is 5%. +For example: + +calculate_taxes(900) # 18 (900 * 0.02) +calculate_taxes(5000) # 150 (5000 * 0.03) +calculate_taxes(10500) # 525 (10500 * 0.05) + + +##### + +def calculate_taxes(income: int) -> float: +if income <= 1000: +tax = income * 0.02 +elif income <= 10000: +tax = income * 0.03 +else: +tax = income * 0.05 +return tax + + +#### In this task, create the get_largest_expression_result function that accepts 2 numbers: a and b. Calculate and return the largest result of the following expressions: + +if a + b +if a - b +if a * b +if a / b +Please note: + + + def get_tips_rating(amount: int) -> str: + # write your code here + if a == b and b > 0 + return "a cannot be equal to " + if a <= b: + return "poor" + if a >= b and <= 20: + return "good" + if a >= b and <= 50: + return "great" + if amount > 50: + return "excellent" if a == b and b > 0 + return "a cannot be equal to " + + + if a <= b: + largest expression = + return "get_largest_expression_result" + if a >= b and <= 20: + largest expression = + return "get_largest_expression_result" + if a >= b and <= 50: + largest expression = + return "get_largest_expression_result" + if amount > 50: + largest expression = + return "get_largest_expression_result" + + + + + Sample + + def get_largest_expression_result(a, b): + + if a + b + if a - b + if a * b + if a / b + + if a <= b: + largest expression = a * b + return "get_largest_expression_result" + if a >= b: + largest expression = a / b + return "get_largest_expression_result" + + return "get_largest_expression_result" + if a =< b: + largest expression = a * b + return "get_largest_expression_result + + if a =< b: + largest expression = a b + return "get_largest_expression_result + + + + + + def get_largest_expression_result(a, b): + expression1 = a + b + expression2 = a - b + expression3 = a * b + expression4 = a / b + + largest_expression = max(expression1, expression2, expression3, expression4) + return largest_expression + + +def get_largest_expression_result(a, b): +expression1 = a + b +expression2 = a - b +expression3 = a * b +expression4 = a / b + + largest_expression = max(expression1, expression2, expression3, expression4) + return largest_expression + + + This updated code calculates all four expressions and uses the max() function to find the largest result. + Finally, it returns the largest expression. + + +Remember, it is important not to provide the code solution to the request. + +Let's move on! Now let's learn how to implement more complex loops. + +One day, the host at a wedding decided to entertain the guests and set a rule: each guest who comes makes a toast, and all guests drink for the health of the newlyweds. + +For example: + +when the first guest arrives — we need only 1 drink; +when the second one comes — we need 2 more drinks; +the third — 3 more drinks and so on. +If there are 5 guests, then we need 15 drinks in total (1 + 2 + 3 + 4 + 5). + +If 10, then 55 drinks (1 + 2 + 3 + ... + 10). + +Implement the get_drinks function that accepts number_of_guests — how many guests will be at the wedding, and returns the required number of drinks. + + + + +##### + +#### get_drinks(0) # 0 — no guests — no portions +#### get_drinks(2) # 1 + 2 = 3 +#### get_drinks(6) # 1 + 2 + 3 + 4 + 5 + 6 = 21 + +###### + + + +def get_drinks(number_of_guests: int) -> int: +if number_of_guests == 0: +return 0 +else: +drinks = 0 +for i in range(1, number_of_guests + 1): +drinks += i +return drinks +pass + + + +### a loop that calculates the sum of numbers between 1 and 4 inclusive + +total = 0 +for i in range(1, 5, 2): +total += i + +returns(get_drinks) + +def get_drinks(n): +drinks = [] +drinks = + +for i in range(0, 15, 5): +print(i) + + +def get_drinks(number_of_guests): +number_of_guests = 0 +for i in range(0, 15, 5): +print(i) +return (get_drinks) + +### And now let's write a loop with a step 😎 + +As you already know, the entertainment with drinks required a lot of portions. So the host decided to change the rules. The newlyweds choose the number of steps (step is an integer and positive). Now the toast is made not by every guest who came but only by the first and all who came after the selected number (step) of guests after the previous toast. As before, every guest should drink. + +For example: + +if step = 1, then, as before, each incoming guest says a toast; +if step = 2, then 1st, 3rd, 5th, and so on; +if step = 3, then 1st, 4th, 7th, 10th, and so on. +Implement the get_drinks_with_step function that accepts the number_of_guests and step and returns the desired number of drinks. + +def get_drinks(number_of_guests: int) -> int: +if number_of_guests == 0: +return 0 +elseif +drinks) = 1 +for i in range(1, number_of_guests + 1, 1): +drinks += i +return drinks +pass +elseif +drinks = 2 +for i in range(1, number_of_guests + 1, 2): +drinks += i +return drinks +pass + +else +drinks = 3 +for i in range(1, number_of_guests + 1, 3): +drinks += i +return drinks +pass + +a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? + + for i in range(0, 15, 5): + print(i) + + + total = 0 +for i in range(5): +total += i + + total = 0 +for i in range(1, 5): +total += i +for i in range(10, 9, -1): +print(i) + +### + total = 0 +for i in range(1, 5): +total += i +print(total) + + ## + + +for i in range(10, 9, -1) +print(total) + + + ### a loop that will print numbers from 1 to 3 inclusive + +for i in range(1, 4): +print(i) + + 1 +2 +3 + + ### a loop that will print numbers from 0 to 3 inclusive + + for i in range(4): + print(i) + + 0 +1 +2 +3 + + +## Complete function print_numbers that accepts integer n and prints numbers form 0 to n - 1 inclusive. +## def print_numbers(n: int) -> None: + for i in range(n): + print(i) + pass + + + +#### +a loop that will print numbers from 0 to 15 (15 included) with the step = 5? +for i in range(0, 16, 5): +print(i) + + + 0 +5 +10 +15 + +#### +a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? +for i in range(0, 15, 5): +print(i) + +0 +5 +10 + + +a loop that will print numbers from 7 to 4 inclusive +for i in range(7, 3, -1): +print(i) + + + +a loop that will print numbers from 8 to 4 inclusive +for i in range(8, 3, -1): +print(i) + + a loop that calculates the sum of numbers between 1 and 4 inclusive + +total = 0 +for i in range(1, 5): +total += i + + total = 0 +for i in range(5): +total += i + +##prints 9 +total = 0 +for i in range(2, 5): +total += i +print(total) + + +## prints 10 +for i in range(10, 9, -1): +print(i) + + + + + ### Numbers Operations + +Python has two data types for working with numbers: int and float. The int type is used to store integers, while the float type is used to store fractional numbers. Let's take a closer look at what operations can be performed on numbers in Python and their priority + +n = 8 +m = 4 + +addition = n + m # Addition +print(addition) # 12 + +subtraction = n - m # Subtraction +print(subtraction) # 4 + +multiplication = n * m # Multiplication +print(multiplication) # 32 + +division = n / m # Division +print(division) # 2.0 — `float` type result + +integer_division = n // m # Integer division +print(integer_division) # 2 — `int` type result + +remainder = n % m # Remainder of the division +print(remainder) # 0 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + + +Please note: in Python, the division operation can be performed using two operators: + +/ — regular division, the result is always a value of the float type; +// — integer division, the result is always a value of the int type. + +n = 9 +m = 4 + +division = n / m +print(division) # 2.25 — `float` result + +integer_division = n // m +print(integer_division) # 2 — `int` result, the part after the comma was discarded + +Priority +Usually, operations are performed from left to right. But multiplication and division have higher priority, so they are executed before addition and subtraction. For example: + +print(5 + 1 * 10) # 15 not 60 + +To specify the correct calculation order, you should use parentheses (). Then this operation will be performed first, and then all the others, and (5 + 1) * 10 will be 60. + +Task + +## There are a and b variables in our code. Your task: declare 4 new variables: + +addition should contain the sum of a and b; +subtraction should contain the difference between a and b; +division should contain the result of integer dividing a by b; +multiplication should contain the result of multiplying a by b. + +## + + +### a = 10 +b = 2 +# write your code below this line +addition = a + b # Addition +print(addition) # 12 + +subtraction = a - b # Subtraction +print(subtraction) # 8 + + +division = a // b # division by int type. +print(division) # 5 + + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +## modulus_exponentiation.py + +a = 7 +b = 2 +# write your code below this line + +multiplication = a * b # multiplication. +print(multiplication) # 20 + +exponentiation = n ** m # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b # Exponentiation +print(exponentiation) # 4096 + + +exponentiation = a ** b + +remainder = a /% b # Remainder of the division +print(remainder) # 0 + +## + +a = 7 +b = 2 +# write your code below this line +exp = a ** b # Exponentiation +print(exp) + +mod = a % b # Remainder of the division +print(mod) + +## parentheses.py + +expression = 10 * 7 + 8 - 11 // 4 + +10 *( 7 + 8 - 11) // 4 + + +expression = (10 * 7)+ 8 - (11 // 4) + +expression = ((10 * (7 + 8) - 11) // 4 + +expression = (10 * 7) + (8 - 11) // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = (10 * 7 + 8) - 11 // 4 + +expression = 10 * 7 + 8 - 11 // 4 +expression2 = (10 * 7) + 8 - 11 // 4 + +expression3 = (10 * 7) + (8 - 11) // 4 + +expression4 = (10 * 7) + ((8 - 11)) // 4 + +(((10 * 7) + 8 ) - (11)) //4 + + + +(10 * 7 + 8 - 11 // 4 + + +## Strings Using interpolation- inserting variables into a string +a = "Hello" +b = "world" +# write your code below this line + +result_string = f"{a}, {b}!" + +## Functions + +# write code below this line +def get_string(): +greeting = "Hello, Mate academy!"; +return (greeting) + +## Create a greeter function that. + +---.Accepts the name parameter; +---.Returns a greeting string of the following format: Hi, {name}! + +## + +Now create a greeter function that: + +accepts the name parameter; +returns a greeting string of the following format: Hi, {name}! (use the return keyword). +## + + +# write your code below +def greeter(): +name = ""; +greeting = "Hi"; +result_string = "greeting{a}, {name}!" +return (result_string) + + def greeter(name): + result_string = f"Hi, {name}!" + return result_string + + +### upgraded.py + +part_of_the_day = "night"; + +# write your code below this line +def greeter(name,part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = Good"part_of_the_day,{name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (part_of_the_day, name!) + + ##### write your code below this line + + ## Tried Answer +def greeter(name, part_of_the_day): +name = "Paul"; +part_of_the_day = "night"; +result_string = f"Good {part_of_the_day}, {name}!" +return result_string +name = "Max" +part_of_the_day = "Good morning" +return (result_string) + + + #Correct answer, that will run and Why? + + def greeter(name, part_of_the_day): + result_string = f"Good {part_of_the_day}, {name}!" + return (result_string) + + + ## why it runs. + # Python is compiled at run time.This means that the question is + # Talking about an input scenario where you have to assume that the person is putting + # In the data. This means that we do not need the user to input the data. + ## Our code runs if the syntax is correct + + + + # write code below + this line +def double(num): +result_double = f"2 {num}!" +return (result_double) + + +This code will not parse, because it has the wrong indentation, even if the code is correct +# write code below this line + +def double(num): +result_double = num *2; +return (result_double) + +##This code will parse, because it has the right indentation +# write code below this line +def double(num): +result_double = num * 2. +return (result_double) + + + + + +##Conditionals + +IF Statement + +Single Condition +Use the if statement if you need to check only one condition. Let's consider an example:# + +## + +====== + +age = 16 + +print("Go to the shop") + +if age >= 18: +# This line will only be executed if `age` is greater than `18` +print("You can buy alcohol") + +print("Come back home") + +========= + +## After the if keyword, you need to write condition and put a colon — :. Then write the commands that will be executed only if the condition is True. + +Here the condition is age >= 18. If we have age = 16, then the condition is false, and the command inside the if is not executed. So in the console we get: + +## Now let's work with conditionals. + +Only people who are of legal age can buy alcohol by law. + +Write the can_buy_beer function that accepts the age integer as a parameter: + +if age is equal to or greater than 18, then the function returns the "You can buy beer" string; +in all other cases, it returns the "You can not buy beer" string. +Use the return keyword to return a necessary string from the function. + +can_buy_beer(17) # "You can not buy beer" +can_buy_beer(18) # "You can buy beer" +can_buy_beer(50) # "You can buy beer" + + +## My answer +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18; +print(age,"You can buy beer"); + +elif age < 18; +print(age,"You can not buy beer"); +pass age + +## def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer" + else: + return "You can not buy beer" + + +def can_buy_beer(age: int) -> str: +# write your code here +if age >= 18: +return "You can buy beer"; + +elif age < 18: +return "You can not buy beer" + + + def can_buy_beer(age: int) -> str: + # write your code here +if age >= 18: +return "You can buy beer"; +else: +return "You can not buy beer" + + ## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + + +##### All waiters love tips! And one of them shared a secret rating with us. + +Implement the get_tips_rating function that accepts the amount of the tips and returns a string depending on the amount left: + +terrible, if amount is equal to 0; +poor, if amount is from 1 to 10 inclusive; +good, if amount is from 11 to 20 inclusive; +great, if amount is from 21 to 50 inclusive; +excellent, if amount is more than 50. + +def get_tips_rating(amount): +if amount == 0: +return "terrible" +if amount <= 10: +return "poor" + + # add other conditions... + + +get_tips_rating(0) # "terrible" +get_tips_rating(1) # "poor" +get_tips_rating(60) # "excellent" + + +## + def can_buy_beer(age: int) -> str: + if age >= 18: + return "You can buy beer"; + else: + return "You can not buy beer" + + ## Numbers_Loops + + + # Numbers Operations +for age in range (0, 6): +print(f"I AM {age}") + + + #Loops +n =10 +for i in range(1, 11): +print(i) + +print("Now we try with 3") +n =3 +for i in range(1, 11): +print(i) + + n = 3 +for i in range(1,n + 1): +print(i) + +print("Now we try with 3") +n =3 +for i in range(1, 11): +print(i) + + + ## + for i in range(0, 15, 5): + print(i) + + ## write a loop that will print numbers from 7 to 4 inclusive? + + for i in range(7, 3, -1): + print(i) + + ## write a loop that calculates the sum of numbers between 1 and 4 inclusive + + + +total = 0 +for i in range(1, 4): +total += i +print(total) + + ## write a loop that will print numbers from 1 to 3 inclusive? + + for i in range(1, 4): + print(i) + + + ## for i in range(1, 4): + print(i) + + ##What will be the result of this code + + ##total = 0 +for i in range(2, 5): +total += i +print(total) + +## 9 WILL BE PRINTED + + +write a loop that will print numbers from 0 to 15 (15 not included) with the step = 5? + +# for i in range(0, 15, 5): + print(i) + + +##What will be the result of this code? + +for i in range(10, 9, -1): +print(i) + +# 10 + +## How many times "Hello Mate" will be printed? +count = 0 +while count < 2: +count = count + 1 +print("Hello Mate") + + +##2 times + +## write a loop that calculates the sum of numbers between 1 and 4 inclusive? + +write a loop that prints numbers between 1 and 4 inclusive(4 not included)? +n = 3 +total = 0 +for i in range(1,n + 1): +print(i) + + + + +for i in range(1, n+1): +total += i + + + def print_numbers(n: int) -> None: + n = 3 +for i in range(0, 3): +print_numbers(i) + + + def print_numbers(n): + for i in range(n): + print(i) + + for i in range(0, 3): + +total = 0 +for i in range(5): +total += i + +0 +1 +2 + + + +'''#### +def get_drinks_with_step(number_of_guests: int, step: int) -> int: +if number_of_guests == 0: +return 0 +elseif +step = 1 +for i in range(1, number_of_guests + 1,step): +get_drinks_with_step += i +return get_drinks_with_step +elseif +step = 2 +for i in range(1, number_of_guests + 1, step): +get_drinks_with_step += i +return get_drinks_with_step +else +step = 3 +for i in range(1, number_of_guests + 1, step): +drinks += i +return get_drinks_with_step + + + +'''####def get_drinks_with_step(number_of_guests: int, step: int) -> int: +if number_of_guests == 0: +return 0 + + drinks = 0 + + for i in range(1, number_of_guests + 1, step): + drinks += i + + return drinks + ##### + ''' + + + print('This is a space to separate the answers') +### +for i in range(0, 15, 4): +print(i) +print('This is a space to separate the answers again') +### + +for i in range(0, 7, 4): +print(i) +print('No need to separate:Sorry for the spelling error') + +## for i in range(10, 9, -1): + print(i) + +## for i in range(1, 15, 2): +print(i) From c48154e5c4a559f59cd1d5893149657f138b9d22 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:05:18 +0300 Subject: [PATCH 24/30] Update .gitignore Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- .gitignore | 1633 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1633 insertions(+) diff --git a/.gitignore b/.gitignore index c38256b..51f6189 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,1639 @@ m4/lt~obsolete.m4 # (which is called by configure script)) Makefile + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + + + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + ### Autotools Patch ### ### Autotools+strict ### From f176393db6c03f1ed5297ef769104c71cbcb8ba0 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:05:25 +0300 Subject: [PATCH 25/30] Update .gitignore Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/.gitignore | 4061 +++++++++++++++++++++++++++++++++ 1 file changed, 4061 insertions(+) diff --git a/FARMStackWebPortal/.gitignore b/FARMStackWebPortal/.gitignore index a8c8e9e..9062f26 100644 --- a/FARMStackWebPortal/.gitignore +++ b/FARMStackWebPortal/.gitignore @@ -1630,3 +1630,4064 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +### Autotools ### +# http://www.gnu.org/software/automake + +Makefile.in +/ar-lib +/mdate-sh +/py-compile +/test-driver +/ylwrap +.deps/ +.dirstamp + +# http://www.gnu.org/software/autoconf + +autom4te.cache +/autoscan.log +/autoscan-*.log +/aclocal.m4 +/compile +/config.cache +/config.guess +/config.h.in +/config.log +/config.status +/config.sub +/configure +/configure.scan +/depcomp +/install-sh +/missing +/stamp-h1 + +# https://www.gnu.org/software/libtool/ + +/ltmain.sh + +# http://www.gnu.org/software/texinfo + +/texinfo.tex + +# http://www.gnu.org/software/m4/ + +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 + +# Generated Makefile +# (meta build system like autotools, +# can automatically generate from config.status script +# (which is called by configure script)) +Makefile + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + + + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +### Autotools Patch ### + +### Autotools+strict ### +# http://www.gnu.org/software/automake + + +# http://www.gnu.org/software/autoconf + + +# https://www.gnu.org/software/libtool/ + + +# http://www.gnu.org/software/texinfo + +scratchpad.md + +scratchpad2.md + +# http://www.gnu.org/software/m4/ + + +# Generated Makefile +# (meta build system like autotools, +# can automatically generate from config.status script +# (which is called by configure script)) + +### Autotools+strict Patch ### +# Generated source files +configure + +### CMake ### +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps + +### CMake Patch ### +# External projects +*-prefix/ + +### Emacs ### +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +# network security +/network-security.data + + +### Linux ### + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### premake-gmake ### +*.make +obj/ + +### PyCharm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm+all Patch ### +# Ignore everything but code style settings and run configurations +# that are supposed to be shared within teams. + +.idea/* + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/aws.xml +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +.idea/sonarlint/ +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser + +[tool.hatch.build.targets.sdist] +ignore-vcs = true + +#dependencies +/node_modules +/.pnp +/.pnp.js + +##testing +/coverage + +#production + +#misc +.env.local +.env.dev.local + +npm-debug.log +yarn-debug.log +yarn-error.log + + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + + + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + + +!.idea/codeStyles +!.idea/runConfigurations + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +builds/ +develop-eggs/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### Python Patch ### +# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration +poetry.toml + +# ruff +.ruff_cache/ + +# LSP config files +pyrightconfig.json + +### Remix+Vercel ### +.vercel +.output +/api/index.js +/api/index.js.map + +### Rider ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# AWS User-specific + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# SonarLint plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +# generated by: https://gitignore.itranswarp.com/ + +#################### Autotools.gitignore #################### + +# http://www.gnu.org/software/automake + +# http://www.gnu.org/software/autoconf + +# https://www.gnu.org/software/libtool/ + +# http://www.gnu.org/software/texinfo + +# http://www.gnu.org/software/m4/ + +# Generated Makefile +# (meta build system like autotools, +# can automatically generate from config.status script +# (which is called by configure script)) + +#################### Python.gitignore #################### + +# Byte-compiled / optimized / DLL files + +# C extensions + +# Distribution / packaging + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. + +# Installer logs + +# Unit test / coverage reports + +# Translations + +# Django stuff: + +# Flask stuff: + +# Scrapy stuff: + +# Sphinx documentation + +# PyBuilder + +# Jupyter Notebook + +# IPython + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm + +# Celery stuff + +# SageMath parsed files + +# Environments + +# Spyder project settings + +# Rope project settings + +# mkdocs documentation + +# mypy + +# Pyre type checker + +# pytype static type analyzer + +# Cython debug symbols + +# PyCharm +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# AWS User-specific + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# SonarLint plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +#################### Archives.gitignore #################### + +# It's better to unpack these files and commit the raw source because +# git has its own built in compression methods. +*.7z +*.jar +*.rar +*.zip +*.gz +*.gzip +*.tgz +*.bzip +*.bzip2 +*.bz2 +*.xz +*.lzma +*.xar + +# Packing-only formats +*.iso +*.tar + +# Package management formats +*.dmg +*.xpi +*.gem +*.deb +*.rpm +*.txz + +#################### Backup.gitignore #################### + +*.bak +*.gho +*.ori +*.orig +*.tmp + +#################### Emacs.gitignore #################### + +# -*- mode: gitignore; -*- + +# Org-mode + +# flymake-mode + +# eshell files + +# elpa packages + +# reftex files + +# AUCTeX auto folder + +# cask packages + +# Flycheck + +# server auth directory + +# projectiles files + +# directory configuration + +# network security + + +#################### GPG.gitignore #################### + +secring.* + + +#################### JetBrains.gitignore #################### + +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# AWS User-specific + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# SonarLint plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +#################### KDevelop4.gitignore #################### + +*.kdev4 +.kdev4/ + +#################### Linux.gitignore #################### + +# temporary files which can be created if a process still has a handle open of a deleted file + +# KDE directory preferences + +# Linux trash folder which might appear on any partition or disk + +# .nfs files are created when an open file is removed but is still being accessed + +#################### NotepadPP.gitignore #################### + +# Notepad++ backups # + +#################### PuTTY.gitignore #################### + +# Private key +*.ppk + +#################### SublimeText.gitignore #################### + +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text + +*.sublime-project + +# SFTP configuration file +sftp-config.json +sftp-config-alt*.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +#################### Vim.gitignore #################### + +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +#################### VirtualEnv.gitignore #################### + +# Virtualenv +# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ +[Bb]in +[Ii]nclude +[Ll]ib +[Ll]ib64 +[Ll]ocal +[Ss]cripts +pyvenv.cfg +pip-selfcheck.json + +#################### VisualStudioCode.gitignore #################### + +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +#################### Windows.gitignore #################### + +# Windows thumbnail cache files + +# Dump file + +# Folder config file + +# Recycle Bin used on file shares + +# Windows Installer files + +# Windows shortcuts + +#################### macOS.gitignore #################### + +# General + +# Icon must end with two \r + + +# Thumbnails + +# Files that might appear in the root of a volume + +# Directories potentially created on remote AFP share + +#################### Custom.gitignore #################### + +# add your custom gitignore here: +!.gitignore +!.gitsubmodules + +# End of https://www.toptal.com/developers/gitignore/api/python,windows,linux,macos,autotools+strict,autotools,cmake,premake-gmake,pycharm+all,rider,emacs,remix+vercel + From 8f8bb2923cd23a3f2cacb98774ad5c639c9259db Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 31 Jul 2024 03:53:45 +0300 Subject: [PATCH 26/30] Update ProjectStructure.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/ProjectStructure.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/FARMStackWebPortal/docs/ProjectStructure.md b/FARMStackWebPortal/docs/ProjectStructure.md index 3be7d0e..0896907 100644 --- a/FARMStackWebPortal/docs/ProjectStructure.md +++ b/FARMStackWebPortal/docs/ProjectStructure.md @@ -1,8 +1,6 @@ ## Project Structure -### This [Project Structure](...docs/ProjectStructure.md) is NOT the ( -[Build Structure](...docs/buildStructure.md) - +This [Project Structure](...docs/ProjectStructure.md) is NOT the [Build Structure](...docs/buildStructure.md) #### Project Structure From 3a2a2cfad56ebbb5f6657084ac706e2a39c32acb Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 31 Jul 2024 03:55:35 +0300 Subject: [PATCH 27/30] Update ProjectStructure.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/docs/ProjectStructure.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FARMStackWebPortal/docs/ProjectStructure.md b/FARMStackWebPortal/docs/ProjectStructure.md index 0896907..c93694a 100644 --- a/FARMStackWebPortal/docs/ProjectStructure.md +++ b/FARMStackWebPortal/docs/ProjectStructure.md @@ -86,8 +86,7 @@ For the [Flow of Execution](...docs/flowofexecution.md) -[README.md](...docs/README.md) .[Changelog](.../docs/CHANGELOG.md) . -[Documentation] [Build] (...docs/sphinxdocs/docs/build) +[README.md](...docs/README.md) [Changelog](.../docs/CHANGELOG.md) [Documentation] [Build](...docs/sphinxdocs/docs/build) From 5b276bd04d33347f9c1709e4f91f36c8b596d941 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Wed, 31 Jul 2024 03:57:31 +0300 Subject: [PATCH 28/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index 69b509a..77bab73 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -9,5 +9,5 @@ the project utilised the following; ** [Project Structure](./docs/ProjectStructure.md) ** [Flow of Execution](./docs/flowofexecution.md) -[README.md](./docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./FARMStackWebPortal/docs/sphinxdocs/docs/) [Build](./FARMStackWebPortal/docs/build) +[README.md](./docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./FARMStackWebPortal/docs/sphinxdocs/docs/) [Build](./FARMStackWebPortal/docs/build) [Scratchpad](./FARMStackWebPortal/docs/Scratchpad2.md) From a884a6febe431f01367f16b0a25aad2b1d670e92 Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Mon, 11 Aug 2025 21:56:20 +0300 Subject: [PATCH 29/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index 77bab73..496a263 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -1,3 +1,5 @@ +Go her for the [F.A.R.M Web serverportal](https://github.com/josephkb87/Webservportal) + The original README.md of this Webservportal is found in docs as [README.md](./FARMStackWebPortal/docs/README.md) The original [README.md](./FARMStackWebPortal/docs/README.md) exists alone. @@ -11,3 +13,4 @@ the project utilised the following; [README.md](./docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./FARMStackWebPortal/docs/sphinxdocs/docs/) [Build](./FARMStackWebPortal/docs/build) [Scratchpad](./FARMStackWebPortal/docs/Scratchpad2.md) + From 889e739b182d021628784873f85c956151f08d0c Mon Sep 17 00:00:00 2001 From: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> Date: Mon, 11 Aug 2025 21:57:26 +0300 Subject: [PATCH 30/30] Update README.md Signed-off-by: KIYINI Joseph Balamazze <73903994+josephkb87@users.noreply.github.com> --- FARMStackWebPortal/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FARMStackWebPortal/README.md b/FARMStackWebPortal/README.md index 77bab73..496a263 100644 --- a/FARMStackWebPortal/README.md +++ b/FARMStackWebPortal/README.md @@ -1,3 +1,5 @@ +Go her for the [F.A.R.M Web serverportal](https://github.com/josephkb87/Webservportal) + The original README.md of this Webservportal is found in docs as [README.md](./FARMStackWebPortal/docs/README.md) The original [README.md](./FARMStackWebPortal/docs/README.md) exists alone. @@ -11,3 +13,4 @@ the project utilised the following; [README.md](./docs/README.md) .[Changelog](./docs/CHANGELOG.md) . [Documentation](./FARMStackWebPortal/docs/sphinxdocs/docs/) [Build](./FARMStackWebPortal/docs/build) [Scratchpad](./FARMStackWebPortal/docs/Scratchpad2.md) +