├── .github ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── stale-prs.yml ├── Course3 └── Lab4 │ └── validations.py ├── Course4 └── Lab4 │ └── employees-with-date.csv ├── Course5 └── Lab3 │ ├── hello_cloud.py │ └── hello_cloud.service ├── LICENSE ├── README.md └── docs └── contributing.md /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Expected Behavior 2 | 3 | 4 | ## Actual Behavior 5 | 6 | 7 | ## Steps to Reproduce the Problem 8 | 9 | 1. 10 | 1. 11 | 1. 12 | 13 | ## Specifications 14 | 15 | - Version: 16 | - Platform: -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Fixes # 2 | 3 | > It's a good idea to open an issue first for discussion. 4 | 5 | - [ ] Tests pass 6 | - [ ] Appropriate changes to README are included in PR -------------------------------------------------------------------------------- /.github/workflows/stale-prs.yml: -------------------------------------------------------------------------------- 1 | name: 'Close stale PRs' 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: '0 * * * *' 6 | 7 | permissions: 8 | pull-requests: write 9 | 10 | jobs: 11 | stale: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/stale@v4 15 | with: 16 | stale-pr-message: 'Stale PRs will be automatically closed to keep this repo clean. If there is no activity on this PR in the next 7 days, this PR will be closed.' 17 | -------------------------------------------------------------------------------- /Course3/Lab4/validations.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import re 4 | 5 | def validate_user(username, minlen): 6 | """Checks if the received username matches the required conditions.""" 7 | if type(username) != str: 8 | raise TypeError("username must be a string") 9 | if minlen < 1: 10 | raise ValueError("minlen must be at least 1") 11 | 12 | # Usernames can't be shorter than minlen 13 | if len(username) < minlen: 14 | return False 15 | # Usernames can only use letters, numbers, dots and underscores 16 | if not re.match('^[a-z0-9._]*$', username): 17 | return False 18 | # Usernames can't begin with a number 19 | if username[0].isnumeric(): 20 | return False 21 | return True 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Course4/Lab4/employees-with-date.csv: -------------------------------------------------------------------------------- 1 | Name,Surname,Department,Start Date 2 | Bradley,Chandler,Accounting,2020-04-26 3 | Dean,Gilmore,Accounting,2018-01-10 4 | Lucius,Glass,Advertising,2019-01-13 5 | Cailin,Mills,Data Analysis,2018-07-27 6 | Audra,Cobb,Research and Development,2019-05-26 7 | Desiree,Delacruz,Data Analysis,2018-05-05 8 | Alfreda,Ryan,DevOps,2018-07-13 9 | Hamilton,Manning,Media Relations,2018-03-09 10 | Lyle,Schultz,Legal Department,2020-01-08 11 | Hu,Hyde,Customer Service,2019-10-16 12 | Melanie,David,Software Development,2020-06-27 13 | Rogan,Miranda,Payroll,2019-04-15 14 | Casey,Tate,Legal Department,2018-02-16 15 | Nell,Ewing,Accounting,2019-05-23 16 | Hayden,Puckett,IT Support,2019-07-09 17 | Britanni,Burgess,DevOps,2019-11-11 18 | Halla,Cantu,IT Support,2020-04-22 19 | Yoshio,Pittman,Asset Management,2018-11-01 20 | Scott,Nelson,Accounting,2019-04-24 21 | Barry,Fry,Legal Department,2018-05-15 22 | Aurora,Sanford,Asset Management,2020-06-13 23 | Oleg,Noble,Media Relations,2020-05-07 24 | Reuben,Stevens,Customer Service,2018-02-26 25 | Fleur,Baker,Legal Department,2019-01-26 26 | Fritz,Tanner,Quality Assurance,2019-07-08 27 | Roth,Foster,Accounting,2020-01-09 28 | Jennifer,Murphy,Customer Relations,2020-04-29 29 | Raymond,Pate,Accounting,2020-05-16 30 | Edward,Nichols,Software Development,2018-02-08 31 | Malcolm,Harvey,Customer Service,2019-08-23 32 | Wesley,Weaver,Asset Management,2019-07-30 33 | Hedwig,Cain,Legal Department,2020-01-20 34 | Beverly,Vasquez,Customer Relations,2018-08-12 35 | Neil,Glass,Finances,2018-01-25 36 | Zeus,Kirk,Advertising,2019-08-24 37 | Brynn,Miles,Research and Development,2020-01-14 38 | Price,Ferrell,Customer Relations,2018-10-13 39 | Linus,Perry,Data Analysis,2019-07-05 40 | Abigail,Bishop,Human Resources,2018-07-03 41 | Chancellor,Kline,Software Development,2019-05-01 42 | Micah,Bentley,Public Relations,2019-12-04 43 | Burton,Sears,IT Support,2018-04-25 44 | Tatyana,Perkins,Customer Relations,2018-08-15 45 | Dana,Miles,Customer Service,2019-04-10 46 | Desirae,Gaines,Advertising,2020-02-09 47 | Ezra,Santos,Human Resources,2018-12-07 48 | Dane,Schwartz,Asset Management,2018-01-03 49 | Lareina,Mercado,Human Resources,2018-03-07 50 | Tanek,Burton,Accounting,2020-01-13 51 | May,Oliver,Software Development,2019-02-20 52 | Kyle,Roach,Customer Relations,2020-06-02 53 | Hoyt,Kramer,DevOps,2019-08-01 54 | Yetta,Thomas,Sales and Marketing,2019-11-19 55 | Nigel,Oneill,Quality Assurance,2019-09-19 56 | Sheila,Richards,Advertising,2019-03-18 57 | Orlando,Stanley,Advertising,2019-08-04 58 | Bethany,Byers,Advertising,2018-09-25 59 | Deacon,Blevins,Quality Assurance,2019-12-31 60 | Lewis,Ochoa,Sales and Marketing,2018-02-02 61 | Evangeline,Cooley,Payroll,2019-10-31 62 | Benjamin,Vang,Asset Management,2018-07-16 63 | Logan,Sharp,Sales and Marketing,2019-02-03 64 | Hedwig,Bullock,Software Development,2018-11-17 65 | Adam,Knowles,Finances,2018-04-12 66 | Laith,Moreno,Accounting,2020-03-07 67 | Kyla,Gay,Payroll,2020-01-13 68 | Megan,Reed,Public Relations,2019-12-11 69 | Ruby,Travis,Accounting,2019-09-08 70 | Benedict,Mathis,Customer Relations,2019-09-13 71 | Tashya,Schroeder,Payroll,2018-01-08 72 | Hayden,Pollard,Customer Relations,2019-04-13 73 | Giselle,Chavez,Accounting,2020-04-14 74 | Baxter,Combs,Customer Service,2019-07-20 75 | Madonna,Perkins,Data Analysis,2019-08-02 76 | Indigo,Chen,Quality Assurance,2018-01-15 77 | Olivia,Frederick,Finances,2020-01-24 78 | Amery,Gardner,IT Support,2018-06-16 79 | Erica,Compton,Customer Relations,2018-05-01 80 | Kylan,Spencer,Quality Assurance,2019-02-11 81 | Ryder,Adams,IT Support,2019-05-07 82 | Raven,Benton,Advertising,2019-04-09 83 | Vera,Carver,Asset Management,2020-04-22 84 | Julie,Bates,Customer Service,2018-04-12 85 | Phyllis,Miller,Finances,2019-02-28 86 | Tiger,May,Public Relations,2018-01-08 87 | Lesley,Fuentes,Quality Assurance,2019-10-16 88 | Xandra,Gonzalez,Research and Development,2020-01-24 89 | Brianna,Soto,Data Analysis,2018-03-25 90 | Liberty,Pena,Advertising,2020-06-06 91 | Ulla,Fulton,Human Resources,2019-12-13 92 | Clio,Petersen,Data Analysis,2018-02-28 93 | MacKenzie,Murphy,Research and Development,2019-11-26 94 | Macon,Livingston,Legal Department,2019-01-11 95 | Dylan,Jackson,DevOps,2018-02-26 96 | Michael,Pickett,Software Development,2019-01-14 97 | Xyla,Ferrell,Human Resources,2020-06-28 98 | Nicholas,Brock,Quality Assurance,2020-06-24 99 | Audra,Reyes,Advertising,2018-07-22 100 | Maris,Rivera,Asset Management,2018-08-30 101 | Dana,Harrington,IT Support,2019-02-21 102 | India,Brock,Data Analysis,2018-03-30 103 | Carol,Mathis,Data Analysis,2018-03-30 104 | Ivory,Mccullough,DevOps,2020-02-11 105 | Desirae,Cash,Data Analysis,2019-07-09 106 | Chadwick,Dillon,Legal Department,2018-04-15 107 | Ralph,Griffith,Customer Relations,2018-12-11 108 | Plato,Taylor,Customer Service,2018-11-14 109 | Bruno,Wallace,Human Resources,2020-05-17 110 | Kelly,Dillon,Software Development,2019-03-30 111 | Gavin,Garrett,Legal Department,2019-02-23 112 | Giacomo,Duffy,Quality Assurance,2020-02-26 113 | Gemma,Booker,Legal Department,2020-05-22 114 | Jonas,Moon,DevOps,2018-04-30 115 | Lydia,Mills,Quality Assurance,2019-05-23 116 | Shellie,Poole,Research and Development,2019-12-15 117 | Iris,Ramirez,Legal Department,2018-04-27 118 | Nathaniel,Puckett,Asset Management,2019-02-17 119 | Aladdin,Knight,Sales and Marketing,2019-08-23 120 | Audra,Horn,Media Relations,2019-06-03 121 | Hayes,Whitley,Media Relations,2019-10-31 122 | Eric,Blackburn,Asset Management,2019-09-17 123 | Blake,Franco,Sales and Marketing,2020-05-28 124 | Stewart,Simmons,Human Resources,2020-02-29 125 | Anne,Giles,Customer Relations,2019-03-11 126 | Oleg,Love,Advertising,2018-12-09 127 | Jason,Meyer,Customer Service,2019-09-26 128 | Casey,Gross,Customer Service,2019-01-26 129 | Ronan,Daugherty,Data Analysis,2018-12-04 130 | Adrienne,Higgins,Asset Management,2019-06-08 131 | Andrew,Donaldson,Software Development,2019-01-15 132 | Hedy,Guzman,IT Support,2018-05-20 133 | Fiona,Montoya,IT Support,2020-03-24 134 | Idola,Warren,Customer Relations,2019-10-15 135 | Jenna,Odom,Sales and Marketing,2019-05-02 136 | Keane,Greer,Public Relations,2019-02-18 137 | Patience,Mann,Quality Assurance,2018-06-08 138 | Lillith,Pace,Payroll,2018-02-02 139 | Lucas,Fuentes,Asset Management,2019-04-05 140 | Darryl,Levy,Human Resources,2019-04-30 141 | Constance,Rocha,Human Resources,2019-08-13 142 | Cade,Grant,Media Relations,2019-12-09 143 | Denise,Wilkins,Customer Relations,2019-03-30 144 | Lane,Newman,Customer Service,2020-01-14 145 | Amela,Grant,Quality Assurance,2020-03-15 146 | Lynn,Fowler,Sales and Marketing,2018-07-12 147 | Leigh,Willis,Data Analysis,2020-01-13 148 | Lionel,Wells,Advertising,2019-05-14 149 | Clare,Saunders,Research and Development,2019-01-21 150 | Richard,Dillon,Software Development,2019-01-19 151 | Kaden,Moon,IT Support,2020-04-23 152 | Jameson,Rowland,Customer Relations,2018-07-13 153 | Otto,Bird,IT Support,2019-05-28 154 | Hyacinth,Holman,Legal Department,2018-08-23 155 | TaShya,Pruitt,Research and Development,2020-03-10 156 | Ryan,Garrett,IT Support,2018-10-26 157 | Dalton,Dennis,Legal Department,2018-02-07 158 | David,Lamb,Legal Department,2019-05-29 159 | Hiram,Browning,Public Relations,2018-01-21 160 | Xaviera,Spence,Human Resources,2019-08-06 161 | Gretchen,Holden,Accounting,2020-03-12 162 | Rigel,Stafford,Asset Management,2018-10-02 163 | Linda,Figueroa,Payroll,2019-08-19 164 | Amelia,Bowen,DevOps,2019-08-24 165 | Sigourney,Cameron,Public Relations,2018-07-27 166 | Ian,Petty,Payroll,2018-08-19 167 | Kibo,Barron,Payroll,2018-12-30 168 | Teagan,Dodson,Accounting,2019-07-30 169 | Emi,William,Sales and Marketing,2019-12-15 170 | Quintessa,Ramsey,Finances,2019-08-31 171 | Leilani,May,DevOps,2018-09-22 172 | Gretchen,Schroeder,Human Resources,2018-03-20 173 | Maxwell,Crosby,Legal Department,2018-04-03 174 | Aurelia,Campbell,Asset Management,2019-10-01 175 | Jermaine,Newman,DevOps,2020-04-18 176 | James,Schwartz,DevOps,2018-10-11 177 | Garrison,Keith,DevOps,2020-04-13 178 | Arthur,Bradley,DevOps,2018-10-18 179 | Adara,Mclaughlin,Data Analysis,2019-02-12 180 | Summer,Fowler,DevOps,2018-03-27 181 | Carolyn,Whitney,Media Relations,2018-08-05 182 | Cally,Gilmore,Media Relations,2019-11-24 183 | Nicholas,Neal,Finances,2018-09-08 184 | Roanna,Barry,Legal Department,2019-09-28 185 | Oscar,Copeland,Finances,2018-05-28 186 | Drake,English,Media Relations,2020-03-12 187 | Keane,Randall,Software Development,2019-06-19 188 | Jescie,Bray,Finances,2018-11-03 189 | Grant,Daugherty,Public Relations,2020-06-30 190 | Belle,Lane,Data Analysis,2019-06-02 191 | Katelyn,May,Payroll,2018-01-23 192 | Margaret,Hooper,Asset Management,2020-01-05 193 | Georgia,Larson,Finances,2019-09-01 194 | Rashad,Mcconnell,Legal Department,2018-10-08 195 | Irene,Dudley,Software Development,2018-02-25 196 | Iona,Mckee,Finances,2020-02-15 197 | Lavinia,Whitfield,Finances,2020-05-10 198 | Maile,Hughes,Legal Department,2019-09-11 199 | Haviva,Morrow,Research and Development,2019-07-08 200 | Grady,Charles,Customer Service,2018-09-13 201 | Walker,Cline,Public Relations,2019-03-27 202 | Brendan,Pugh,Quality Assurance,2019-08-25 203 | Honorato,Solomon,Customer Service,2019-05-24 204 | Anjolie,Powell,IT Support,2019-10-01 205 | Fatima,Kerr,IT Support,2019-11-16 206 | Keefe,Logan,Payroll,2020-01-28 207 | George,Frazier,Advertising,2018-12-28 208 | Vivien,Stark,Accounting,2018-03-08 209 | Kyra,Vance,Data Analysis,2020-06-10 210 | Serena,Hodge,Customer Relations,2019-08-06 211 | Ivana,Bowen,Software Development,2018-07-29 212 | Oleg,Williamson,Sales and Marketing,2018-09-27 213 | Sage,Frye,Accounting,2018-11-30 214 | Keane,Tanner,Sales and Marketing,2018-05-09 215 | Ivan,Dillard,Public Relations,2020-02-06 216 | Malachi,Mccullough,Public Relations,2019-02-27 217 | Hillary,Vega,DevOps,2020-01-23 218 | George,William,DevOps,2019-12-19 219 | Bert,Burke,Software Development,2018-06-01 220 | Rudyard,Williamson,Accounting,2019-05-06 221 | Lars,Roth,Legal Department,2018-09-28 222 | Uriah,Moss,Customer Service,2018-08-03 223 | Carter,Cummings,Customer Service,2018-12-25 224 | Branden,Cabrera,Customer Relations,2018-09-29 225 | Ruby,Richard,Asset Management,2020-01-05 226 | Aurora,Macias,Public Relations,2020-05-19 227 | Leilani,Ayala,Legal Department,2018-06-08 228 | Tanek,Edwards,DevOps,2020-06-04 229 | Taylor,Butler,Legal Department,2019-04-07 230 | Marsden,Oneill,Human Resources,2019-10-02 231 | Dominic,Barlow,Customer Relations,2018-07-04 232 | Vaughan,Carter,Sales and Marketing,2018-01-30 233 | Fay,Schroeder,Sales and Marketing,2019-03-15 234 | Colt,Mcdaniel,Media Relations,2018-03-03 235 | Kane,Rosa,Software Development,2020-03-09 236 | Jamalia,Clarke,Sales and Marketing,2018-09-06 237 | Joy,Hicks,Asset Management,2018-01-25 238 | Kiona,Nguyen,Data Analysis,2020-06-11 239 | Quynn,Parsons,Advertising,2020-06-25 240 | Eleanor,Hood,Accounting,2019-07-09 241 | Eve,Meyer,Software Development,2019-02-04 242 | Laura,Richmond,Customer Service,2018-03-13 243 | Yoko,Gray,Legal Department,2018-09-16 244 | Nathan,Mays,Software Development,2019-05-20 245 | Janna,Green,Accounting,2020-03-04 246 | Jasmine,Howard,Public Relations,2018-07-13 247 | Tana,Calhoun,Payroll,2018-12-12 248 | Lucas,Myers,Data Analysis,2018-09-02 249 | Echo,Foster,Human Resources,2018-01-26 250 | Brody,Carter,Sales and Marketing,2018-01-13 251 | Karyn,Roy,Payroll,2019-12-13 252 | Jarrod,Nicholson,Payroll,2020-06-20 253 | Alma,Ford,Quality Assurance,2018-05-31 254 | Jesse,Wade,Research and Development,2020-01-25 255 | Quon,Figueroa,Payroll,2018-07-17 256 | Hu,Simpson,Sales and Marketing,2019-06-27 257 | Lane,Mendoza,Asset Management,2018-10-19 258 | Cherokee,Dillard,Customer Service,2019-09-06 259 | Candice,Malone,Public Relations,2019-10-03 260 | Dylan,Mcfadden,Media Relations,2018-04-05 261 | Lilah,Hanson,DevOps,2019-12-01 262 | Slade,Roman,Asset Management,2019-11-20 263 | Jonah,Mcdowell,Software Development,2018-06-19 264 | Quamar,Stewart,Media Relations,2019-10-04 265 | Lee,Phelps,Advertising,2018-05-04 266 | Felix,Hunt,Advertising,2018-11-14 267 | Asher,Sawyer,Research and Development,2018-08-01 268 | Isabelle,Jefferson,Data Analysis,2019-08-15 269 | Simone,Cash,Payroll,2018-10-06 270 | Jelani,Fernandez,Software Development,2019-03-22 271 | Branden,Hammond,DevOps,2018-07-24 272 | Martin,Dalton,Legal Department,2019-03-03 273 | Kasper,Alford,DevOps,2018-01-27 274 | Paul,Spears,Finances,2019-05-06 275 | Mary,Molina,Payroll,2019-10-18 276 | Connor,Grimes,Asset Management,2020-01-19 277 | Ainsley,Knight,Accounting,2019-01-21 278 | Adrienne,Dalton,Payroll,2019-09-02 279 | Jack,Franco,DevOps,2020-05-03 280 | Benjamin,Blake,Quality Assurance,2019-03-05 281 | Xerxes,James,Data Analysis,2019-03-06 282 | Savannah,Wise,Data Analysis,2018-10-04 283 | Justina,Hogan,Software Development,2019-09-29 284 | Keaton,Edwards,Customer Service,2019-03-17 285 | Rose,Compton,Sales and Marketing,2020-01-16 286 | Mary,Eaton,Data Analysis,2018-08-11 287 | Kirsten,Bernard,IT Support,2018-06-13 288 | Knox,Williamson,Customer Relations,2019-02-15 289 | Wesley,Crane,Customer Relations,2018-10-07 290 | Venus,Love,Legal Department,2019-05-28 291 | Michelle,Nielsen,Quality Assurance,2018-05-09 292 | Aubrey,Kim,Media Relations,2018-04-19 293 | Katell,Gill,Media Relations,2020-06-25 294 | Jessamine,Myers,Sales and Marketing,2019-04-18 295 | Kelsey,Adkins,Accounting,2020-06-29 296 | Aidan,Schroeder,Public Relations,2020-03-13 297 | Duncan,Lowery,Customer Service,2018-07-27 298 | Ciaran,Chavez,Sales and Marketing,2019-11-07 299 | Mannix,Estes,Accounting,2020-03-09 300 | Morgan,Massey,Data Analysis,2019-07-26 301 | Zephr,Woodward,Research and Development,2018-04-13 302 | Virginia,Gordon,Software Development,2018-04-20 303 | Felix,Parks,Data Analysis,2019-01-29 304 | Eric,Giles,Advertising,2019-07-01 305 | Ivory,Glenn,Customer Service,2018-02-11 306 | Zelda,Deleon,Accounting,2018-12-27 307 | Tate,Chang,IT Support,2020-03-27 308 | Zeph,English,Sales and Marketing,2020-03-10 309 | Olga,Vincent,Media Relations,2018-10-12 310 | Henry,Bullock,Software Development,2018-08-01 311 | Rina,Mcfarland,Public Relations,2018-02-10 312 | Vera,Mccullough,Human Resources,2018-05-02 313 | Neil,Warner,Media Relations,2019-02-05 314 | Macy,Walls,DevOps,2019-11-22 315 | Xaviera,Carlson,Data Analysis,2019-08-05 316 | Brenda,Barton,IT Support,2019-07-22 317 | Neville,Ball,DevOps,2019-05-26 318 | Colin,Maddox,Payroll,2020-02-05 319 | Lee,Jacobs,Customer Relations,2020-02-17 320 | Samantha,Lee,Sales and Marketing,2018-06-11 321 | Aurelia,Giles,Legal Department,2018-01-01 322 | Vance,Hardin,Asset Management,2018-03-26 323 | Fallon,Neal,Accounting,2018-12-10 324 | Giselle,Dillon,Advertising,2020-04-24 325 | Vaughan,English,Asset Management,2019-05-06 326 | Gwendolyn,Castillo,Accounting,2018-12-24 327 | Gage,Vega,DevOps,2019-03-04 328 | Sydnee,Pickett,Customer Service,2018-02-05 329 | Josiah,Stuart,Quality Assurance,2018-08-01 330 | Elton,Schmidt,Customer Service,2018-05-16 331 | Hyacinth,Mack,Legal Department,2018-09-08 332 | Lucy,Wade,Research and Development,2019-02-25 333 | Miranda,Vasquez,Asset Management,2019-06-08 334 | Diana,Mccall,Quality Assurance,2019-02-14 335 | Jasper,Gibbs,Research and Development,2018-05-24 336 | Elvis,Davidson,Finances,2019-09-19 337 | Ali,Tate,Data Analysis,2018-08-18 338 | Wynne,Anthony,IT Support,2019-12-20 339 | Tallulah,Dean,Advertising,2018-05-23 340 | Chase,Chandler,Human Resources,2019-05-10 341 | Lawrence,Berger,Data Analysis,2018-12-09 342 | Bradley,Workman,Advertising,2018-02-09 343 | Rosalyn,Bullock,Human Resources,2019-08-19 344 | Tasha,Hodge,Customer Service,2020-01-04 345 | Carol,Weiss,Legal Department,2019-10-22 346 | Ferris,Benton,Finances,2018-07-05 347 | Kalia,Perez,Software Development,2020-05-13 348 | Thaddeus,Hughes,Public Relations,2019-07-14 349 | Eleanor,Dorsey,Human Resources,2019-03-29 350 | Jaden,Lowe,Customer Service,2018-06-24 351 | Darius,Goodman,Legal Department,2019-10-06 352 | Josiah,Morrow,Customer Service,2020-03-09 353 | Hedley,Phelps,Advertising,2018-08-01 354 | Kelly,Byrd,Research and Development,2018-09-14 355 | Isabelle,Harper,Public Relations,2018-12-18 356 | Alexander,Dillard,Research and Development,2019-08-28 357 | Neil,Orr,Payroll,2018-12-22 358 | Halla,Henry,DevOps,2018-04-20 359 | Judah,Sloan,Media Relations,2018-05-31 360 | Myra,Chambers,Data Analysis,2018-06-20 361 | Allistair,Mcdaniel,Accounting,2019-06-01 362 | Laura,Chan,Research and Development,2018-12-08 363 | Linus,Cantrell,DevOps,2020-04-04 364 | Fatima,Robinson,Legal Department,2019-09-06 365 | Curran,Farley,Human Resources,2019-01-12 366 | Harding,Mcmillan,Quality Assurance,2019-07-04 367 | Ella,Sloan,Quality Assurance,2019-08-24 368 | Rhiannon,Dodson,Customer Service,2020-03-09 369 | Reese,Franks,Advertising,2018-10-14 370 | Stewart,Todd,Public Relations,2019-05-01 371 | Kay,Pratt,Public Relations,2020-03-24 372 | Kristen,Christensen,Quality Assurance,2018-01-29 373 | Jerome,Livingston,Advertising,2018-02-19 374 | Heather,Warren,Data Analysis,2018-07-02 375 | Thane,Rich,Customer Relations,2020-01-26 376 | Kiara,Farrell,Research and Development,2019-11-27 377 | Justin,Dalton,Payroll,2019-10-17 378 | Holmes,Kent,Advertising,2018-09-08 379 | Alana,Potts,DevOps,2018-01-26 380 | Clementine,Ford,Quality Assurance,2018-10-20 381 | Darrel,Mccray,Customer Service,2019-07-19 382 | Carson,Finley,DevOps,2019-08-20 383 | Beck,Padilla,Quality Assurance,2018-09-21 384 | Gregory,Berger,Customer Relations,2018-07-25 385 | Phelan,Fields,Quality Assurance,2019-12-27 386 | Kylan,Mccormick,Public Relations,2019-04-26 387 | Jordan,Golden,Finances,2020-06-27 388 | Yoshi,Molina,Sales and Marketing,2020-01-02 389 | Tobias,Mcleod,Advertising,2020-03-05 390 | Alfonso,Jackson,Media Relations,2018-03-25 391 | Kennedy,Harrington,Customer Relations,2019-06-06 392 | Kessie,Rutledge,Payroll,2018-12-14 393 | Rafael,Vaughan,Advertising,2020-05-13 394 | Lucy,Calhoun,Accounting,2019-01-05 395 | Paula,Norris,Public Relations,2018-12-06 396 | Jarrod,Carlson,Media Relations,2018-01-07 397 | Wyoming,Pacheco,Advertising,2019-06-02 398 | Iris,George,Public Relations,2018-04-02 399 | Devin,Foley,Accounting,2019-05-04 400 | Stewart,Weeks,Advertising,2018-05-15 401 | Amaya,Mercado,DevOps,2020-03-13 402 | -------------------------------------------------------------------------------- /Course5/Lab3/hello_cloud.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright 2019 Google LLC 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | """A simple Hello World type app which can serve on port 8000. 17 | Optionally, a different port can be passed. 18 | 19 | The code was inspired by: 20 | https://gist.github.com/davidbgk/b10113c3779b8388e96e6d0c44e03a74 21 | """ 22 | import http 23 | import http.server 24 | import socket 25 | import socketserver 26 | import sys 27 | 28 | # TCP port for listening to connections, if no port is received 29 | DEFAULT_PORT=8000 30 | 31 | class Handler(http.server.SimpleHTTPRequestHandler): 32 | def do_GET(self): 33 | self.send_response(http.HTTPStatus.OK) 34 | self.end_headers() 35 | # Hello message 36 | self.wfile.write(b'Hello Cloud') 37 | # Now get the hostname and IP and print that as well. 38 | hostname = socket.gethostname() 39 | host_ip = socket.gethostbyname(hostname) 40 | self.wfile.write( 41 | '\n\nHostname: {} \nIP Address: {}'.format( 42 | hostname, host_ip).encode()) 43 | 44 | 45 | def main(argv): 46 | port = DEFAULT_PORT 47 | if len(argv) > 1: 48 | port = int(argv[1]) 49 | 50 | web_server = socketserver.TCPServer(('', port), Handler) 51 | print("Listening for connections on port {}".format(port)) 52 | web_server.serve_forever() 53 | 54 | 55 | if __name__ == "__main__": 56 | main(sys.argv) 57 | -------------------------------------------------------------------------------- /Course5/Lab3/hello_cloud.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | After=network.target 3 | 4 | [Service] 5 | ExecStart=/usr/local/bin/hello_cloud.py 80 6 | 7 | [Install] 8 | WantedBy=default.target 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Google IT Automation with Python Professional Certificate - Practice files 2 | 3 | This repository contains the practice files used throughout the courses that are 4 | part of the Google IT Automation with Python Professional Certificate 5 | 6 | There's a separate folder for each course. 7 | 8 | -------------------------------------------------------------------------------- /docs/contributing.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement. You (or your employer) retain the copyright to your contribution; 10 | this simply gives us permission to use and redistribute your contributions as 11 | part of the project. Head over to to see 12 | your current agreements on file or to sign a new one. 13 | 14 | You generally only need to submit a CLA once, so if you've already submitted one 15 | (even if it was for a different project), you probably don't need to do it 16 | again. 17 | 18 | ## Code reviews 19 | 20 | All submissions, including submissions by project members, require review. We 21 | use GitHub pull requests for this purpose. Consult 22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 23 | information on using pull requests. 24 | 25 | ## Community Guidelines 26 | 27 | This project follows [Google's Open Source Community 28 | Guidelines](https://opensource.google/conduct/). 29 | --------------------------------------------------------------------------------