+
+
+
+
+
+
\ No newline at end of file
diff --git a/students/Justin_Jameson/lesson03/assignment/Justin_Jameson_Lesson 3 src.zip b/students/Justin_Jameson/lesson03/assignment/Justin_Jameson_Lesson 3 src.zip
new file mode 100644
index 0000000..05e8ab7
Binary files /dev/null and b/students/Justin_Jameson/lesson03/assignment/Justin_Jameson_Lesson 3 src.zip differ
diff --git a/students/template_student/lesson03/assignment/data/customer.csv b/students/Justin_Jameson/lesson03/assignment/data/customer.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson03/assignment/data/customer.csv
rename to students/Justin_Jameson/lesson03/assignment/data/customer.csv
diff --git a/students/template_student/lesson03/assignment/pylintrc b/students/Justin_Jameson/lesson03/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson03/assignment/pylintrc
rename to students/Justin_Jameson/lesson03/assignment/pylintrc
diff --git a/students/Justin_Jameson/lesson03/assignment/src/basic_operations.py b/students/Justin_Jameson/lesson03/assignment/src/basic_operations.py
new file mode 100644
index 0000000..8ff035f
--- /dev/null
+++ b/students/Justin_Jameson/lesson03/assignment/src/basic_operations.py
@@ -0,0 +1,198 @@
+# -------------------------------------------------#
+# # Title: Lesson 03 basic_operations
+# # Dev: Justin Jameson
+# # Date: 4/20/2019
+# # ChangeLog: (Who, when, What)
+# -------------------------------------------------#
+""" This file will perform interactions with the database and gather user input.
+Defining the database information and applying logging messages"""
+
+import sys
+import logging # Refactored by importing only Customer from customer_class, which was importing *
+import peewee
+from customer_class import CustomerInformationClass
+from customer_info_model import Customer, database # refactored to only import Customer class
+from playhouse.shortcuts import model_to_dict
+
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+
+
+def main_menu(user_prompt=None):
+ """
+ This method creates the menu for the program.
+ """
+ valid_prompts = {"1": create_new_customer,
+ "2": search_customer,
+ "3": delete_customer,
+ "4": update_customer_credit,
+ "5": list_active_customers,
+ "q": exit_program,
+ "t": method_to_call_testing}
+ options = list(valid_prompts.keys())
+
+ while user_prompt not in valid_prompts:
+ options_str = ("{}" + ", {}" * (len(options)-1)).format(*options)
+ print(f"Please choose from the following options ({options_str}):")
+ print("1. Add a new Customer to the DataBase")
+ print("2. Search the DataBase for a Customer")
+ print("3. Delete a Customer from the DataBase")
+ print("4. Update the Customer's credit line")
+ print("5. List all active Customers")
+ print("q. Quit")
+ user_prompt = input(">")
+ return valid_prompts.get(user_prompt)
+
+
+def create_new_customer():
+ """
+ This method calls the Customer class to populate attribute information
+ for a new customer as a dictionary.
+ :return: returns dictionary to the class?
+ """
+ new_customer = CustomerInformationClass(
+ customer_id=input("Enter Customer ID: "),
+ first_name=input("Enter Customers first name: "),
+ last_name=input("Enter Customers last name: "),
+ home_address=input("Enter the Customers Home Address: "),
+ phone_number=input("Enter the Customers Phone Number: "),
+ email_address=input("Enter the Customers Email: "),
+ customer_status=input("Enter the Customers Status (Active/Inactive):"),
+ credit_limit=input("Enter the Customers Credit Limit: "))
+ logger.info('create_new _customer parameters entered.')
+ customer_info = new_customer.return_as_dictionary()
+ add_customer(customer_info)
+
+
+def add_customer(customer_dict):
+ """
+ This method will add a customer to the database using the dictionary
+ created in the create_new_customer method.
+ :param customer_dict:
+ :return: returns to the main menu
+ """
+ try:
+ new_customer = Customer.create(
+ customer_id=customer_dict['customer_id'],
+ first_name=customer_dict['first_name'],
+ last_name=customer_dict['last_name'],
+ home_address=customer_dict['home_address'],
+ phone_number=customer_dict['phone_number'],
+ email_address=customer_dict['email_address'],
+ customer_status=customer_dict['customer_status'],
+ credit_limit=customer_dict['credit_limit']) # Record created
+ new_customer.save() # Record saved
+ logger.info('Database add successful')
+ logger.info(customer_dict)
+
+ except Exception as e:
+ logger.info(f'Error creating = {customer_dict}')
+ logger.info(e)
+ logger.info('See how the database protects our data')
+
+ # main_menu()()
+
+
+def search_customer(customer_id=None):
+ """
+ This function will return a dictionary object with name, last name,
+ email address and phone number of a customer or an empty dictionary object
+ if no customer was found.
+ :param customer_id:
+ :return: query dictionary
+ """
+ if customer_id is None:
+ customer_id = input("Enter Customer ID: ")
+ else:
+ customer_id = customer_id
+ query_dict = {}
+ try:
+ query = (
+ Customer
+ .select()
+ .where(Customer.customer_id == customer_id).get())
+ query_dict = model_to_dict(query)
+ except peewee.DoesNotExist:
+ logger.info("Can't find customer with id: %s.", customer_id)
+ logger.info("Returning empty dict.")
+ print(query_dict)
+ return query_dict # where does this return go to?
+
+
+def delete_customer(customer_id=None):
+ """
+ This function will delete a customer from the sqlite3 database.
+ :param customer_id:
+ :return: None
+ """
+ dbase = Customer
+ if customer_id is None:
+ customer_id = input("Enter Customer ID: ")
+ else:
+ customer_id = customer_id
+ try:
+ remove_customer = dbase.get(dbase.customer_id == customer_id)
+ remove_customer.delete_instance()
+ logger.info('Database delete successful')
+
+ except Exception as e:
+ logger.info(f'Error finding = {customer_id}')
+ logger.info(e)
+
+
+def update_customer_credit(new_credit=None, customer_id=None):
+ """
+ This function will search an existing customer by customer_id
+ and update their credit limit or raise a ValueError exception
+ if the customer does not exist.
+ :param customer_id:
+ :param new_credit:
+ :return:
+ """
+ if customer_id is None and new_credit is None:
+ customer_id = input("Enter Customer ID: ")
+ new_credit = input("Enter new credit limit: ")
+ else:
+ customer_id = customer_id
+ new_credit = new_credit
+
+ with database.transaction():
+ update = (
+ Customer
+ .update(credit_limit=new_credit)
+ .where(Customer.customer_id == customer_id)
+ .execute()
+ )
+ # if update == 0:
+ # logger.info("No customer was found for id %s", customer_id)
+ # raise ValueError("NoCustomer")
+ return update
+
+
+def list_active_customers():
+ """This function will return an integer with the number of customers
+ whose status is currently active."""
+ try:
+ active_customers = (
+ Customer
+ .select()
+ .where(Customer.customer_status == "A").count())
+ except peewee.DoesNotExist:
+ logger.info("No active customers found in DB")
+ print(active_customers)
+
+
+def method_to_call_testing():
+ pass
+
+
+def exit_program():
+ """This method exits the program"""
+ logger.info('called exit_program')
+ sys.exit()
+
+
+if __name__ == '__main__':
+ while True:
+ main_menu()()
+ input("Press Enter to continue...........")
diff --git a/students/Justin_Jameson/lesson03/assignment/src/customer_class.py b/students/Justin_Jameson/lesson03/assignment/src/customer_class.py
new file mode 100644
index 0000000..f9050af
--- /dev/null
+++ b/students/Justin_Jameson/lesson03/assignment/src/customer_class.py
@@ -0,0 +1,62 @@
+# -------------------------------------------------#
+# # Title: Lesson 03 customer_class
+# # Dev: Justin Jameson
+# # Date: 4/20/2019
+# # ChangeLog: (Who, when, What)
+# -------------------------------------------------#
+
+""" Establishing a class to collect Customer Information"""
+
+
+class CustomerInformationClass:
+ """
+ This class creates attributes for collecting Customer information. The attributes will be
+ used for database integration.
+ """
+
+ def __init__(self, customer_id, first_name, last_name, home_address, phone_number,
+ email_address, customer_status, credit_limit):
+ self.customer_id = customer_id
+ self.first_name = first_name
+ self.last_name = last_name
+ self.home_address = home_address
+ self.phone_number = phone_number
+ self.email_address = email_address
+ self.customer_status = customer_status
+ self.credit_limit = credit_limit
+
+ def return_as_dictionary(self):
+ """
+ Returns Class Representation as a Dictionary
+ :return: Dictionary Representation of the customer information
+ class
+ """
+ customer_dict = {}
+ customer_dict['customer_id'] = self.customer_id
+ customer_dict['first_name'] = self.first_name
+ customer_dict['last_name'] = self.last_name
+ customer_dict['home_address'] = self.home_address
+ customer_dict['phone_number'] = self.phone_number
+ customer_dict['email_address'] = self.email_address
+ customer_dict['customer_status'] = self.customer_status
+ customer_dict['credit_limit'] = self.credit_limit
+
+ return customer_dict
+
+ def return_as_list(self):
+ """
+ Returns Class Representation as a list
+ :return: list Representation of the customer information
+ class
+ """
+ customer_list = [(self.customer_id,
+ self.first_name,
+ self.last_name,
+ self.home_address,
+ self.phone_number,
+ self.email_address,
+ self.customer_status,
+ self.credit_limit), ]
+
+ return customer_list
+
diff --git a/students/Justin_Jameson/lesson03/assignment/src/customer_info.db b/students/Justin_Jameson/lesson03/assignment/src/customer_info.db
new file mode 100644
index 0000000..18a77f2
Binary files /dev/null and b/students/Justin_Jameson/lesson03/assignment/src/customer_info.db differ
diff --git a/students/Justin_Jameson/lesson03/assignment/src/customer_info_model.py b/students/Justin_Jameson/lesson03/assignment/src/customer_info_model.py
new file mode 100644
index 0000000..caf1f95
--- /dev/null
+++ b/students/Justin_Jameson/lesson03/assignment/src/customer_info_model.py
@@ -0,0 +1,49 @@
+# -------------------------------------------------#
+# # Title: Lesson 03 customer_class
+# # Dev: Justin Jameson
+# # Date: 4/20/2019
+# # ChangeLog: (Who, when, What)
+# -------------------------------------------------#
+"""Defining the database information and applying logging messages"""
+
+import logging
+from peewee import *
+
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+
+database = SqliteDatabase('customer_info.db')
+database.connect()
+database.execute_sql('PRAGMA foreign_keys = ON;') # needed for sqlite only
+
+
+class BaseModel(Model):
+ class Meta:
+ database = database
+
+
+class Customer(BaseModel):
+ """
+ This class defines the Customer attribute information for the table 'Customer'.
+ """
+ customer_id = CharField(primary_key=True, max_length=10)
+ first_name = CharField(max_length=30)
+ last_name = CharField(max_length=30)
+ home_address = CharField(max_length=30)
+ phone_number = CharField(max_length=15, null=True)
+ email_address = CharField(max_length=30)
+ customer_status = CharField(max_length=30)
+ credit_limit = DecimalField(max_digits=7, decimal_places=2)
+
+ class Meta:
+ database = database # using 'customer_info.db'
+
+
+def create_table():
+ database.create_tables([Customer])
+
+
+def delete_customer(customer_id):
+ customer_id.deleteinstance()
+
+# create_table()
diff --git a/students/Justin_Jameson/lesson03/assignment/src/test_basic_operations.py b/students/Justin_Jameson/lesson03/assignment/src/test_basic_operations.py
new file mode 100644
index 0000000..46046be
--- /dev/null
+++ b/students/Justin_Jameson/lesson03/assignment/src/test_basic_operations.py
@@ -0,0 +1,108 @@
+# -------------------------------------------------#
+# # Title: Lesson 03 Test Harness
+# # Dev: Justin Jameson
+# # Date: 4/20/2019
+# # ChangeLog: (Who, when, What)
+# -------------------------------------------------#
+"""
+Following guidlines set forth in: Testing Python APPLYING UNIT TESTING, TDD, BDD, AND ACCEPTANCE TESTING
+- Unit tests should be placed under a test/unit directory at the top level of your project folder.
+- All folders within the application's code should be mirrored by test folders under test/unit,
+which will have the unit tests for each file in them.
+For example, app/data should have a mirrored folder of test/unit/app/data.
+- All unit test files should mirror the name of the file they are testing, with _testas the suffix.
+For example, app/data/data_interface.py should have a test file of test/unit/app/data/data_interface_test.py.
+"""
+
+import pytest
+import basic_operations as b_ops
+
+
+@pytest.fixture
+def _add_customers():
+ """
+ possible refactor could be defining the dict as a constant then calling each key in the specific method.
+ see chapter 2 from above book:
+ """
+
+ customer_dict = {'customer_id': '6', 'first_name': 'Katee', 'last_name': 'Jane',
+ 'home_address': 'Pac NW', 'phone_number': '764 206 3800',
+ 'email_address': 'none', 'customer_status': 'A',
+ 'credit_limit': '231'}
+ return customer_dict
+
+
+@pytest.fixture
+def _search_customers():
+ customer_id = 6
+ return customer_id
+
+
+@pytest.fixture
+def _delete_customers():
+ customer_id = 6
+ return customer_id
+
+
+@pytest.fixture
+def _update_customer_credit():
+ new_credit = 369
+ customer_id = 6
+ return new_credit, customer_id
+
+
+@pytest.fixture
+def _list_active_customers():
+ return []
+
+
+def test_list_active_customers(_list_active_customers):
+ """ actives """
+
+ actives = b_ops.list_active_customers()
+ assert actives != 2
+
+
+def test_add_customer(_add_customers):
+ """ additions
+ """
+ # b_ops.main_menu("q")
+ b_ops.add_customer(_add_customers)
+ added = b_ops.search_customer(6)
+ assert added["first_name"] == 'Katee'
+ assert added["last_name"] == 'Jane'
+ assert added["email_address"] == 'none'
+ assert added["phone_number"] == '764 206 3800'
+ # b_ops.delete_customer(6)
+
+
+def test_search_customer(_search_customers):
+ """ search """
+ # result = b_ops.search_customer(_search_customers)
+ # assert result == {}, {'customer_id': '6', 'first_name': 'Katee', 'last_name': 'Jane',
+ # 'home_address': 'Pac NW', 'phone_number': '764 206 3800',
+ # 'email_address': 'none', 'customer_status': 'A',
+ # 'credit_limit': '231'}
+
+ result = b_ops.search_customer(_search_customers)
+ assert result['first_name'] == 'Katee'
+ assert result["last_name"] == 'Jane'
+
+
+def test_update_customer_credit(_update_customer_credit):
+ """ update """
+ new_credit = 369
+ customer_id = 6
+ b_ops.update_customer_credit(new_credit, customer_id)
+ result = b_ops.search_customer(6)
+ assert result['credit_limit'] == 369
+
+
+def test_delete_customer(_delete_customers):
+ """ delete """
+
+ response = b_ops.delete_customer(_delete_customers)
+ assert response is None
+
+ deleted = b_ops.search_customer(_delete_customers)
+ assert deleted == {}
diff --git a/students/Justin_Jameson/lesson03/assignment/tests/test_basic_operations.py b/students/Justin_Jameson/lesson03/assignment/tests/test_basic_operations.py
new file mode 100644
index 0000000..2b746d7
--- /dev/null
+++ b/students/Justin_Jameson/lesson03/assignment/tests/test_basic_operations.py
@@ -0,0 +1,132 @@
+# -------------------------------------------------#
+# # Title: Lesson 03 Test Harness
+# # Dev: Justin Jameson
+# # Date: 4/20/2019
+# # ChangeLog: (Who, when, What)
+# -------------------------------------------------#
+"""
+Following guidlines set forth in: Testing Python APPLYING UNIT TESTING, TDD, BDD, AND ACCEPTANCE TESTING
+- Unit tests should be placed under a test/unit directory at the top level of your project folder.
+- All folders within the application's code should be mirrored by test folders under test/unit,
+which will have the unit tests for each file in them.
+For example, app/data should have a mirrored folder of test/unit/app/data.
+- All unit test files should mirror the name of the file they are testing, with _testas the suffix.
+For example, app/data/data_interface.py should have a test file of test/unit/app/data/data_interface_test.py.
+"""
+
+import pytest
+from ..assignment.src import basic_operations as b_ops
+
+
+@pytest.fixture
+def _add_customers():
+ """
+ possible refactor could be defining the dict as a constant then calling each key in the specific method.
+ see chapter 2 from above book:
+Without Setup
+class TestCalculate(unittest.TestCase):
+ def test_add_method_returns_correct_result(self):
+ calc = Calculate()
+ self.assertEqual(4, calc.add(2,2))
+
+ def test_add_method_raises_typeerror_if_not_ints(self):
+ calc = Calculate()
+ self.assertRaises(TypeError, calc.add, "Hello", "World")
+
+if __name__ == '__main__':
+ unittest.main()
+With Setup
+class TestCalculate(unittest.TestCase):
+
+ def setUp(self):
+ self.calc = Calculate()
+
+ def test_add_method_returns_correct_result(self):
+ self.assertEqual(4, self.calc.add(2,2))
+
+ def test_add_method_raises_typeerror_if_not_ints(self):
+ self.assertRaises(TypeError, self.calc.add, "Hello", "World")
+ :return:
+ """
+ customer_dict = {'customer_id': '6', 'first_name': 'Katee', 'last_name': 'Jane',
+ 'home_address': 'lkasdjf', 'phone_number': '9876',
+ 'email_address': 'none', 'customer_status': 'A',
+ 'credit_limit': '231'}
+ return customer_dict
+
+
+@pytest.fixture
+def _search_customers():
+ customer_id = 6
+ return customer_id
+
+
+@pytest.fixture
+def _delete_customers():
+ customer_id = 6
+ return customer_id
+
+
+@pytest.fixture
+def _update_customer_credit():
+ customer_id = 6
+ new_credit = 369
+ return customer_id, new_credit
+
+
+@pytest.fixture
+def _list_active_customers():
+ return []
+
+
+def test_list_active_customers(_list_active_customers):
+ """ actives """
+
+ actives = b_ops.list_active_customers()
+
+ assert actives == 2
+
+
+def test_add_customer(_add_customers):
+ """ additions
+ """
+
+ b_ops.add_customer(_add_customers)
+ added = b_ops.search_customer(6)
+ assert added["first_name"] == 'Katee'
+ assert added["last_name"] == 'Jane'
+ assert added["email_address"] == 'none'
+ assert added["phone_number"] == 9876
+ b_ops.delete_customer(6)
+
+
+def test_search_customer(_search_customers):
+ """ search """
+ result = b_ops.search_customer(_search_customers)
+ assert result == {'customer_id': '6', 'first_name': 'Katee', 'last_name': 'Jane',
+ 'home_address': 'lkasdjf', 'phone_number': '9876',
+ 'email_address': 'none', 'customer_status': 'A',
+ 'credit_limit': '231'}
+
+ result = b_ops.search_customer(_search_customers)
+ assert result["name"] == 'Katee'
+ assert result["lastname"] == 'Jane'
+
+
+def test_update_customer_credit(_update_customer_credit):
+ """ update """
+ b_ops.update_customer_credit(_update_customer_credit)
+ with pytest.raises(ValueError) as excinfo:
+ b_ops.update_customer_credit("00100", 1000) # error
+ assert 'NoCustomer' in str(excinfo.value)
+
+
+def test_delete_customer(_delete_customers):
+ """ delete """
+
+ response = b_ops.delete_customer(_delete_customers)
+ assert response is True
+
+ deleted = b_ops.search_customer(_delete_customers)
+ assert deleted == {}
+
diff --git a/students/template_student/lesson03/assignment/tests/test_gradel03.py b/students/Justin_Jameson/lesson03/assignment/tests/test_gradel03.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson03/assignment/tests/test_gradel03.py
rename to students/Justin_Jameson/lesson03/assignment/tests/test_gradel03.py
diff --git a/students/template_student/lesson04/activity/README.md b/students/Justin_Jameson/lesson04/activity/README.md
similarity index 100%
rename from students/template_student/lesson04/activity/README.md
rename to students/Justin_Jameson/lesson04/activity/README.md
diff --git a/students/template_student/lesson04/assignment/data/customer.csv b/students/Justin_Jameson/lesson04/assignment/data/customer.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson04/assignment/data/customer.csv
rename to students/Justin_Jameson/lesson04/assignment/data/customer.csv
diff --git a/students/template_student/lesson04/assignment/pylintrc b/students/Justin_Jameson/lesson04/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson04/assignment/pylintrc
rename to students/Justin_Jameson/lesson04/assignment/pylintrc
diff --git a/students/template_student/lesson03/assignment/src/basic_operations.py b/students/Justin_Jameson/lesson04/assignment/src/basic_operations.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson03/assignment/src/basic_operations.py
rename to students/Justin_Jameson/lesson04/assignment/src/basic_operations.py
diff --git a/students/template_student/lesson04/assignment/tests/test_gradel04.py b/students/Justin_Jameson/lesson04/assignment/tests/test_gradel04.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson04/assignment/tests/test_gradel04.py
rename to students/Justin_Jameson/lesson04/assignment/tests/test_gradel04.py
diff --git a/students/Justin_Jameson/lesson05/MongoWorkModified.py b/students/Justin_Jameson/lesson05/MongoWorkModified.py
new file mode 100644
index 0000000..34a4c0b
--- /dev/null
+++ b/students/Justin_Jameson/lesson05/MongoWorkModified.py
@@ -0,0 +1,116 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 29 21:42:48 2019
+
+@author (comments): David Pokrajac
+"""
+
+""""
+must use 127.0.0.1 on windows
+pip install pymongo
+
+"""
+from pymongo import MongoClient
+
+
+class MongoDBConnection():
+ """MongoDB Connection"""
+
+ def __init__(self, host='127.0.0.1', port=27017):
+ """ be sure to use the ip address not name for local windows"""
+ self.host = host
+ self.port = port
+ self.connection = None
+
+ def __enter__(self):
+ self.connection = MongoClient(self.host, self.port)
+ return self
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ self.connection.close()
+
+
+def print_mdb_collection(collection_name):
+ for doc in collection_name.find():
+ print(doc)
+
+
+def main():
+ mongo = MongoDBConnection()
+
+ with mongo: #Context manager.
+ # mongodb database; it all starts here
+ db = mongo.connection.media #We are connecting to a database named "media".
+
+ # collection in database
+ cd = db["cd"] #Please do not confuse "cd" (corresponding to CompactDisk) with similarly named OS command (change directory)
+
+ # notice how easy these are to create and that they are "schemaless"
+ # that is, the Python module defines the data structure in a dict,
+ # rather than the database which just stores what it is told
+
+ cd_ip = {"artist": "The Who", "Title": "By Numbers"}
+ result = cd.insert_one(cd_ip) #Inserting precisely one record
+
+ cd_ip = [{
+ "artist": "Deep Purple",
+ "Title": "Made In Japan",
+ "name": "Andy"
+ },
+ {
+ "artist": "Led Zeppelin",
+ "Title": "House of the Holy",
+ "name": "Andy"
+ }, {
+ "artist": "Pink Floyd",
+ "Title": "DSOM",
+ "name": "Andy"
+ },
+ {
+ "artist": "Albert Hammond",
+ "Title": "Free Electric Band",
+ "name": "Sam"
+ }, {
+ "artist": "Nilsson",
+ "Title": "Without You",
+ "name": "Sam"
+ }] #List of dictionaries corresponding to records to be inserted
+
+ result = cd.insert_many(cd_ip) #Inserts records specified in the list above
+
+ print_mdb_collection(cd) #Prints all records from a specified table
+
+ # another collection, i.e., table
+ ThePersonWhoCollects = db["ThePersonWhoCollects"] #Should table names be the same or different?
+ #I changed name from collector to ThePersonWhoCollects so that it would not be confused with "collection".
+ ThePersonWhoCollects_ip = [{
+ "name": "Andy",
+ "preference": "Rock"
+ }, {
+ "name": "Sam",
+ "preference": "Pop"
+ }]
+ result = ThePersonWhoCollects.insert_many(ThePersonWhoCollects_ip) #The database appears after we insert many
+
+ print_mdb_collection(ThePersonWhoCollects)
+
+ # related data
+ for CurrentRecord in ThePersonWhoCollects.find(): #Here CurrentRecord is a variable pointing to each found record in a table
+ #CurrentRecord is a dictionary (EACH record is a dictionary). We can refer an element of the dictionary
+ #by its key; one of the keys is called "name"
+ print(f'List for {CurrentRecord["name"]}')
+ query = {"name": CurrentRecord["name"]}
+ for a_cd in cd.find(query): #Find all the records from table "cd" where attribute name is equal to a specified value (which happens to be a
+ #a name of a current record). In general, keys from records need satisfy properties specified in query
+ print(f'{CurrentRecord["name"]} has collected {a_cd}')
+
+ # start afresh next time?
+ yorn = input("Drop data?")
+ if yorn.upper() == 'Y':
+ cd.drop()
+ ThePersonWhoCollects.drop() #Deletes the table and the data
+
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/students/template_student/lesson05/activity/mongdb_ex.py b/students/Justin_Jameson/lesson05/activity/mongdb_ex.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/mongdb_ex.py
rename to students/Justin_Jameson/lesson05/activity/mongdb_ex.py
diff --git a/students/template_student/lesson05/activity/mongodb.py b/students/Justin_Jameson/lesson05/activity/mongodb.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/mongodb.py
rename to students/Justin_Jameson/lesson05/activity/mongodb.py
diff --git a/students/template_student/lesson05/activity/mongodb_script.py.amend b/students/Justin_Jameson/lesson05/activity/mongodb_script.py.amend
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/mongodb_script.py.amend
rename to students/Justin_Jameson/lesson05/activity/mongodb_script.py.amend
diff --git a/students/template_student/lesson05/activity/neo4j.py b/students/Justin_Jameson/lesson05/activity/neo4j.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/neo4j.py
rename to students/Justin_Jameson/lesson05/activity/neo4j.py
diff --git a/students/template_student/lesson05/activity/nosql-other/.config/config.ini.sample b/students/Justin_Jameson/lesson05/activity/nosql-other/.config/config.ini.sample
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/.config/config.ini.sample
rename to students/Justin_Jameson/lesson05/activity/nosql-other/.config/config.ini.sample
diff --git a/students/template_student/lesson05/activity/nosql-other/data/data.pkl b/students/Justin_Jameson/lesson05/activity/nosql-other/data/data.pkl
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/data/data.pkl
rename to students/Justin_Jameson/lesson05/activity/nosql-other/data/data.pkl
diff --git a/students/template_student/lesson05/activity/nosql-other/data/rockstars.csv b/students/Justin_Jameson/lesson05/activity/nosql-other/data/rockstars.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/data/rockstars.csv
rename to students/Justin_Jameson/lesson05/activity/nosql-other/data/rockstars.csv
diff --git a/students/template_student/lesson05/activity/nosql-other/data/shelve.dat.db b/students/Justin_Jameson/lesson05/activity/nosql-other/data/shelve.dat.db
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/data/shelve.dat.db
rename to students/Justin_Jameson/lesson05/activity/nosql-other/data/shelve.dat.db
diff --git a/students/template_student/lesson05/activity/nosql-other/data/shelve.db b/students/Justin_Jameson/lesson05/activity/nosql-other/data/shelve.db
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/data/shelve.db
rename to students/Justin_Jameson/lesson05/activity/nosql-other/data/shelve.db
diff --git a/students/template_student/lesson05/activity/nosql-other/src/__init__.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/__init__.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/__init__.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/__init__.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/learn_data.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/learn_data.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/learn_data.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/learn_data.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/learnnosql.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/learnnosql.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/learnnosql.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/learnnosql.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/login_database.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/login_database.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/login_database.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/login_database.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/mongodb_script.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/mongodb_script.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/mongodb_script.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/mongodb_script.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/neo4j_script.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/neo4j_script.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/neo4j_script.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/neo4j_script.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/redis_script.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/redis_script.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/redis_script.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/redis_script.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/simple_script.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/simple_script.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/simple_script.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/simple_script.py
diff --git a/students/template_student/lesson05/activity/nosql-other/src/utilities.py b/students/Justin_Jameson/lesson05/activity/nosql-other/src/utilities.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/nosql-other/src/utilities.py
rename to students/Justin_Jameson/lesson05/activity/nosql-other/src/utilities.py
diff --git a/students/template_student/lesson05/activity/peeweeapi.py b/students/Justin_Jameson/lesson05/activity/peeweeapi.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/peeweeapi.py
rename to students/Justin_Jameson/lesson05/activity/peeweeapi.py
diff --git a/students/template_student/lesson05/activity/rdbms_api.py b/students/Justin_Jameson/lesson05/activity/rdbms_api.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/rdbms_api.py
rename to students/Justin_Jameson/lesson05/activity/rdbms_api.py
diff --git a/students/template_student/lesson05/activity/redis.py b/students/Justin_Jameson/lesson05/activity/redis.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/activity/redis.py
rename to students/Justin_Jameson/lesson05/activity/redis.py
diff --git a/students/template_student/lesson05/assignment/data/customers.csv b/students/Justin_Jameson/lesson05/assignment/data/customers.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/assignment/data/customers.csv
rename to students/Justin_Jameson/lesson05/assignment/data/customers.csv
diff --git a/students/template_student/lesson05/assignment/data/product.csv b/students/Justin_Jameson/lesson05/assignment/data/product.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/assignment/data/product.csv
rename to students/Justin_Jameson/lesson05/assignment/data/product.csv
diff --git a/students/template_student/lesson05/assignment/data/rental.csv b/students/Justin_Jameson/lesson05/assignment/data/rental.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/assignment/data/rental.csv
rename to students/Justin_Jameson/lesson05/assignment/data/rental.csv
diff --git a/students/template_student/lesson05/assignment/pylintrc b/students/Justin_Jameson/lesson05/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson05/assignment/pylintrc
rename to students/Justin_Jameson/lesson05/assignment/pylintrc
diff --git a/students/template_student/lesson05/assignment/src/database.py b/students/Justin_Jameson/lesson05/assignment/src/database.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/assignment/src/database.py
rename to students/Justin_Jameson/lesson05/assignment/src/database.py
diff --git a/students/template_student/lesson05/assignment/tests/test_database.py b/students/Justin_Jameson/lesson05/assignment/tests/test_database.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson05/assignment/tests/test_database.py
rename to students/Justin_Jameson/lesson05/assignment/tests/test_database.py
diff --git a/students/Justin_Jameson/lesson05/chat from zoom lesson 5.txt b/students/Justin_Jameson/lesson05/chat from zoom lesson 5.txt
new file mode 100644
index 0000000..5247b6b
--- /dev/null
+++ b/students/Justin_Jameson/lesson05/chat from zoom lesson 5.txt
@@ -0,0 +1,110 @@
+From Kyle Creek to Everyone: 06:02 PM
+I am ready whenever
+From danielcastro to Everyone: 06:02 PM
+yes ready
+From PYTHON Host to Everyone: 06:04 PM
+Any volunteer to answer the question :)
+From Sam Chang to Everyone: 06:18 PM
+not yet
+From Me to Everyone: 06:18 PM
+yes
+From Kyle Creek to Everyone: 06:18 PM
+I tried to install the software. Not sure if it works
+From Aaron Devey to Everyone: 06:19 PM
+haven't tried yet
+From Kyle Creek to Everyone: 06:20 PM
+I had to go to the mongo website to install Mongo
+From danielcastro to Everyone: 06:20 PM
+theres a test file you can run to make sure everything was installed
+From Aaron Devey to Everyone: 06:20 PM
+brew is for mac
+https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ <--- windows instructions
+From Kyle Creek to Everyone: 06:21 PM
+I have a question about Mongo, or maybe API's in general. From what I"ve gathered Mongo is an API. I always had the understand that you query APIs for data and they return it. IN the samples provided it seems like you build the data and store it in a MongoDB?
+From Me to Everyone: 06:21 PM
+Thanks Aaron!
+From Kyle Creek to Everyone: 06:25 PM
+Yeah that makes sense
+From PYTHON Host to Everyone: 06:26 PM
+Does anyone have a Windows computer?
+From Kyle Creek to Everyone: 06:26 PM
+I have a windows computer
+From PYTHON Host to Everyone: 06:27 PM
+My understanding is that you were able to install Mongo, Kyle…
+From Kyle Creek to Everyone: 06:27 PM
+I believe so
+From PYTHON Host to Everyone: 06:27 PM
+:)
+From Kyle Creek to Everyone: 06:27 PM
+I ran the file given in the "activity" foler and it worked
+From danielcastro to Everyone: 06:29 PM
+You can run this script to test it
+https://canvas.uw.edu/courses/1260484/files/56075781?module_item_id=9450736
+Yes we can see it
+From Kyle Creek to Everyone: 06:32 PM
+what is the significance of host and port? is that like an IP addres?
+From Kyle Creek to Everyone: 06:42 PM
+Its gets confusing
+From PYTHON Host to Everyone: 06:42 PM
+Yes.
+And what else?
+From danielcastro to Everyone: 06:42 PM
+The length of all of them might not match?
+From Kyle Creek to Everyone: 06:42 PM
+Uses a lot of memory?
+From Lola Guerrero to Everyone: 06:42 PM
+it might never finish
+From Aaron Devey to Everyone: 06:42 PM
+big O gets really out of hand
+From PYTHON Host to Everyone: 06:43 PM
+Or at least not within reasonable time...
+Say we need to browse through 1,000,000 records in one for loop, 1,000 in the second, 1,000 in the thitd,
+From Aaron Devey to Everyone: 06:43 PM
+exponential loops
+From PYTHON Host to Everyone: 06:45 PM
+And 1,000 in the fourth for loop.
+The number of records retrieved does grow exponentially with number of fors.
+Indexes
+From Kyle Creek to Everyone: 06:47 PM
+is there similiar documentation for mongo
+like there is for the database stuff we used last week?
+From Aaron Devey to Everyone: 06:50 PM
+there should be some docs for pymongo
+http://api.mongodb.com/python/current/tutorial.html
+From Kyle Creek to Everyone: 06:51 PM
+I think I might have misunderstood the structure. So if you would be so kind please correct me if I'm wrong. MongoDB is just the location that houses the data. The code that is written utilizes the Pymongo module to obtain and manipulate that housed data
+From Aaron Devey to Everyone: 06:52 PM
+MongoDB is actually a server or daemon
+From PYTHON Host to Everyone: 06:52 PM
+I think you are both right.
+From Kyle Creek to Everyone: 06:53 PM
+what is a daemon
+I don't have much of a CS background so I'm trying to wrap my head around some of these conceptfs
+From Aaron Devey to Everyone: 06:53 PM
+there are other kinds of servers or daemons that you might already be familiar with, such as web servers
+From PYTHON Host to Everyone: 06:53 PM
+The point is: in real World, you would not connect to a local application, you would connect to a server, with a specified IP address. Through Python, you’d be able to insert and manipulate (query, delete, update) data.
+From Aaron Devey to Everyone: 06:54 PM
+when you go to a website for example, you're connecting to a web server
+daemon is just another word for a server
+From PYTHON Host to Everyone: 06:54 PM
+The beauty of data base approach: while you are connecting to it, it I can also connect, and this is precisely when you are on FB. When you type a status, it goes to a FB database, when I am commenting on your status, it goes there, too, but from my client (browser).
+From Kyle Creek to Everyone: 06:54 PM
+got it. Thank you.
+From PYTHON Host to Everyone: 06:57 PM
+Deamon is an application running on a server; server is typically a machine, deamon is a software.
+Do you see my screen with (pdb) prompt?
+From Kyle Creek to Everyone: 07:00 PM
+yes
+where do you define the initial databse media
+or does calling it initialize it
+From Kyle Creek to Everyone: 07:22 PM
+why do you have to assign the insert function to the "result" variable
+From Kyle Creek to Everyone: 07:41 PM
+I'm ready whenever
+From rlarge to Everyone: 07:41 PM
+ready
+From Lola Guerrero to Everyone: 07:41 PM
+mee too
+From Sam Chang to Everyone: 07:41 PM
+ready to go
diff --git a/students/template_student/lesson06/activity/README.md b/students/Justin_Jameson/lesson06/activity/README.md
similarity index 100%
rename from students/template_student/lesson06/activity/README.md
rename to students/Justin_Jameson/lesson06/activity/README.md
diff --git a/students/template_student/lesson06/assignment/data/exercise.csv b/students/Justin_Jameson/lesson06/assignment/data/exercise.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson06/assignment/data/exercise.csv
rename to students/Justin_Jameson/lesson06/assignment/data/exercise.csv
diff --git a/students/template_student/lesson06/assignment/pylintrc b/students/Justin_Jameson/lesson06/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson06/assignment/pylintrc
rename to students/Justin_Jameson/lesson06/assignment/pylintrc
diff --git a/students/template_student/lesson06/assignment/src/good_perf.py b/students/Justin_Jameson/lesson06/assignment/src/good_perf.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson06/assignment/src/good_perf.py
rename to students/Justin_Jameson/lesson06/assignment/src/good_perf.py
diff --git a/students/template_student/lesson06/assignment/src/poor_perf.py b/students/Justin_Jameson/lesson06/assignment/src/poor_perf.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson06/assignment/src/poor_perf.py
rename to students/Justin_Jameson/lesson06/assignment/src/poor_perf.py
diff --git a/students/template_student/lesson06/assignment/tests/test_good_perf.py b/students/Justin_Jameson/lesson06/assignment/tests/test_good_perf.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson06/assignment/tests/test_good_perf.py
rename to students/Justin_Jameson/lesson06/assignment/tests/test_good_perf.py
diff --git a/students/template_student/lesson06/assignment/tests/test_perf.py b/students/Justin_Jameson/lesson06/assignment/tests/test_perf.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson06/assignment/tests/test_perf.py
rename to students/Justin_Jameson/lesson06/assignment/tests/test_perf.py
diff --git a/students/template_student/lesson07/activity/README.md b/students/Justin_Jameson/lesson07/activity/README.md
similarity index 100%
rename from students/template_student/lesson07/activity/README.md
rename to students/Justin_Jameson/lesson07/activity/README.md
diff --git a/students/template_student/lesson07/assignment/data/customer.csv b/students/Justin_Jameson/lesson07/assignment/data/customer.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson07/assignment/data/customer.csv
rename to students/Justin_Jameson/lesson07/assignment/data/customer.csv
diff --git a/students/template_student/lesson07/assignment/data/product.csv b/students/Justin_Jameson/lesson07/assignment/data/product.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson07/assignment/data/product.csv
rename to students/Justin_Jameson/lesson07/assignment/data/product.csv
diff --git a/students/template_student/lesson07/assignment/data/rental.csv b/students/Justin_Jameson/lesson07/assignment/data/rental.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson07/assignment/data/rental.csv
rename to students/Justin_Jameson/lesson07/assignment/data/rental.csv
diff --git a/students/template_student/lesson07/assignment/pylintrc b/students/Justin_Jameson/lesson07/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson07/assignment/pylintrc
rename to students/Justin_Jameson/lesson07/assignment/pylintrc
diff --git a/students/template_student/lesson07/assignment/tests/test_gradel07.py b/students/Justin_Jameson/lesson07/assignment/tests/test_gradel07.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson07/assignment/tests/test_gradel07.py
rename to students/Justin_Jameson/lesson07/assignment/tests/test_gradel07.py
diff --git a/students/template_student/lesson08/activity/README.md b/students/Justin_Jameson/lesson08/activity/README.md
similarity index 100%
rename from students/template_student/lesson08/activity/README.md
rename to students/Justin_Jameson/lesson08/activity/README.md
diff --git a/students/template_student/lesson08/assignment/data/test_items.csv b/students/Justin_Jameson/lesson08/assignment/data/test_items.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson08/assignment/data/test_items.csv
rename to students/Justin_Jameson/lesson08/assignment/data/test_items.csv
diff --git a/students/template_student/lesson08/assignment/pylintrc b/students/Justin_Jameson/lesson08/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson08/assignment/pylintrc
rename to students/Justin_Jameson/lesson08/assignment/pylintrc
diff --git a/students/template_student/lesson08/assignment/src/inventory.py b/students/Justin_Jameson/lesson08/assignment/src/inventory.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson08/assignment/src/inventory.py
rename to students/Justin_Jameson/lesson08/assignment/src/inventory.py
diff --git a/students/template_student/lesson08/assignment/tests/test_inventory.py b/students/Justin_Jameson/lesson08/assignment/tests/test_inventory.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson08/assignment/tests/test_inventory.py
rename to students/Justin_Jameson/lesson08/assignment/tests/test_inventory.py
diff --git a/students/template_student/lesson09/activity/locke_manager.py b/students/Justin_Jameson/lesson09/activity/locke_manager.py
similarity index 100%
rename from students/template_student/lesson09/activity/locke_manager.py
rename to students/Justin_Jameson/lesson09/activity/locke_manager.py
diff --git a/students/template_student/lesson09/assignment/data/furniture/chair/couch/sofa_400_clr_10056.png b/students/Justin_Jameson/lesson09/assignment/data/furniture/chair/couch/sofa_400_clr_10056.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/furniture/chair/couch/sofa_400_clr_10056.png
rename to students/Justin_Jameson/lesson09/assignment/data/furniture/chair/couch/sofa_400_clr_10056.png
diff --git a/students/template_student/lesson09/assignment/data/furniture/chair/metal_chair_back_isometric_400_clr_17527.png b/students/Justin_Jameson/lesson09/assignment/data/furniture/chair/metal_chair_back_isometric_400_clr_17527.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/furniture/chair/metal_chair_back_isometric_400_clr_17527.png
rename to students/Justin_Jameson/lesson09/assignment/data/furniture/chair/metal_chair_back_isometric_400_clr_17527.png
diff --git a/students/template_student/lesson09/assignment/data/furniture/table/basic_desk_main_400_clr_17523.png b/students/Justin_Jameson/lesson09/assignment/data/furniture/table/basic_desk_main_400_clr_17523.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/furniture/table/basic_desk_main_400_clr_17523.png
rename to students/Justin_Jameson/lesson09/assignment/data/furniture/table/basic_desk_main_400_clr_17523.png
diff --git a/students/template_student/lesson09/assignment/data/furniture/table/desk_isometric_back_400_clr_17524.png b/students/Justin_Jameson/lesson09/assignment/data/furniture/table/desk_isometric_back_400_clr_17524.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/furniture/table/desk_isometric_back_400_clr_17524.png
rename to students/Justin_Jameson/lesson09/assignment/data/furniture/table/desk_isometric_back_400_clr_17524.png
diff --git a/students/template_student/lesson09/assignment/data/furniture/table/table_with_cloth_400_clr_10664.png b/students/Justin_Jameson/lesson09/assignment/data/furniture/table/table_with_cloth_400_clr_10664.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/furniture/table/table_with_cloth_400_clr_10664.png
rename to students/Justin_Jameson/lesson09/assignment/data/furniture/table/table_with_cloth_400_clr_10664.png
diff --git a/students/template_student/lesson09/assignment/data/new/chairs_balancing_stacked_400_clr_11525.png b/students/Justin_Jameson/lesson09/assignment/data/new/chairs_balancing_stacked_400_clr_11525.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/new/chairs_balancing_stacked_400_clr_11525.png
rename to students/Justin_Jameson/lesson09/assignment/data/new/chairs_balancing_stacked_400_clr_11525.png
diff --git a/students/template_student/lesson09/assignment/data/new/hotel_room_400_clr_12721.png b/students/Justin_Jameson/lesson09/assignment/data/new/hotel_room_400_clr_12721.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/new/hotel_room_400_clr_12721.png
rename to students/Justin_Jameson/lesson09/assignment/data/new/hotel_room_400_clr_12721.png
diff --git a/students/template_student/lesson09/assignment/data/old/couple_on_swing_bench_400_clr_12844.png b/students/Justin_Jameson/lesson09/assignment/data/old/couple_on_swing_bench_400_clr_12844.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/old/couple_on_swing_bench_400_clr_12844.png
rename to students/Justin_Jameson/lesson09/assignment/data/old/couple_on_swing_bench_400_clr_12844.png
diff --git a/students/template_student/lesson09/assignment/data/old/sitting_in_chair_relaxing_400_clr_6028.png b/students/Justin_Jameson/lesson09/assignment/data/old/sitting_in_chair_relaxing_400_clr_6028.png
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/data/old/sitting_in_chair_relaxing_400_clr_6028.png
rename to students/Justin_Jameson/lesson09/assignment/data/old/sitting_in_chair_relaxing_400_clr_6028.png
diff --git a/students/template_student/lesson09/assignment/pylintrc b/students/Justin_Jameson/lesson09/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson09/assignment/pylintrc
rename to students/Justin_Jameson/lesson09/assignment/pylintrc
diff --git a/students/template_student/lesson09/assignment/src/database.py b/students/Justin_Jameson/lesson09/assignment/src/database.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/src/database.py
rename to students/Justin_Jameson/lesson09/assignment/src/database.py
diff --git a/students/template_student/lesson09/assignment/src/jpgdiscover.py b/students/Justin_Jameson/lesson09/assignment/src/jpgdiscover.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/src/jpgdiscover.py
rename to students/Justin_Jameson/lesson09/assignment/src/jpgdiscover.py
diff --git a/students/template_student/lesson09/assignment/tests/test_database.py b/students/Justin_Jameson/lesson09/assignment/tests/test_database.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/tests/test_database.py
rename to students/Justin_Jameson/lesson09/assignment/tests/test_database.py
diff --git a/students/template_student/lesson09/assignment/tests/test_jpgdiscover.py b/students/Justin_Jameson/lesson09/assignment/tests/test_jpgdiscover.py
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson09/assignment/tests/test_jpgdiscover.py
rename to students/Justin_Jameson/lesson09/assignment/tests/test_jpgdiscover.py
diff --git a/students/template_student/lesson10/activity/README.md b/students/Justin_Jameson/lesson10/activity/README.md
similarity index 100%
rename from students/template_student/lesson10/activity/README.md
rename to students/Justin_Jameson/lesson10/activity/README.md
diff --git a/students/template_student/lesson10/assignment/README.md b/students/Justin_Jameson/lesson10/assignment/README.md
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson10/assignment/README.md
rename to students/Justin_Jameson/lesson10/assignment/README.md
diff --git a/students/template_student/lesson10/assignment/data/customer.csv b/students/Justin_Jameson/lesson10/assignment/data/customer.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson10/assignment/data/customer.csv
rename to students/Justin_Jameson/lesson10/assignment/data/customer.csv
diff --git a/students/template_student/lesson10/assignment/data/product.csv b/students/Justin_Jameson/lesson10/assignment/data/product.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson10/assignment/data/product.csv
rename to students/Justin_Jameson/lesson10/assignment/data/product.csv
diff --git a/students/template_student/lesson10/assignment/data/rental.csv b/students/Justin_Jameson/lesson10/assignment/data/rental.csv
old mode 100755
new mode 100644
similarity index 100%
rename from students/template_student/lesson10/assignment/data/rental.csv
rename to students/Justin_Jameson/lesson10/assignment/data/rental.csv
diff --git a/students/template_student/lesson10/assignment/pylintrc b/students/Justin_Jameson/lesson10/assignment/pylintrc
similarity index 100%
rename from students/template_student/lesson10/assignment/pylintrc
rename to students/Justin_Jameson/lesson10/assignment/pylintrc
diff --git a/students/template_student/lesson10/assignment/src/databse.py b/students/Justin_Jameson/lesson10/assignment/src/databse.py
similarity index 100%
rename from students/template_student/lesson10/assignment/src/databse.py
rename to students/Justin_Jameson/lesson10/assignment/src/databse.py
diff --git a/students/template_student/lesson01/assignment/inventory_management/electricAppliancesClass.py b/students/template_student/lesson01/assignment/inventory_management/electricAppliancesClass.py
deleted file mode 100755
index 291f199..0000000
--- a/students/template_student/lesson01/assignment/inventory_management/electricAppliancesClass.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Electric appliances class
-from inventoryClass import inventory
-
-class electricAppliances(inventory):
-
- def __init__(self, productCode, description, marketPrice, rentalPrice, brand, voltage):
- inventory.__init__(self,productCode,description,marketPrice,rentalPrice) # Creates common instance variables from the parent class
-
-
- self.brand = brand
- self.voltage = voltage
-
- def returnAsDictionary(self):
- outputDict = {}
- outputDict['productCode'] = self.productCode
- outputDict['description'] = self.description
- outputDict['marketPrice'] = self.marketPrice
- outputDict['rentalPrice'] = self.rentalPrice
- outputDict['brand'] = self.brand
- outputDict['voltage'] = self.voltage
-
- return outputDict
\ No newline at end of file
diff --git a/students/template_student/lesson01/assignment/inventory_management/furnitureClass.py b/students/template_student/lesson01/assignment/inventory_management/furnitureClass.py
deleted file mode 100755
index 9a98aa7..0000000
--- a/students/template_student/lesson01/assignment/inventory_management/furnitureClass.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Furniture class
-from inventoryClass import inventory
-
-class furniture(inventory):
-
- def __init__(self, productCode, description, marketPrice, rentalPrice, material, size):
- inventory.__init__(self,productCode,description,marketPrice,rentalPrice) # Creates common instance variables from the parent class
-
- self.material = material
- self.size = size
-
- def returnAsDictionary(self):
- outputDict = {}
- outputDict['productCode'] = self.productCode
- outputDict['description'] = self.description
- outputDict['marketPrice'] = self.marketPrice
- outputDict['rentalPrice'] = self.rentalPrice
- outputDict['material'] = self.material
- outputDict['size'] = self.size
-
- return outputDict
\ No newline at end of file
diff --git a/students/template_student/lesson01/assignment/inventory_management/inventoryClass.py b/students/template_student/lesson01/assignment/inventory_management/inventoryClass.py
deleted file mode 100755
index 40c7fd3..0000000
--- a/students/template_student/lesson01/assignment/inventory_management/inventoryClass.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Inventory class
-class inventory:
-
- def __init__(self, productCode, description, marketPrice, rentalPrice):
- self.productCode = productCode
- self.description = description
- self.marketPrice = marketPrice
- self.rentalPrice = rentalPrice
-
- def returnAsDictionary(self):
- outputDict = {}
- outputDict['productCode'] = self.productCode
- outputDict['description'] = self.description
- outputDict['marketPrice'] = self.marketPrice
- outputDict['rentalPrice'] = self.rentalPrice
-
- return outputDict
\ No newline at end of file
diff --git a/students/template_student/lesson01/assignment/inventory_management/main.py b/students/template_student/lesson01/assignment/inventory_management/main.py
deleted file mode 100755
index 4b82694..0000000
--- a/students/template_student/lesson01/assignment/inventory_management/main.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# Launches the user interface for the inventory management system
-import sys
-import market_prices
-import inventoryClass
-import furnitureClass
-import electricAppliancesClass
-
-def mainMenu(user_prompt=None):
- valid_prompts = {"1": addNewItem,
- "2": itemInfo,
- "q": exitProgram}
- options = list(valid_prompts.keys())
-
- while user_prompt not in valid_prompts:
- options_str = ("{}" + (", {}") * (len(options)-1)).format(*options)
- print("Please choose from the following options ({options_str}):")
- print("1. Add a new item to the inventory")
- print("2. Get item information")
- print("q. Quit")
- user_prompt = input(">")
- return valid_prompts.get(user_prompt)
-
-def getPrice(itemCode):
- print("Get price")
-
-def addNewItem():
- global fullInventory
- itemCode = input("Enter item code: ")
- itemDescription = input("Enter item description: ")
- itemRentalPrice = input("Enter item rental price: ")
-
- # Get price from the market prices module
- itemPrice = market_prices.get_latest_price(itemCode)
-
- isFurniture = input("Is this item a piece of furniture? (Y/N): ")
- if isFurniture.lower() == "y":
- itemMaterial = input("Enter item material: ")
- itemSize = input("Enter item size (S,M,L,XL): ")
- newItem = furnitureClass.furniture(itemCode,itemDescription,itemPrice,itemRentalPrice,itemMaterial,itemSize)
- else:
- isElectricAppliance = input("Is this item an electric appliance? (Y/N): ")
- if isElectricAppliance.lower() == "y":
- itemBrand = input("Enter item brand: ")
- itemVoltage = input("Enter item voltage: ")
- newItem = electricAppliancesClass.electricAppliances(itemCode,itemDescription,itemPrice,itemRentalPrice,itemBrand,itemVoltage)
- else:
- newItem = inventoryClass.inventory(itemCode,itemDescription,itemPrice,itemRentalPrice)
- fullInventory[itemCode] = newItem.returnAsDictionary()
- print("New inventory item added")
-
-
-def itemInfo():
- itemCode = input("Enter item code: ")
- if itemCode in fullInventory:
- printDict = fullInventory[itemCode]
- for k,v in printDict.items():
- print("{}:{}".format(k,v))
- else:
- print("Item not found in inventory")
-
-def exitProgram():
- sys.exit()
-
-if __name__ == '__main__':
- fullInventory = {}
- while True:
- print(fullInventory)
- mainMenu()()
- input("Press Enter to continue...........")
diff --git a/students/template_student/lesson01/assignment/inventory_management/market_prices.py b/students/template_student/lesson01/assignment/inventory_management/market_prices.py
deleted file mode 100755
index a486cc8..0000000
--- a/students/template_student/lesson01/assignment/inventory_management/market_prices.py
+++ /dev/null
@@ -1,3 +0,0 @@
-def get_latest_price(item_code):
- return 24
- # Raise an exception to force the user to Mock its output
\ No newline at end of file
diff --git a/students/template_student/lesson02/assignment/src/charges_calc.py b/students/template_student/lesson02/assignment/src/charges_calc.py
deleted file mode 100755
index 2a4496a..0000000
--- a/students/template_student/lesson02/assignment/src/charges_calc.py
+++ /dev/null
@@ -1,47 +0,0 @@
-'''
-Returns total price paid for individual rentals
-'''
-import argparse
-import json
-import datetime
-import math
-
-def parse_cmd_arguments():
- parser = argparse.ArgumentParser(description='Process some integers.')
- parser.add_argument('-i', '--input', help='input JSON file', required=True)
- parser.add_argument('-o', '--output', help='ouput JSON file', required=True)
-
- return parser.parse_args()
-
-
-def load_rentals_file(filename):
- with open(filename) as file:
- try:
- data = json.load(file)
- except:
- exit(0)
- return data
-
-def calculate_additional_fields(data):
- for value in data.values():
- try:
- rental_start = datetime.datetime.strptime(value['rental_start'], '%m/%d/%y')
- rental_end = datetime.datetime.strptime(value['rental_end'], '%m/%d/%y')
- value['total_days'] = (rental_end - rental_start).days
- value['total_price'] = value['total_days'] * value['price_per_day']
- value['sqrt_total_price'] = math.sqrt(value['total_price'])
- value['unit_cost'] = value['total_price'] / value['units_rented']
- except:
- exit(0)
-
- return data
-
-def save_to_json(filename, data):
- with open(filename, 'w') as file:
- json.dump(data, file)
-
-if __name__ == "__main__":
- args = parse_cmd_arguments()
- data = load_rentals_file(args.input)
- data = calculate_additional_fields(data)
- save_to_json(args.output, data)
diff --git a/students/template_student/lesson04/assignment/src/basic_operations.py b/students/template_student/lesson04/assignment/src/basic_operations.py
deleted file mode 100755
index e69de29..0000000