---
# System prepended metadata

title: Team_5

---

---
title: Team_5
---
# Team_5 Group Activity 
## week_2

##### First Name must be at least 3 characters, and no more than 30.
len(firstName) < 3 => return False 
len(firstName) > 30 => return False
##### Last Name must be at least 3 characters, and no more than 50.
len(lastName) < 3 => return False
len(lastName) > 50 => return False
##### First Name can only contain letters (uppercase or lowercase), and dashes.
##### Last Name can only contain letters (uppercase or lowercase), spaces, and dashes.
##### Middle Name can be None, but if it's not none, it can be between 1 and 50 characters.
##### Middle Name cannot be longer than the first name, and it cannot be longer than the last name.


##### First Name can only contain letters (uppercase or lowercase), and dashes.
##### Last Name can only contain letters (uppercase or lowercase), spaces, and dashes.
if "dashes, spaces(non-letter)" in name then error

yikes

LMAO 130cm

##### Middle Name can be None, but if it's not none, it can be between 1 and 50 characters.
if(MidddleName != None && (len >= 1 && len <= 50))
    return true

if MiddleName == None
    return true

else 
    return false

## week_3
Each group in the tutorial should share a summary of their teams plans and progress in relation to:

- When (or if) they are running standups and whether they are synchronous or asynchronous
    - We ran a standup meeting because we were uncertain as to some aspects of the project. The meeting was run using the flock conference functionality and was synchronous
- How often they meet, how they meet, and what the goals/outcomes of any meetings so far have been
    - We meet in tutorials and schedule meetings on flock when there are upcoming due dates, or there is an extreme    need to clarify something. Our most recent meeting was last Sunday, where we dicussed how to implement the channels functions and test cases. Let's be real here, flock is bootleg discord. Like if discord had a defective little sister that only grew to 130cm tall.
- Have they or will they try pair programming
    - We have not tried pair programming yet. 
- Any challenges they've faced already after being in a group for a week
    - Erratic work schedules means communication is sometimes difficult
Other group members (in other teams) are encouraged to ask questions and learn from what other groups are doing/saying.

## week_4
**Requirement Activity**
**Q**. What are attributes of good requirements?
Good requirements are specific in their details
Clear and easy to understand
Testable


**Q**. How could we clean this up into well described requirements?
Split up into smaller requirements
Specify ambiguous aspects

>"I want a burger with lots of pickles and mayo but I need to make sure that the mayo doesn't make the burger bun really wet. Oh, and it needs t obe warm, like, made less than 5 minutes ago warm but not so hot that I burn myself. I'm also not a big fan of plastic containers so if it could be in a paper bag that would be good. Actually, make that a brown paper bag, I like the colour of that"

*Requirements*
User should be given a burger
Burger needs to contain a copious amount of pickles(6+ slices)
Burger needs to have mayo.
The mayo in the burger cannot make the bun wet/soggy, so put it on top of some lettuce to protect the bun.
Burger needs to be made and served within 5 minutes
Burger cannot be piping hot ie. do not serve burger straight after cooking.
Burger should not be served in a plastic container
Burger should be served in a brown paper bag
**Code Reviewing activity**
```python=
def check_password(password):
    
    if password == "password" or password == "iloveyou" or password == "123456":
        return "Horrible password"
    elif (len(password) >= 12 and any(x.isupper() for x in password) and
        any(x.isdigit() for x in password) and 
        any(x.islower() for x in password)):
        return "Strong password"
    elif len(password) >= 8 and any(x.isdigit() for x in password):
        return "Moderate password"
    else:
        return "Poor password"
   
if __name__ == '__main__':
    print(check_password("ihearttrimesters"))
    # What does this do? 

```

```python
def check_password(password):
    '''
    Takes in a password, and returns a string based on the strength of that password.

    The returned value should be:
    * "Strong password", if at least 12 characters, contains at least one number, at least one uppercase letter, at least one lowercase letter.
    * "Moderate password", if at least 8 characters, contains at least one number.
    * "Poor password", for anything else
    * "Horrible password", if the user enters "password", "iloveyou", or "123456"
    '''
    horrible_pw = ["password", "iloveyou", "123456"]
    digit = False
    upper = False

    if password in horrible_pw:
        return "Horrible Password"
    elif len(password) >= 8:
        for char in password:
            if char.isdigit():
                digit = True
            elif char.isupper():
                upper = True
        if digit and upper and len(password) >= 12:
            return "Strong Password"
        elif digit:
            return "Moderate Password"
    
    return "Poor Password"

if __name__ == '__main__':
    print(check_password("ihearttrimesters"))
    # What does this do?

```

Compare these two pieces of code from a pythonic, style, and readability point of view and choose which one you prefer. When you choose one, you must justify your reasonining in teh shared documnet your tutor gives you.