{"id":15111534,"url":"https://github.com/vtomlin1/portfolio","last_synced_at":"2026-01-07T10:51:53.358Z","repository":{"id":231394327,"uuid":"781683756","full_name":"vtomlin1/Portfolio","owner":"vtomlin1","description":"Here are some projects that I have worked on.","archived":false,"fork":false,"pushed_at":"2024-07-26T19:50:50.000Z","size":2205,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-04T14:46:45.636Z","etag":null,"topics":["databases","machine-learning","mysql","pandas-python","python","tableau-public","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vtomlin1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-03T20:59:49.000Z","updated_at":"2024-07-26T19:50:53.000Z","dependencies_parsed_at":"2024-04-03T22:25:24.911Z","dependency_job_id":"3027c79b-6885-410a-9cc5-d54d55b41072","html_url":"https://github.com/vtomlin1/Portfolio","commit_stats":null,"previous_names":["vtomlin1/portfolio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtomlin1%2FPortfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtomlin1%2FPortfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtomlin1%2FPortfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtomlin1%2FPortfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vtomlin1","download_url":"https://codeload.github.com/vtomlin1/Portfolio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246045835,"owners_count":20714851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["databases","machine-learning","mysql","pandas-python","python","tableau-public","tensorflow"],"created_at":"2024-09-26T00:20:56.745Z","updated_at":"2026-01-07T10:51:53.299Z","avatar_url":"https://github.com/vtomlin1.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hello! My name is Victoria Tomlinson   \nHere are some of the projects that I have worked on. I am always updating as I learn!  \n## Projects  \n\n### [Forecasting Housing Prices with Python](/Python)\n---     \nI attended some virtual workshops from Major League Hacking that taught machine learning in python. In these workshops, we were able to clean the data, manipulate the data to give more accurate results, and build different machine learning algorithms to predict the costs of houses.  \n\n[This](/Python/Data_Cleaning.ipynb) jupyter notebook goes over data exploration and data cleaning. After some data analysis, I have created a [python script](/Python/Preprocessing.py) to preprocess the [testing](/Python/test.csv) and [training](/Python/train.csv) data. \n\n[This](/Python/ML.ipynb) notebook goes over some machine learning models and their accuracy.  \n\n### [Database queries with MySQL](/SakilaSQL/)  \n---   \nIn this project, I have written MySQL queries to pull data from a large database from the MySQL workbench app. The database is called Sakila (version 1.3) and it consists of sample data that a rental store would have, including customer data, rental history, payment history, information on the films, inventory, and more. The [EER Diagram](/SakilaSQL/Sakila_EER_Diagram.png) shows a visual of what the database looks like. For a more detailed look into the database, [here](/SakilaSQL/sakila-schema.sql) is the schema.  \n\nI wanted to create a rental process where I can see the customer's history, find a film in stock, and add their rental into the database.\n\n```sql\n/*This block gets all the active customers*/\nSELECT CONCAT(first_name, ' ', last_name) as 'Customer', RY.country, Y.city, a.address,\nDATE_FORMAT(create_date, \"%m/%d/%Y\") as \"Start Date\",\nemail,\nget_customer_balance(c.customer_id,NOW()) as \"Current Balance\"\nFROM customer c\n    INNER JOIN address a \n    ON a.address_id = c.address_id\n    INNER JOIN city Y\n    ON Y.city_id = a.city_id\n    INNER JOIN country RY\n    ON RY.country_id = Y.country_id\n/*Filter to get only active customers*/\nWHERE active = '1' and RY.country = \"Canada\"\nORDER BY RY.country ASC\n```\nThis sql code gives the following table. \n#### Active Customers\n\n| Customer | country | city | address | Start Date | email | Current Balance |\n| --- | --- | --- | --- | --- | --- | --- |\n| DERRICK BOURQUE | Canada | Gatineau | 1153 Allende Way | 02/14/2006 | DERRICK.BOURQUE@saki | 0.00 |\n| DARRELL POWER | Canada | Halifax | 1844 Usak Avenue | 02/14/2006 | DARRELL.POWER@sakila | 0.00 |\n| LORETTA CARPENTER | Canada | Oshawa | 891 Novi Sad Manor | 02/14/2006 | LORETTA.CARPENTER@sa | 0.00 |\n| CURTIS IRBY | Canada | Richmond Hill | 432 Garden Grove Str | 02/14/2006 | CURTIS.IRBY@sakilacu | 0.00 |\n| TROY QUIGLEY | Canada | Vancouver | 983 Santa Fé Way | 02/14/2006 | TROY.QUIGLEY@sakilac | 0.00 |\n\nWe can view all of the active customers from Canada, their address, email, and current balance.\n\nNow suppose that Darrell Power wants to rent a film. We can query his rental history with the following code:\n```sql\n/*Get customer rental history*/\nSELECT \nDATE_FORMAT(rental_date, \"%m/%d/%Y\") as \"Rental Date\",\ntitle as \"Title\",\nca.name as \"Genre\",\nrating as \"Rating\"\nFROM customer c\n    INNER JOIN rental r\n    ON c.customer_id = r.customer_id\n    INNER JOIN inventory i\n    ON r.inventory_id = i.inventory_id\n    INNER JOIN film f\n    ON f.film_id = i.film_id\n    INNER JOIN film_category fc\n    ON f.film_id = fc.film_id\n    INNER JOIN category ca\n    ON ca.category_id = fc.category_id\n\n\n/*Find the specific customer*/\nWHERE CONCAT(first_name, ' ',last_name) = \"Darrell Power\"\norder by rental_date DESC;\n```\n\n\n## Rental History \n[Table](/SakilaSQL/Rental_History.csv)\n\n| Rental Date | Title | Genre | Rating |\n| --- | --- | --- | --- |\n| 08/22/2005 | THIEF PELICAN | Animation | PG-13 |\n| 08/22/2005 | INTENTIONS EMPIRE | Animation | PG-13 |\n| 08/21/2005 | DRACULA CRYSTAL | Classics | G |\n| 08/20/2005 | SOMETHING DUCK | Drama | NC-17 |\n| 08/19/2005 | DIVINE RESURRECTION | Games | R |\n| 08/18/2005 | FRENCH HOLIDAY | Documentary | PG |\n| 08/17/2005 | ALABAMA DEVIL | Horror | PG-13 |\n| 08/02/2005 | POLLOCK DELIVERANCE | Foreign | PG |\n| 08/01/2005 | SIEGE MADRE | Family | R |\n| 08/01/2005 | CHITTY LOCK | Drama | G |\n\nSupposed Darrell wants another animation film rated PG-13. [This](/SakilaSQL/Films.sql) sql query will grab all of the films from the store in Canada that matches those criteria as well as how many are in stock. \n\n```sql\n/*Gets the ID, Genre, Rating, and Inventory of films*/\nSELECT DISTINCT\nf.film_id as \"ID\",\nf.title as \"Film\",\nc.name as \"Genre\",\nf.rating as \"Rating\",\nf.description as \"Summary\",\nf.rental_rate as \"Price\",\nf.rental_duration as \"Days\",\n/*Checks the stock of the store in Lethbridge, Canada*/\n(SELECT COUNT(*) FROM inventory WHERE film_id = f.film_id AND store_id = 1) AS \"Stock\"\nFROM film f \n    inner join film_category fc\n    on f.film_id = fc.film_id\n    INNER join category c\n    on fc.category_id = c.category_id\n    INNER JOIN inventory i \n    ON f.film_id = i.film_id\n    INNER JOIN store s\n    ON s.store_id = i.store_id\n\n/*Filter by Genre and Rating*/\nWHERE c.name = 'Animation' AND Rating = \"PG-13\";\n```\n\n## Recommended Films\n[Table](/SakilaSQL/Rental_Films.csv)\n\n| ID | Film | Genre | Rating | Summary | Price | Days | Stock |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n| 953 | WAIT CIDER | Animation | PG-13 | A Intrepid Epistle o | 0.99 | 3 | 4 |\n| 887 | THIEF PELICAN | Animation | PG-13 | A Touching Documenta | 4.99 | 5 | 4 |\n| 886 | THEORY MERMAID | Animation | PG-13 | A Fateful Yarn of a  | 0.99 | 5 | 4 |\n| 880 | TELEMARK HEARTBREAKE | Animation | PG-13 | A Action-Packed Pano | 2.99 | 6 | 4 |\n| 865 | SUNRISE LEAGUE | Animation | PG-13 | A Beautiful Epistle  | 4.99 | 3 | 4 |\n| 690 | POND SEATTLE | Animation | PG-13 | A Stunning Drama of  | 2.99 | 7 | 4 |\n| 651 | PACKER MADIGAN | Animation | PG-13 | A Epic Display of a  | 0.99 | 3 | 2 |\n| 583 | MISSION ZOOLANDER | Animation | PG-13 | A Intrepid Story of  | 4.99 | 3 | 3 |\n| 489 | JUGGLER HARDLY | Animation | PG-13 | A Epic Story of a Ma | 0.99 | 4 | 4 |\n| 464 | INTENTIONS EMPIRE | Animation | PG-13 | A Astounding Epistle | 2.99 | 3 | 4 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtomlin1%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvtomlin1%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtomlin1%2Fportfolio/lists"}