DV,Walmart, API Tests

This commit is contained in:
Norm Rasmussen
2022-11-07 10:36:13 -05:00
parent 45f1f32b3b
commit fce96a5ea6
7 changed files with 96 additions and 40 deletions

View File

@ -0,0 +1,24 @@
## 11/4/2022
### Conversation with Justine regarding Contract
* They are heavily funded by the Canandian Government
* FY is April - March
* Gov't was very forgiving during the pandemic
* This year, they are not funding any training _unless_ there is a mechanism for immedieate feedback
* HC also invested a lot of money on content creation, videographers, etc.
* As such, will not be renewing with Northpass.
* They need to convert all their stuff into man power, which is less profitable
* This is challenging their structure and profitability
* They need to prove to clients that within a year, they will reach their ROI for the training
* What's covered and what isn't by the Government:
* 20 people in training
* HC charges 12 hours of online training, for example
* The only way that is covered if the 20 people are together, watching together, providing feedback to each other.
* But that 12 hour could only be charged once. So it would have to be a 12 hour sitting.
* Then each 20 would have to book with the instructors for 1:1 coaching
* That would be a ton of hours per employee, a huge sunk cost
* How are they going to change their business model?
* 2k per head, minimum 10 people clients
* Break that 2k into small chunks and charge x * 10 or x*20 depending on the number of people

View File

@ -0,0 +1,14 @@
## 11/4/2022
### Analytics for Q4
* For individual activities:
* The Webhook Sheet, is good to go.
* For x center she needs # of courses started, # completed. Filtered MCA?
* In numbers not percentages
* Centers are Groups
* It is hard to pull by group because other people add nurses but don't put them into a specific group.
* She needs to add certain people into their group
* They have SSO, through Okta
* Ideally, she will have people in groups AND with their position
* And she needs this for every single group in the school.
* If someone isn't active, no need to pull them in.
* Her numbers are due in December. She did it manually for Q3. They send out the numbers in the first weeks of the new quarter.

View File

@ -11,52 +11,44 @@ const CARDS = [
name: "Northpass Admin", name: "Northpass Admin",
icon: "ri-admin-line", icon: "ri-admin-line",
link: "https://app.northpass.com/admin", link: "https://app.northpass.com/admin",
clipboard: false,
}, },
{ {
name: "Gmail", name: "Gmail",
icon: "ri-mail-line", icon: "ri-mail-line",
link: "https://gmail.com", link: "https://gmail.com",
clipboard: false,
}, },
{ {
name: "Calendar", name: "Calendar",
icon: "ri-calendar-line", icon: "ri-calendar-line",
link: "https://calendar.google.com", link: "https://calendar.google.com",
clipboard: false,
}, },
{ {
name: "Hubspot", name: "Hubspot",
icon: "ri-space-ship-line", icon: "ri-space-ship-line",
link: "https://app.hubspot.com/reports-dashboard/392014/view/8969543", link: "https://app.hubspot.com/reports-dashboard/392014/view/8969543",
clipboard: false,
}, },
{ {
name: "Jira - SE Board", name: "Jira - SE Board",
icon: "ri-open-arm-fill", icon: "ri-open-arm-fill",
link: "https://northpass.atlassian.net/jira/software/c/projects/ES/boards/1", link: "https://northpass.atlassian.net/jira/software/c/projects/ES/boards/1",
clipboard: false,
}, },
{ {
name: "Chili Piper - 30 Min", name: "Chili Piper - 30 Min",
icon: "ri-calendar-2-line", icon: "ri-calendar-2-line",
link: "https://northpass.na.chilipiper.com/book/me/norm-rasmussen", link: "https://northpass.na.chilipiper.com/book/me/norm-rasmussen",
cliprboad: true, clipboard: true,
}, },
{ {
name: "Looker - External", name: "Looker - External",
icon: "ri-bubble-chart-line", icon: "ri-bubble-chart-line",
link: "https://northpass.looker.com/folders/4976", link: "https://northpass.looker.com/folders/4976",
clipboard: false,
}, },
{ {
name: "Looker - Internal", name: "Looker - Internal",
icon: "ri-bubble-chart-fill", icon: "ri-bubble-chart-fill",
link: "https://northpasshq.looker.com/dashboards/21", link: "https://northpasshq.looker.com/dashboards/21",
clipboard: false,
}, },
]; ];
/* -------------------------------------------------------- */ /* -------------------------------------------------------- */
/******************/ /******************/

View File

@ -12,30 +12,21 @@
<title>root: ~#</title> <title>root: ~#</title>
<link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
rel="stylesheet"
/>
<link rel="stylesheet" href="./styles.css" /> <link rel="stylesheet" href="./styles.css" />
</head> </head>
<body> <body>
<header class="header"> <div class="container">
<div> <header class="header">
<h1>Hello, <span id="userName">Norm!</span>.</h1> <div>
<p>Today is <span id="currentDate">Monday 1, January 2000</span>.</p> <h1>Hello there, <span id="userName">John Doe</span>.</h1>
</div> <p>Today is <span id="currentDate">Monday 1, January 2000</span>.</p>
<p id="currentTime">00:00 PM</p> </div>
</header> <p id="currentTime">00:00 PM</p>
<main id="cardContainer"></main> </header>
<main id="cardContainer"></main>
</div>
<script src="./app.js"></script> <script src="./app.js"></script>
</body> </body>
</html> </html>
<script>
function copyHref(evt) {
if (currentCard.href == "https://northpass.na.chilipiper.com/book/me/norm-rasmussen") {
evt.preventDefault();
navigator.clipboard.writeText(currentCard.href)
}
};
</script>

View File

@ -1,15 +1,48 @@
import csv import csv
from Levenshtein import distance as lev from Levenshtein import distance as lev
import pandas as pd
import itertools
import sys import sys
x = lev("nrasmussen", "mrasmussen") peopleCsv = "/Users/normrasmussen/Downloads/TalkspaceAllLearners.csv"
print(x)
#def readSpreadsheet(): def readCsv(peopleCsv):
# with open('talkspace.csv', rb) as csvfile: people = []
# for line in csvfile.readlines(): readExport = pd.read_csv(
# array = line.split(',') peopleCsv,
# emailcol = array[3] usecols=['Learner Full Name', 'Email'],
skipinitialspace=True,
#index_col=True,
)
people.extend(readExport['Email'].tolist())
startCompare(peopleCsv, people, readExport)
#def compareemails(): # itertools combinations
# levenshtein.distance(email1, email2) def startCompare(peopleCsv, people, readExport):
email1 = []
email2 = []
for name1, name2, in itertools.combinations(people, 2):
#print(name1, name2) - prints all pairs, working so far.
distance = lev(name1, name2)
#print(distance) - successfully returns numbers
if distance > 0 and distance < 2:
email1.append(name1)
email2.append(name2)
writenewColumn(email1, email2, peopleCsv, readExport)
def writenewColumn(email1, email2, peopleCsv, readExport):
df = pd.DataFrame(readExport)
print(df)
df['Email1'] = pd.Series(email1)
df['Email2'] = pd.Series(email2)
df.drop_duplicates('Email1', inplace=True)
df.drop_duplicates('Email2', inplace=True)
df.drop_duplicates(
subset=['Email1', 'Email2'])
#keep = 'last').reset_index(drop=True)
writeLst = df.to_csv(
'/Users/normrasmussen/Downloads/TalkspaceDupes_singlechange.csv',
)
if __name__ == "__main__":
readCsv(peopleCsv)

View File

@ -40,9 +40,11 @@ def copytoDash(latestdownload, currentDash):
regex="Unname" regex="Unname"
),axis=1, ),axis=1,
inplace=True) inplace=True)
def progressFormat(latestdownload, currentDash, readExport):
df = pd.DataFrame(readExport)
readExport['Progress_replace'] = readExport['Progress'].str.replace('%','') readExport['Progress_replace'] = readExport['Progress'].str.replace('%','')
readExport['Progress_replace'] = pd.to_numeric(readExport['Progress_replace']) readExport['Progress_replace'] = pd.to_numeric(readExport['Progress_replace'])
copiedData = readExport.copy()
bringtoExcel(latestdownload, currentDash, copiedData) bringtoExcel(latestdownload, currentDash, copiedData)
#cleanitUp(latestdownload, currentDash, copiedData) #cleanitUp(latestdownload, currentDash, copiedData)