00:00:15.800 --> 00:00:20.010 Uh, it feels like everything is broken all the time.
00:00:21.230 --> 00:00:21.830 Umm.
00:00:22.890 --> 00:00:27.375 And obviously there's gonna be bugs, especially early on, you
00:00:27.375 --> 00:00:31.427 know, the the expectation is is not that everybody will
00:00:31.427 --> 00:00:36.202 absolutely completely test every aspect of absolutely everything.
00:00:36.202 --> 00:00:40.615 Anytime they make any change that's not realistic, nor is it
00:00:40.615 --> 00:00:44.884 expected, but it often feels like a lot of the things that
00:00:44.884 --> 00:00:49.370 are broken, especially early on in projects, is sort of like.
00:00:50.510 --> 00:00:53.904 Like a like a trickle down effect of changes that were made
00:00:53.904 --> 00:00:57.355 without sort of ensuring that they didn't have like a ripple
00:00:57.355 --> 00:00:58.940 effect, if that makes sense.
00:01:00.310 --> 00:01:03.686 And so, uh, that's sort of the main reason that I wanted to
00:01:03.686 --> 00:01:07.063 talk about this is especially early in projects when you're
00:01:07.063 --> 00:01:10.608 making any change, whether it's front end or back end, whether
00:01:10.608 --> 00:01:10.890 it's.
00:01:11.610 --> 00:01:13.860 A single line of code or a new feature.
00:01:14.860 --> 00:01:18.178 Before your pull request, before you make a PR, you should merge
00:01:18.178 --> 00:01:21.240 the latest from QA into your branches to number one to make
00:01:21.240 --> 00:01:24.405 sure there's no merge conflicts and stuff like that and #2 to
00:01:24.405 --> 00:01:27.263 make sure that anything else that has gone in since you
00:01:27.263 --> 00:01:30.122 started working doesn't accidentally break what you did
00:01:30.122 --> 00:01:30.990 or what they did.
00:01:32.200 --> 00:01:35.529 And once you've done that, just run through the basic pages of
00:01:35.529 --> 00:01:38.912 the site. So check the catalog, make sure that everything loads
00:01:38.912 --> 00:01:42.295 and looks correct, check product details, add something to your
00:01:42.295 --> 00:01:45.625 cart and make sure that it goes in correctly and looks correct
00:01:45.625 --> 00:01:48.955 on the cart page. Do a really quick run of checkout. You don't
00:01:48.955 --> 00:01:52.073 have to test every possible permutation of checkout unless
00:01:52.073 --> 00:01:55.403 you're making specifically check out customizations that would
00:01:55.403 --> 00:01:58.838 affect that, obviously, but but just kind of running through the
00:01:58.838 --> 00:02:01.270 whole thing and making sure that at least as.
00:02:02.020 --> 00:02:06.023 Up to date as you can get it, your changes haven't rippled out
00:02:06.023 --> 00:02:09.582 and caused like broken, you know, broken code somewhere
00:02:09.582 --> 00:02:09.900 else.
00:02:11.170 --> 00:02:14.624 And that is a that is a specially true. Like I said for
00:02:14.624 --> 00:02:15.180 for like.
00:02:15.820 --> 00:02:17.910 Projects that are kind of getting started early.
00:02:18.980 --> 00:02:22.482 Umm, because my as you know, my favorite phrase, death of 1000
00:02:22.482 --> 00:02:22.760 cuts.
00:02:23.470 --> 00:02:25.100 Uh, that's where it starts.
00:02:27.030 --> 00:02:30.507 If if you know if you think about it, most projects have 4
00:02:30.507 --> 00:02:34.161 developers give or take, and especially in the first month or
00:02:34.161 --> 00:02:36.990 so of development, there's like 10 PR's a week.
00:02:38.430 --> 00:02:41.778 Of from four different people going in and just adding up and
00:02:41.778 --> 00:02:45.018 slowly. You know, if every one of those PR's has one little
00:02:45.018 --> 00:02:48.312 thing that they break, and at the end of the month that's 40
00:02:48.312 --> 00:02:51.822 or 50 broken things that need to be fixed. Now, even if each one
00:02:51.822 --> 00:02:55.224 is just one little small thing, it's like, yeah, it's OK if it
00:02:55.224 --> 00:02:56.520 doesn't work right away.
00:02:57.180 --> 00:03:00.130 That's true, but if you know it doesn't work, just just fix it.
00:03:01.800 --> 00:03:02.310 So.
00:03:04.380 --> 00:03:07.335 So that's the kind of thing we want to avoid. Is is getting to
00:03:07.335 --> 00:03:09.962 a point where a month into a project and there's just a
00:03:09.962 --> 00:03:12.636 million little tiny things that we know are broken, that
00:03:12.636 --> 00:03:14.090 somebody's gonna have to go in.
00:03:14.770 --> 00:03:18.660 And fix or it kind of accumulates to the point.
00:03:19.280 --> 00:03:22.197 Uh accumulated to the point where little things aren't
00:03:22.197 --> 00:03:25.433 working anymore, like whole features are broken. We can't go
00:03:25.433 --> 00:03:26.760 through checkout because.
00:03:27.480 --> 00:03:29.917 You know this small customization and this small
00:03:29.917 --> 00:03:32.951 customization had the perfect storm to make. I don't know if
00:03:32.951 --> 00:03:35.240 the shipping calculations break or something.
00:03:36.050 --> 00:03:40.074 Umm, so that's the kind of thing we want to avoid. So generally
00:03:40.074 --> 00:03:43.846 speaking, before your PR pull the latest from the QA branch
00:03:43.846 --> 00:03:47.808 into your branch and just run a really quick smoke test on the
00:03:47.808 --> 00:03:49.820 basic functionality of the site.
00:03:50.610 --> 00:03:52.420 Umm and.
00:03:53.860 --> 00:03:58.683 Umm, in terms of another kind of similar note to this is for like
00:03:58.683 --> 00:04:02.775 early styling work. This is something that I noticed on
00:04:02.775 --> 00:04:04.310 almost every project.
00:04:06.400 --> 00:04:07.910 And I know that.
00:04:08.990 --> 00:04:12.193 There's a lot of there's a lot of different opinions on how
00:04:12.193 --> 00:04:15.077 markup is supposed to be integrated. I don't know the
00:04:15.077 --> 00:04:18.441 right way, so all I know is it always looks broken for a while
00:04:18.441 --> 00:04:20.470 and never looks right the first time.
00:04:21.260 --> 00:04:23.370 And so, uh.
00:04:24.750 --> 00:04:29.088 My my personal opinion on that and anybody can tell me I'm
00:04:29.088 --> 00:04:32.250 completely wrong or something if I am but.
00:04:33.200 --> 00:04:37.536 My my general opinion on that is if you are integrating markup
00:04:37.536 --> 00:04:41.460 and you go and look at the catalog and every button is a
00:04:41.460 --> 00:04:45.934 different size and the fonts all screwed up and every page looks
00:04:45.934 --> 00:04:49.858 out of whack, you have not correctly into integrated the
00:04:49.858 --> 00:04:50.340 markup.
00:04:50.980 --> 00:04:53.160 It's not done correctly if it looks like crap.
00:04:54.310 --> 00:04:55.850 That's sort of the bottom line.
00:04:56.430 --> 00:05:00.523 Umm. And obviously we can't read all the CSS and and like HTML
00:05:00.523 --> 00:05:04.617 changes that are being brought in for these market integration
00:05:04.617 --> 00:05:08.515 PR. So we can't possibly see when reviewing the PR that the
00:05:08.515 --> 00:05:10.920 site does or doesn't look like crap.
00:05:11.970 --> 00:05:13.010 Uh, so?
00:05:14.140 --> 00:05:17.256 Basically, when you're making styling changes, same deal, just
00:05:17.256 --> 00:05:20.323 click through every page of the site. If it looks broken, fix
00:05:20.323 --> 00:05:23.489 it, and if you're not sure how to fix it or you're nervous that
00:05:23.489 --> 00:05:26.260 you may have done something incorrectly with the market
00:05:26.260 --> 00:05:28.140 integration, just reach out for help.
00:05:29.680 --> 00:05:33.180 At some point I'm gonna have to learn to do this markup
00:05:33.180 --> 00:05:36.931 integration so I can also help and maybe make the process a
00:05:36.931 --> 00:05:40.744 little bit easier, but until that point, just request office
00:05:40.744 --> 00:05:41.620 hours I think.
00:05:43.170 --> 00:05:46.320 I think James uh James might know some about it, or at least
00:05:46.320 --> 00:05:48.800 she knows the general process better than I do.
00:05:50.170 --> 00:05:52.741 Jesse, I know it was the process. Uh, David, I think
00:05:52.741 --> 00:05:53.760 might be aware of it.
00:05:54.450 --> 00:05:55.430 Umm but.
00:05:55.610 --> 00:05:58.618 Umm. If you're not sure if you think you might have done it
00:05:58.618 --> 00:06:01.927 wrong, or if you do it following a guide or something in the site
00:06:01.927 --> 00:06:03.030 looks all not a whack.
00:06:04.320 --> 00:06:08.652 Don't PR it just because you followed the guide and looks
00:06:08.652 --> 00:06:13.432 bad. And that's just what it is. We you know it would. It's. It
00:06:13.432 --> 00:06:16.270 always saves time to just fix it now.
00:06:17.010 --> 00:06:20.048 Instead of PR ring it in the whatever broken state it's in,
00:06:20.048 --> 00:06:23.087 and then and then thinking like I will clean up the styling
00:06:23.087 --> 00:06:24.100 later because again.
00:06:24.860 --> 00:06:27.697 That of 1000 cuts. It just adds on to that pile of things we
00:06:27.697 --> 00:06:28.720 have to fix later and.
00:06:29.600 --> 00:06:31.990 That always ends up causing a lot of churn, so.
00:06:35.170 --> 00:06:36.800 That's a.
00:06:38.030 --> 00:06:38.930 That's it, I think.
00:06:41.140 --> 00:06:43.400 Any questions?
00:06:45.960 --> 00:06:46.550 Yeah, what's up?
00:06:48.960 --> 00:06:52.696 Uh, is there ever or I guess I should say, when you're
00:06:52.696 --> 00:06:56.976 developing, do you ever run the tests out of the test Explorer
00:06:56.976 --> 00:07:00.848 before creating the PR, or are they specifically for the
00:07:00.848 --> 00:07:03.770 analyzers that run FD makeup pull request?
00:07:05.520 --> 00:07:09.095 There are scenarios where I run them. It's fairly rare. The
00:07:09.095 --> 00:07:12.433 number the, the the to two primary places that I'll run
00:07:12.433 --> 00:07:15.890 them. Number one is if I make new schema like I add a new
00:07:15.890 --> 00:07:19.406 table. If I'm just changing a property on existing table I
00:07:19.406 --> 00:07:22.862 don't worry about it. But if I add new tables in a schema
00:07:22.862 --> 00:07:23.280 change.
00:07:24.190 --> 00:07:26.451 Then I run the unit test that get generated for those new
00:07:26.451 --> 00:07:28.868 tables to make sure that they'll pass whenever it goes to the
00:07:28.868 --> 00:07:31.325 analyzer and I didn't screw up the mock data or something like
00:07:31.325 --> 00:07:31.520 that.
00:07:32.000 --> 00:07:37.149 Umm, so that's a really good one for backhanders. And then if I
00:07:37.149 --> 00:07:42.217 override like a create async or update async one of those like
00:07:42.217 --> 00:07:42.620 core.
00:07:43.090 --> 00:07:46.755 Umm crud methods in the workflows. I'll usually go run
00:07:46.755 --> 00:07:50.420 the the unit test at that point and see if I broke it.
00:07:53.240 --> 00:07:56.460 Because you know better to find out before you push it up and
00:07:56.460 --> 00:07:59.524 let the analyzer run for 40 minutes and then find out it's
00:07:59.524 --> 00:08:02.744 broken, it's better just run it locally real quick because it
00:08:02.744 --> 00:08:05.964 takes like 2030 seconds to run the unit test. So, but that'll
00:08:05.964 --> 00:08:08.250 at least that'll save you some time on the.
00:08:10.120 --> 00:08:12.870 On the PR to just fix it real quick before you make the PR so.
00:08:14.080 --> 00:08:17.523 But outside of that I I don't typically run them outside of
00:08:17.523 --> 00:08:21.138 those sort of targeted scenarios and I don't recommend running
00:08:21.138 --> 00:08:23.090 every single one of them because.
00:08:24.000 --> 00:08:26.940 There's like 5000 of them and it takes.
00:08:27.980 --> 00:08:31.654 It takes a real long time to run them all on your local it we
00:08:31.654 --> 00:08:35.268 have it taking 2030 minutes on the build machines and that's
00:08:35.268 --> 00:08:38.942 because we farm right across 10 different servers to run them
00:08:38.942 --> 00:08:41.550 all and it still takes 20 or 30 minutes so.
00:08:43.310 --> 00:08:46.917 If you're gonna run them on your local, make sure you kind of
00:08:46.917 --> 00:08:49.420 target them to whatever you're change was.
00:08:50.960 --> 00:08:54.416 Unless you want to just sit and stare at your screen for like 6
00:08:54.416 --> 00:08:54.740 hours.
00:08:56.090 --> 00:09:00.153 But I think a better and just the kind of testing that we're
00:09:00.153 --> 00:09:04.150 talking about, honestly, it's just kind of a manual test to
00:09:03.090 --> 00:09:03.590 Yes.
00:09:04.150 --> 00:09:07.813 make sure that the site is functional. And I know some
00:09:07.813 --> 00:09:11.810 people put screenshots, but thoughts on, I mean thoughts on
00:09:11.810 --> 00:09:15.940 just sort of screen shouting, showing proof that you know the
00:09:15.940 --> 00:09:19.537 functionality that you added worked. Anybody have any
00:09:19.537 --> 00:09:20.670 thoughts on that?
00:09:21.940 --> 00:09:26.070 Yeah, I think I think part of the challenge is.
00:09:26.880 --> 00:09:29.459 I think people are are completing the work that's
00:09:29.459 --> 00:09:32.555 assigned at least most of the time the the the PR's are are
00:09:32.555 --> 00:09:35.806 resolving whatever task is at hand. The the main issue we have
00:09:35.806 --> 00:09:37.870 is the sort of ripple out effect where.
00:09:38.510 --> 00:09:41.040 It breaks other things down the line.
00:09:42.300 --> 00:09:43.360 And that's the part that.
00:09:45.190 --> 00:09:49.075 I guess it's probably too much to ask people to put a
00:09:49.075 --> 00:09:53.320 screenshot of every page on the site on their PR. Uh, but.
00:09:55.620 --> 00:09:57.610 That would be cool. Somebody did that.
00:09:56.610 --> 00:10:00.648 Well, if you well if you can, if you generally speaking, there's
00:10:00.648 --> 00:10:04.625 gonna be exceptions to this, but generally speaking you have to
00:10:04.625 --> 00:10:08.664 get A to get a a sales order to show up on the user dashboard to
00:10:08.664 --> 00:10:11.460 brand new one you need to complete checkout.
00:10:12.600 --> 00:10:15.348 And to complete check out you need to add a product to the
00:10:15.348 --> 00:10:18.097 cart and add a product to the cart. You need to be able to
00:10:18.097 --> 00:10:20.613 view the catalog, the product details, page, catalog,
00:10:20.613 --> 00:10:23.222 whatever. So I mean you could also just do it that way.
00:10:23.170 --> 00:10:23.590 Yes.
00:10:23.222 --> 00:10:25.877 Obviously people could fake that. But I mean, what's the
00:10:25.877 --> 00:10:28.440 point of doing that if you're you might as well do it?
00:10:29.020 --> 00:10:29.270 Yeah.
00:10:30.000 --> 00:10:30.430 So.
00:10:32.510 --> 00:10:33.370 So yeah.
00:10:34.190 --> 00:10:38.733 I what I will say is and if I I'll try to catch this for
00:10:38.733 --> 00:10:43.356 future projects in PR's, if I see a PR going in that does
00:10:43.356 --> 00:10:48.218 markup integration, I'm number one, I'm just gonna hope that
00:10:48.218 --> 00:10:50.610 everybody here remembers this.
00:10:51.810 --> 00:10:55.412 And also that I remember it, but please just put screenshots of
00:10:55.412 --> 00:10:58.733 like product details and the catalog and the CART page and
00:10:58.733 --> 00:11:02.335 just like you don't have to get every step of checkout but just
00:11:02.335 --> 00:11:05.769 kind of a general screenshot of to check out UI on the first
00:11:05.769 --> 00:11:09.146 step or something and put that in the PR description and if
00:11:09.146 --> 00:11:12.692 it's not there I'm going to put a comment on the PR asking you
00:11:12.692 --> 00:11:14.100 to get those screenshots.
00:11:15.520 --> 00:11:20.150 Because I think that that will kind of put the onus on.
00:11:20.970 --> 00:11:25.091 Whoever's doing that markup integration to ensure or at
00:11:25.091 --> 00:11:28.330 least demonstrate that it's done correctly.
00:11:30.690 --> 00:11:33.734 And I think that we sort of have a tendency to think like, well,
00:11:33.734 --> 00:11:36.544 we don't wanna throw away the work that's already been done
00:11:36.544 --> 00:11:39.307 because it's time that's been spent. But at the end of the
00:11:39.307 --> 00:11:42.211 day, we always end up spending more time fixing it later than
00:11:42.211 --> 00:11:43.850 doing it right the first time. So.
00:11:44.330 --> 00:11:44.780 Umm.
00:11:46.830 --> 00:11:48.110 So yeah.
00:11:50.710 --> 00:11:51.400 What's up, Greg?
00:11:52.480 --> 00:11:56.308 I so I'm kind of what I'm hearing is is if we're making a,
00:11:56.308 --> 00:12:00.396 let's say we're making a smaller feature, we need to select or
00:12:00.396 --> 00:12:03.900 identify the larger feature. This is going to affect.
00:12:04.660 --> 00:12:08.691 And fully test the larger feature with our new changes in
00:12:08.691 --> 00:12:12.792 there. So let's say we change the structure of a user that
00:12:12.792 --> 00:12:15.990 could potentially change a the login process.
00:12:16.200 --> 00:12:18.870 Umm and registration and yeah.
00:12:17.120 --> 00:12:20.866 So we need and registration all that, so we need to identify the
00:12:20.866 --> 00:12:22.480 larger features of the site.
00:12:23.200 --> 00:12:26.681 That our changes could affect and then test those larger
00:12:26.681 --> 00:12:28.880 features with the changes in place.
00:12:29.530 --> 00:12:33.520 Correct. That is and not only. So the way that I would word it
00:12:30.610 --> 00:12:30.920 Yeah.
00:12:33.520 --> 00:12:37.574 is identify immediate impact of your code changes and test that
00:12:37.574 --> 00:12:41.248 part thoroughly. Everything else just at least give it an
00:12:41.248 --> 00:12:44.795 eyeball. So if you change the structure of a user, then
00:12:44.795 --> 00:12:48.532 obviously you want to go and make sure you're registration
00:12:48.532 --> 00:12:52.586 stuff still works. Make sure you can log in, log out, make sure
00:12:52.586 --> 00:12:54.360 the admin user editor works.
00:12:56.860 --> 00:13:00.377 At least as well as it did before the PR, because sometimes
00:13:00.377 --> 00:13:03.953 that one gets a little weird. UM, but but then, even outside
00:13:03.953 --> 00:13:07.353 of that, once you've finished your changes and again pull
00:13:07.353 --> 00:13:10.812 latests from QA and to your branch before any of this. But
00:13:10.812 --> 00:13:14.447 once you've completed kind of the thorough testing around the
00:13:14.447 --> 00:13:16.030 feature you're changing or.
00:13:16.440 --> 00:13:19.090 No, the the features that you're change touches.
00:13:20.710 --> 00:13:24.309 Then just do a quick once over on the the site itself again,
00:13:24.309 --> 00:13:27.790 just quick visual check that the catalog is functional and
00:13:27.790 --> 00:13:31.271 doesn't look screwed up and it doesn't break and not load.
00:13:31.271 --> 00:13:35.106 Check product details check cart check, check out. That's really
00:13:35.106 --> 00:13:38.470 the main four things that I want people to look at more.
00:13:40.550 --> 00:13:44.527 Because those are the four main things that a human being using
00:13:44.527 --> 00:13:46.640 a website, it's gonna look at so.
00:13:48.140 --> 00:13:52.127 And I think an underrated thing that Brendan just said that I I
00:13:52.127 --> 00:13:55.928 don't want us to lose sight of here is pulling latest before
00:13:55.928 --> 00:13:59.916 you push up your code and create a pull request, right? I mean,
00:13:59.916 --> 00:14:03.530 there's gonna be times where if you're on three different
00:14:03.530 --> 00:14:06.770 projects, you start, you know, project A on Monday.
00:14:07.710 --> 00:14:11.527 And let's say you end up getting blocked or, you know, whatever
00:14:11.527 --> 00:14:15.106 happens, you don't finish that and then you work on Project
00:14:15.106 --> 00:14:18.745 B&C for the rest of the week. And then on Friday you get
00:14:18.745 --> 00:14:22.502 unblocked. You come back to a, you finish that. There may have
00:14:22.502 --> 00:14:26.320 been three PR's in between the time that you, you know, created
00:14:26.320 --> 00:14:29.958 this new branch and are now looking to PR this work. I mean,
00:14:29.958 --> 00:14:33.120 you have to pull the latest before you push that up.
00:14:31.050 --> 00:14:35.304 Yep. Yep. Especially early on in projects when the PR density is
00:14:35.304 --> 00:14:39.036 high, there's no telling how many things might have been
00:14:39.036 --> 00:14:42.963 changed that would break your code or that would cause your
00:14:42.963 --> 00:14:47.087 code to break somebody else's changes. And obviously we try to
00:14:47.087 --> 00:14:47.480 avoid.
00:14:48.550 --> 00:14:53.198 That scenario, as much as we can by assigning relevant work to
00:14:53.198 --> 00:14:57.919 the same person, but you can't always can't always get that one
00:14:57.919 --> 00:14:58.510 to work.
00:14:58.990 --> 00:15:02.664 Umm. Especially for larger features or stuff that's like
00:15:02.664 --> 00:15:04.470 common sort of core changes.
00:15:07.150 --> 00:15:07.560 So.
00:15:08.890 --> 00:15:12.780 How also say one thing too, just for PR, because I run into this
00:15:12.780 --> 00:15:16.251 like if you create a PR and it's working and then you get
00:15:16.251 --> 00:15:20.021 comments from Brandon or James or someone you know, test those
00:15:20.021 --> 00:15:23.671 changes. Don't just make the changes and then send them back
00:15:22.900 --> 00:15:23.460 Correct.
00:15:23.671 --> 00:15:24.270 on the PR.
00:15:24.200 --> 00:15:27.970 Yes, 100%. We are not always exactly correct.
00:15:28.690 --> 00:15:29.060 Right.
00:15:29.370 --> 00:15:31.230 We we generally review.
00:15:33.000 --> 00:15:38.150 For what I call sanity and and technological things.
00:15:39.510 --> 00:15:40.090 So.
00:15:40.790 --> 00:15:44.712 We'll check to make sure that there's not something that we
00:15:44.712 --> 00:15:48.700 notice that might either like definitely break something or.
00:15:49.220 --> 00:15:51.782 Uh, or, you know, not work the way that somebody thinks it
00:15:51.782 --> 00:15:54.474 does, and it might work for the specific scenario, but it'll,
00:15:54.474 --> 00:15:55.560 you know, whatever it is.
00:15:56.220 --> 00:15:59.527 And then we also check, like I said, for sanity for for code
00:15:59.527 --> 00:16:02.400 type stuff and then for technical stuff like missing
00:16:02.400 --> 00:16:05.870 configure weights and back end code or like hey this works, but
00:16:05.870 --> 00:16:09.069 you're making a bajillion network calls for it. Let's tone
00:16:09.069 --> 00:16:10.370 that down kind of thing.
00:16:12.130 --> 00:16:14.080 And so that being said.
00:16:15.820 --> 00:16:19.205 Most of the time, when reviewing this, at least the way I do it,
00:16:19.205 --> 00:16:22.225 I'm just looking at the Azure Dev viewer in the in the PR
00:16:22.225 --> 00:16:22.590 screen.
00:16:23.310 --> 00:16:24.050 And so.
00:16:25.080 --> 00:16:28.430 I might not always be correct in what I tell you to change.
00:16:29.280 --> 00:16:30.560 And if I'm not?
00:16:31.430 --> 00:16:33.000 Feel free to tell me I'm wrong.
00:16:34.680 --> 00:16:38.461 I I would rather you tell me I'm wrong than just accept whatever
00:16:38.461 --> 00:16:41.893 I'm saying is, as you know, the absolute truth and then PR
00:16:41.893 --> 00:16:43.290 something that's broken.
00:16:45.120 --> 00:16:45.520 So.
00:16:48.580 --> 00:16:49.140 Yeah.
00:16:51.070 --> 00:16:54.930 That's a that's a great point. Another thing I I briefly
00:16:54.930 --> 00:16:57.910 mentioned a moment ago, but that I want to.
00:16:59.210 --> 00:17:02.664 Make sure everybody keeps at the forefront of their mind all the
00:17:02.664 --> 00:17:02.930 time.
00:17:04.040 --> 00:17:06.590 It's two things, #1.
00:17:07.500 --> 00:17:11.449 We're just making websites, so any general guidance you learn
00:17:11.449 --> 00:17:15.080 from anywhere about making websites applies in terms of.
00:17:16.090 --> 00:17:18.480 You know site performance and.
00:17:19.290 --> 00:17:23.224 Uh security of information and just basic stuff like that is
00:17:23.224 --> 00:17:27.093 you know, yes, we use our own internal framework for things
00:17:27.093 --> 00:17:31.156 and we have a lot of internal code. But at the end of the day,
00:17:31.156 --> 00:17:34.832 we're making websites, just websites, it's not, it's not
00:17:34.832 --> 00:17:35.800 anything crazy.
00:17:37.300 --> 00:17:38.390 And then the other thing is.
00:17:39.720 --> 00:17:43.550 Turns out the websites that we make are used by humans.
00:17:44.150 --> 00:17:44.890 Who would have thought?
00:17:46.380 --> 00:17:46.940 So.
00:17:48.150 --> 00:17:52.178 That's the the other thing to keep in mind is, uh, remember
00:17:52.178 --> 00:17:56.005 that a human being has to be able to use this website, a
00:17:56.005 --> 00:17:59.430 normal human being. So if there's things that are.
00:18:00.300 --> 00:18:03.467 You know, weird, goofy, et cetera. Then you know, probably
00:18:03.467 --> 00:18:06.956 call that out as like, hey, this makes no sense or whatever. And
00:18:06.956 --> 00:18:10.445 obviously sometimes that's just what the client wants and that's
00:18:10.445 --> 00:18:13.719 fine. But it could also just be like a missed edge case that
00:18:13.719 --> 00:18:14.900 needs to be discussed.
00:18:15.640 --> 00:18:19.645 And then on top of that, keeping in mind on the kind of opposite
00:18:19.645 --> 00:18:23.465 side of that token that there's very basic stuff that Seth is
00:18:23.465 --> 00:18:24.390 supposed to do.
00:18:25.200 --> 00:18:28.355 And sometimes you have to turn off the developer part of your
00:18:28.355 --> 00:18:31.560 brain and just go do that thing and see if it still works. You
00:18:31.560 --> 00:18:34.613 know, click on the website and just click buttons like your
00:18:34.613 --> 00:18:36.700 user who has no idea what anything does.
00:18:37.950 --> 00:18:42.014 And if something explodes as a result of the changes you made,
00:18:42.014 --> 00:18:43.820 then that needs to be fixed.
00:18:56.150 --> 00:18:59.904 When you mentioned testing the styling for different pages in
00:18:59.904 --> 00:19:03.355 the UI, are we also like at the same time supposed to be
00:19:03.355 --> 00:19:07.170 checking the mobile view along with the desktop view? And then
00:19:07.170 --> 00:19:09.350 what tool do you use to check that?
00:19:10.000 --> 00:19:14.043 I would love it if people did and I will show you how to test
00:19:14.043 --> 00:19:15.870 that and at least in Chrome.
00:19:16.970 --> 00:19:20.197 Uh, let's just go to like, let's do PCs. That's something we're
00:19:20.197 --> 00:19:23.323 just looking at that a minute ago. We'll load up the catalog,
00:19:23.323 --> 00:19:25.340 never mind. It redirected me back home.
00:19:27.810 --> 00:19:31.400 OK. Well, never mind. Let's go look at develop.
00:19:34.020 --> 00:19:37.560 PCs needs some surgery. OK, uh, share my screen.
00:19:39.100 --> 00:19:42.440 So the process for reviewing.
00:19:43.210 --> 00:19:43.850 Umm.
00:19:44.850 --> 00:19:48.817 Styling in the mobile view. In Chrome, open your dev tools and
00:19:48.817 --> 00:19:52.280 then there's this little toggle device toolbar button.
00:19:53.260 --> 00:19:56.839 Click on that and then you can scale this down to mobile width
00:19:56.839 --> 00:20:00.589 and now it's phone size. You can kind of drag the bottom up to be
00:20:00.589 --> 00:20:03.884 more phone sized and you can even use the you know rather
00:20:03.884 --> 00:20:07.179 than scrolling with your mouse you can click as if you're
00:20:07.179 --> 00:20:08.770 actually tapping the screen.
00:20:09.680 --> 00:20:13.761 And expand stuff and whatnot and make sure that it all works the
00:20:13.761 --> 00:20:15.080 way you expect it to.
00:20:17.050 --> 00:20:19.810 Or use the drop down to select a specific device.
00:20:20.130 --> 00:20:22.851 Yep, you can do different devices with this drop down up
00:20:22.851 --> 00:20:23.090 here.
00:20:25.250 --> 00:20:28.582 But generally what I find is that bootstrap uses pretty
00:20:28.582 --> 00:20:30.130 standard breakpoint sizes.
00:20:30.460 --> 00:20:33.089 Umm. And so, as long as you're within those break points, as
00:20:33.089 --> 00:20:35.632 you'll see at some point, there's like, I think that's the
00:20:35.632 --> 00:20:36.150 medium size.
00:20:37.690 --> 00:20:41.824 Umm. Kind of breaks into two and then there's large, which is
00:20:41.824 --> 00:20:46.025 basically like a like a tablet, iPad kind of size and then any
00:20:46.025 --> 00:20:50.026 wiring that you start getting into just like full size like
00:20:50.026 --> 00:20:52.560 web browsers and desktop screens. So.
00:20:54.030 --> 00:20:57.182 But yeah, you can change that width in here which I I do
00:20:57.182 --> 00:20:58.510 recommend doing because.
00:21:00.660 --> 00:21:03.632 Well, if you're if you're making like front end styling changes,
00:21:03.632 --> 00:21:06.558 if you're, if you're a back end or testing an endpoint you just
00:21:06.558 --> 00:21:08.570 made for like product details or something.
00:21:09.340 --> 00:21:12.671 You don't have to spend the time to go in here and check mobile
00:21:12.671 --> 00:21:15.794 view of every page and whatnot. Just validate that the page
00:21:15.794 --> 00:21:19.073 functionality is there and just the normal you know. Let's say
00:21:19.073 --> 00:21:21.520 that I made some change to calculating prices.
00:21:22.210 --> 00:21:24.800 I'm gonna load up the site real quick and I'm gonna go.
00:21:25.710 --> 00:21:29.102 Uh, view all this and see that none of these say -, 1 or some
00:21:29.102 --> 00:21:32.386 broken dollar amount for all of these? Fantastic. I'm gonna
00:21:32.386 --> 00:21:35.779 click on the iPhone and look at the product details page. The
00:21:35.779 --> 00:21:38.952 price is correct here. That's great. I'll find one that's
00:21:38.952 --> 00:21:41.470 actually in stock so I can add it to my cart.
00:21:43.140 --> 00:21:46.211 And I'll add it to my cart and I'll view my cart and this looks
00:21:46.211 --> 00:21:49.186 good. The price is correct here. Everything looks fine. Go to
00:21:49.186 --> 00:21:52.161 checkout, price is correct. I probably if I were testing some
00:21:52.161 --> 00:21:55.088 like a pricing change, I'd go all the way through, check out
00:21:55.088 --> 00:21:58.063 and make sure that the order generates with the correct total
00:21:58.063 --> 00:22:01.086 and all that stuff. We're not gonna do all that right now, but
00:22:01.086 --> 00:22:01.950 you get the point.
00:22:02.450 --> 00:22:07.000 Umm. So yeah great question.
00:22:09.080 --> 00:22:12.023 I'm guessing most front Enders probably knew that you could do
00:22:12.023 --> 00:22:14.920 that, but this might be new for a lot of back end developers.
00:22:16.100 --> 00:22:17.770 Which I think it's really neat. It's really cool.
00:22:16.530 --> 00:22:16.860 Yeah.
00:22:18.450 --> 00:22:22.189 I have used that before but I was not quite sure how accurate
00:22:22.189 --> 00:22:25.687 it was like representing an actual what the page is gonna
00:22:25.687 --> 00:22:28.220 look like on a phone or tablet if it was.
00:22:27.950 --> 00:22:32.099 Yeah. I mean, in terms of in terms of the way any given phone
00:22:29.230 --> 00:22:29.490 But.
00:22:32.099 --> 00:22:36.516 chooses to render content in its browser, I mean, there's only so
00:22:36.516 --> 00:22:38.390 much we can do to test that.
00:22:39.750 --> 00:22:44.655 And it's not really worth getting too into the weeds for
00:22:44.655 --> 00:22:50.248 it all we really wanna make sure is that our CSS and the general
00:22:50.248 --> 00:22:55.669 content of the page doesn't get squashed or poorly represented
00:22:55.669 --> 00:22:56.960 at mobile size.
00:22:58.850 --> 00:23:01.931 We, like I said, we're not really gonna worry too much
00:23:01.931 --> 00:23:05.404 about, like, how's a Samsung versus an apple gonna render all
00:23:05.404 --> 00:23:08.709 this? Unless a client really wants us to get into that for
00:23:08.709 --> 00:23:11.733 our internal checking and testing of things, all that
00:23:11.733 --> 00:23:15.038 really matters is squash this down to, like, phone size on
00:23:15.038 --> 00:23:18.119 your computer screen and validate that it doesn't look
00:23:18.119 --> 00:23:19.520 like crap. And that's it.
00:23:28.080 --> 00:23:32.761 Is there any way to to see what the content would look like in
00:23:32.761 --> 00:23:34.470 Safari on a Windows PC?
00:23:35.500 --> 00:23:38.979 Not that I'm aware of, but somebody can probably tell me
00:23:38.979 --> 00:23:39.590 I'm wrong.
00:23:41.570 --> 00:23:43.570 There are different browsers.
00:23:42.190 --> 00:23:43.780 I think there's paid services.
00:23:47.540 --> 00:23:48.350 So for Jesse.
00:23:48.790 --> 00:23:51.495 I was just gonna say they're paid services, but that's all I
00:23:51.495 --> 00:23:51.850 know of.
00:23:52.450 --> 00:23:55.250 Uh, yeah, I think we used to have one of those services.
00:23:55.380 --> 00:23:58.430 Umm, I don't believe we do anymore, but.
00:24:00.970 --> 00:24:05.189 Uh, yeah, I know that. That was the thing that we were like, we
00:24:03.320 --> 00:24:03.640 OK.
00:24:05.189 --> 00:24:05.980 had to have.
00:24:07.260 --> 00:24:09.850 Folks with Apple devices testing things for us.
00:24:11.820 --> 00:24:13.660 To resolve a couple of core bugs.
00:24:16.090 --> 00:24:20.366 So at the moment. Yeah. Yeah, yeah. At the moment, I think if
00:24:17.740 --> 00:24:19.290 OK. I was just curious.
00:24:20.366 --> 00:24:22.160 you come across something.
00:24:23.660 --> 00:24:27.149 Again, I'm. I'm not too concerned about about making
00:24:27.149 --> 00:24:29.520 sure that every every front end PR.
00:24:30.300 --> 00:24:33.063 Is perfectly functional across every browser you can imagine. I
00:24:33.063 --> 00:24:35.696 really just want to make sure people are looking at the site
00:24:35.696 --> 00:24:38.372 in general, going through each of the major pages and kind of
00:24:38.372 --> 00:24:39.970 validating that their stuff is good.
00:24:40.780 --> 00:24:44.510 Umm, uh. But if we get a client that.
00:24:45.730 --> 00:24:48.872 Yeah, I would say probably the best way to do this is if we get
00:24:48.872 --> 00:24:51.768 a client that has issues with Safari or just preproduction
00:24:51.768 --> 00:24:54.371 push. If if somebody you know wants to set up like a
00:24:54.371 --> 00:24:57.611 preproduction site, which is our pretty standard practice for us,
00:24:57.611 --> 00:25:00.655 or if we just have a staging site and we know that go live as
00:25:00.655 --> 00:25:03.797 a week or two out, that might be a good time to post in general
00:25:03.797 --> 00:25:06.841 and say, hey, anybody with an Apple device, can you just send
00:25:06.841 --> 00:25:10.081 a check, visit this website real quick, click around a little bit
00:25:10.081 --> 00:25:11.800 and tell me if anything is broken?
00:25:13.940 --> 00:25:18.241 I believe we have the safari issues sorted out in core, so
00:25:18.241 --> 00:25:22.177 basic set of functionality should not be a problem in
00:25:22.177 --> 00:25:26.260 Safari and generally speaking Safari also just renders.
00:25:27.710 --> 00:25:31.196 What page is like any other browser? It's not chromium base
00:25:31.196 --> 00:25:34.799 that I know of, but at the very least I mean it's it's a HTML
00:25:34.799 --> 00:25:38.459 and CSS and JavaScript it's it's pretty standard so outside of
00:25:38.459 --> 00:25:42.062 that sort of edge Casey stuff that should be fixed now. There
00:25:42.062 --> 00:25:45.490 shouldn't really be anything where it's like, uh, the site
00:25:45.490 --> 00:25:49.034 stylistically or, you know, visually looks fine in Chrome on
00:25:49.034 --> 00:25:52.695 a desktop but looks malformed or broken in safari unless we're
00:25:52.695 --> 00:25:56.356 doing weird stuff with our CSS, we shouldn't really be running
00:25:56.356 --> 00:25:57.460 into that too much.
00:26:07.470 --> 00:26:10.976 Yeah, it's Safari is not a chromium based, it's it's
00:26:10.976 --> 00:26:11.440 Webkit.
00:26:12.540 --> 00:26:13.180 Yeah.
00:26:13.690 --> 00:26:18.596 Chromium used a fork of Webkit originally, so it's slightly
00:26:18.170 --> 00:26:18.430 Ah.
00:26:18.596 --> 00:26:19.250 similar.
00:26:20.060 --> 00:26:23.199 Neat. I didn't know that. Also, Jesse, you are. Your voice is
00:26:21.240 --> 00:26:22.760 Yes, it's it's.
00:26:23.199 --> 00:26:24.060 very, very quiet.
00:26:24.310 --> 00:26:25.410 Oh, is that any better?
00:26:25.990 --> 00:26:26.670 It's all better.
00:26:27.190 --> 00:26:31.570 Yeah, it's more similar to chromium than it is to gecko.
00:26:33.200 --> 00:26:33.570 Neat.
00:26:34.860 --> 00:26:36.220 And learn something new every day.
00:26:35.010 --> 00:26:36.120 Get goes Firefox.
00:26:39.470 --> 00:26:43.713 See front end developers, they know more stuff about this than
00:26:43.713 --> 00:26:44.050 I do.
00:26:45.850 --> 00:26:47.460 That is awesome.
00:26:48.120 --> 00:26:49.020 That's not true.
00:26:50.610 --> 00:26:52.800 Well, does anybody have any?
00:26:53.160 --> 00:26:54.700 Uh, any other?
00:26:55.760 --> 00:26:57.370 Uh. Questions or thoughts?
00:26:58.440 --> 00:27:02.603 And just, uh, just uh a warning. A pre warning to everybody who's
00:27:02.603 --> 00:27:06.261 currently listening. Uh. If there are no other questions,
00:27:06.261 --> 00:27:09.982 I'm gonna start calling on people. To recap what we talked
00:27:09.982 --> 00:27:13.830 about, just to make sure that everyone was paying attention.
00:27:15.210 --> 00:27:16.380 Let me pull up the transcript.
00:27:17.480 --> 00:27:18.930 That's cheating. You can't do that.
00:27:20.130 --> 00:27:23.254 Also, I'd be shocked if you could like skim the transcript
00:27:23.254 --> 00:27:25.320 fast enough to find the exact answers.
00:27:27.190 --> 00:27:29.513 Like if you start saying something that sounds like what
00:27:29.513 --> 00:27:32.000 I said 30 minutes ago, I'm gonna be a little bit suspicious.
00:27:37.410 --> 00:27:41.722 OK, cool. Well, it doesn't sound like there's any other
00:27:41.722 --> 00:27:42.800 questions, so.
00:27:43.620 --> 00:27:46.590 I'm gonna pick a TMK.
00:27:48.750 --> 00:27:52.840 What should you test before you make a PR?
00:27:55.330 --> 00:27:56.190 OK so.
00:27:56.910 --> 00:27:59.240 It's kind of a really wide open-ended question.
00:27:59.580 --> 00:28:02.480 Yeah, you don't have to cover absolutely everything. So just
00:28:02.480 --> 00:28:05.000 just give me like a 30 words or less response, yeah.
00:28:03.340 --> 00:28:04.110 An example.
00:28:05.510 --> 00:28:10.275 Yeah. So like for example, if let's say I'm for just a random
00:28:10.275 --> 00:28:15.041 example, if I'm if I'm making a front end change to let's say
00:28:15.041 --> 00:28:18.500 the add to cart component or something like.
00:28:19.250 --> 00:28:22.050 Even if the story and the whatever.
00:28:22.810 --> 00:28:26.921 Even if it's all focused around this catalog view we're looking
00:28:26.921 --> 00:28:31.161 at, I would wanna make sure that it's it's behaving properly, not
00:28:31.161 --> 00:28:34.951 just here but also on the details page and everywhere else
00:28:34.951 --> 00:28:38.999 it might appear. And that's not only is it working with, let's
00:28:38.999 --> 00:28:43.174 say whatever products they might be looking at right in front of
00:28:43.174 --> 00:28:47.029 me right in front of my face right now. But hey, if if it's
00:28:47.029 --> 00:28:50.819 in stock out of stock and limited on back order, whatever,
00:28:50.819 --> 00:28:54.160 it all looks good and it's working as expected, so.
00:28:54.380 --> 00:28:57.612 Basically I would just try to test as much as possible, like
00:28:57.612 --> 00:29:00.420 sometimes I probably got a little over the top, but.
00:29:01.360 --> 00:29:05.339 Generally speaking, you want to make sure what you're doing
00:29:01.830 --> 00:29:02.050 Yeah.
00:29:05.339 --> 00:29:09.120 isn't going to introduce unnecessary work down the line.
00:29:10.790 --> 00:29:11.040 Yep.
00:29:10.840 --> 00:29:11.430 I guess.
00:29:11.810 --> 00:29:14.170 Yep, good answer.
00:29:14.720 --> 00:29:20.170 Uh, alright, and uh, let's.
00:29:20.250 --> 00:29:26.130 You, nick. What should I do before I start testing?
00:29:27.390 --> 00:29:31.057 Uh, before I've made my PR, what's the what's the main thing
00:29:31.057 --> 00:29:32.620 I should not forget to do?
00:29:33.430 --> 00:29:35.760 We merge QA into your local branch.
00:29:36.530 --> 00:29:38.160 That is correct.
00:29:40.020 --> 00:29:43.576 Seems like seems like everyone was actually listening. That's
00:29:43.576 --> 00:29:44.150 fantastic.
00:29:47.710 --> 00:29:48.350 What's up, Greg?
00:29:49.520 --> 00:29:53.694 I I was just gonna say it was a bit. I mean, based on our the
00:29:53.694 --> 00:29:57.464 our, the way we have this structured is our our goal is
00:29:57.464 --> 00:30:01.436 our overarching goal is to provide working software at all
00:30:01.436 --> 00:30:03.860 times. So regardless of what we do.
00:30:02.000 --> 00:30:02.290 Umm.
00:30:04.930 --> 00:30:06.940 Happy Path has to exist and work.
00:30:08.130 --> 00:30:10.120 At the end of every Sprint, at the very least.
00:30:08.350 --> 00:30:08.620 Yep.
00:30:11.210 --> 00:30:15.236 100% correct. Yep. And that's exactly the sort of that's
00:30:13.160 --> 00:30:13.670 So.
00:30:15.236 --> 00:30:19.757 really that's exactly what what spurred the conversation in the
00:30:19.757 --> 00:30:24.278 1st place is the frequency that any given QA site would just be
00:30:24.278 --> 00:30:26.680 broken was too high, is too high.
00:30:28.190 --> 00:30:29.150 And.
00:30:30.670 --> 00:30:34.786 Greg is exactly correct. The intent of Agile software
00:30:34.786 --> 00:30:39.055 development is to deliver working software every Sprint
00:30:39.055 --> 00:30:39.360 and.
00:30:41.100 --> 00:30:41.470 The.
00:30:42.950 --> 00:30:45.930 I guess to be to be topical and and and hopefully it doesn't
00:30:45.930 --> 00:30:49.154 feel like I'm picking on anybody in particular, but with like the
00:30:49.154 --> 00:30:52.085 the all the issues that we have in PCs right now, obviously
00:30:52.085 --> 00:30:55.016 we're mid Sprint. So it's not technically the best example,
00:30:55.016 --> 00:30:57.996 but that's a good example of like, so a lot of little things
00:30:57.996 --> 00:31:01.073 there that are kind of there's like some of the pages had like
00:31:01.073 --> 00:31:03.956 weird styling and it seems like the catalog is kicking you
00:31:03.956 --> 00:31:05.910 straight back to home page immediately.
00:31:06.230 --> 00:31:11.300 Umm and the password reset wasn't working for some reason.
00:31:11.710 --> 00:31:17.128 They got PCs the catalog kicking you out was intentional. Yeah, I
00:31:14.210 --> 00:31:15.790 Analog redirect as a feature.
00:31:17.128 --> 00:31:22.300 think you've gotta be logged in to to take a gander, you know?
00:31:20.940 --> 00:31:21.610 Interesting.
00:31:22.640 --> 00:31:23.710 I thought I was logged in.
00:31:24.550 --> 00:31:25.080 Anyway.
00:31:27.270 --> 00:31:30.880 But anyway, UM, lot of little things like that. Where?
00:31:32.190 --> 00:31:34.821 Again, we're mid Sprint, so maybe that's not the best
00:31:34.821 --> 00:31:37.989 example because there's probably there might even be bug tickets
00:31:37.989 --> 00:31:40.864 in this in this Sprint to fix those that just haven't been
00:31:40.864 --> 00:31:43.935 done yet. So, but that's kind of that's kind of the thing that
00:31:43.935 --> 00:31:47.005 I'm getting at is that kind of thing where there's like broken
00:31:47.005 --> 00:31:50.173 styling or like forgot password stuff just randomly doesn't work
00:31:50.173 --> 00:31:51.440 when it does work in core.
00:31:53.530 --> 00:31:56.100 That's the kind of stuff that I want to try to get people
00:31:56.100 --> 00:31:58.804 thinking about when they're making changes and think to test
00:31:58.804 --> 00:31:59.070 those.
00:32:01.430 --> 00:32:05.151 And if you ever not sure and I know I I say this every single
00:32:05.151 --> 00:32:08.513 Friday when we're when we're talking about anything. If
00:32:08.513 --> 00:32:11.995 you're ever not sure about something you're not sure that
00:32:11.995 --> 00:32:15.776 you need what you need to test for any given code change or if
00:32:15.776 --> 00:32:19.378 you're curious if somebody can give you a I guess an impact
00:32:19.378 --> 00:32:22.860 assessment if you want to think about it that way of the.
00:32:23.580 --> 00:32:26.852 Of the changes that you're going to have to make or that you have
00:32:26.852 --> 00:32:27.100 made.
00:32:27.860 --> 00:32:31.431 The Ask anything chats or a good place for that? Umm or you can
00:32:31.431 --> 00:32:34.890 just get office hours to if the testing is going to be really
00:32:34.890 --> 00:32:36.230 complicated or involved.
00:32:36.780 --> 00:32:38.960 Umm, but uh.
00:32:39.880 --> 00:32:42.696 But yeah, the idea is basically just I want everybody to be
00:32:42.696 --> 00:32:43.400 thinking about.
00:32:44.670 --> 00:32:47.804 The fact that because of how complex the platform is,
00:32:47.804 --> 00:32:50.997 basically no code change you make is in a vacuum, it's
00:32:50.997 --> 00:32:54.538 there's gonna be some kind of ripple effect to even the most
00:32:54.538 --> 00:32:57.788 simple changes, which is unfortunate, but it's just the
00:32:57.788 --> 00:32:59.240 reality of the situation.
00:33:00.050 --> 00:33:04.232 Umm. And so people need to be aware of that and looking into
00:33:04.232 --> 00:33:06.700 that as they make those changes so.
00:33:08.570 --> 00:33:09.160 Yeah.
00:33:13.220 --> 00:33:18.020 Cool. I guess that's really all I have for the the.
00:33:18.720 --> 00:33:20.570 Uh, the testing conversation.
00:33:23.680 --> 00:33:27.339 Awesome. Any questions anyone wants to ask? You know, to this
00:33:27.339 --> 00:33:30.998 forum in general. Otherwise we could split out front and back
00:33:30.998 --> 00:33:31.470 end and.
00:33:33.300 --> 00:33:35.983 I think in the back end it would just kind of be working, you
00:33:35.983 --> 00:33:36.200 know.
00:33:36.920 --> 00:33:40.867 Working through a ticket, somebody has, UM, anybody have a
00:33:40.867 --> 00:33:42.540 preference? Any thoughts?
00:33:51.700 --> 00:33:54.298 Alright, well, let's go ahead and split out then, Justin. A
00:33:54.298 --> 00:33:56.680 few and I get the front end team going over there and.
00:33:56.760 --> 00:33:58.670 Uh, we can go from there.
00:33:59.600 --> 00:34:00.190 Sounds good.
00:34:01.250 --> 00:34:02.310 Awesome. Thanks everybody.
00:00:03.857 --> 00:00:06.312 Not right now for me. I'm currently working through. Ohh.
00:00:06.312 --> 00:00:08.387 I see. I don't think that would be very helpful.
00:00:09.737 --> 00:00:10.747 Anybody else here?
00:00:14.147 --> 00:00:19.157 Yeah, I am currently at working on the skin Hot API integration
00:00:19.157 --> 00:00:24.089 where me and David Frederick had a meeting to go over how that
00:00:24.089 --> 00:00:28.943 API call is gonna get returned and the whole process of that,
00:00:28.943 --> 00:00:33.954 which I think will I still need a little bit more clarification
00:00:33.954 --> 00:00:34.737 on before.
00:00:35.717 --> 00:00:38.167 Diving super deep into the development work.
00:00:40.637 --> 00:00:43.847 OK, what do you need the clarification on exactly?
00:00:44.627 --> 00:00:46.617 So me bring it up real quick.
00:01:06.577 --> 00:01:09.887 So this is the one that I started on and.
00:01:13.867 --> 00:01:19.174 I just have it in an e-mail right now, but this is the step
00:01:19.174 --> 00:01:21.917 by step of what we believe the.
00:01:23.367 --> 00:01:28.547 Process is going to look like umm so this is for skin where
00:01:28.547 --> 00:01:33.899 they upload a photo of their face. We passed that to the API.
00:01:33.899 --> 00:01:37.957 So first they're going to choose consultation.
00:01:39.017 --> 00:01:41.647 They make their camera active.
00:01:42.627 --> 00:01:43.667 Take photo.
00:01:45.307 --> 00:01:45.947 Uh.
00:01:46.907 --> 00:01:48.817 Can response front end call?
00:01:52.817 --> 00:01:53.107 6.
00:01:55.367 --> 00:01:59.993 So yeah, the parts that I am a little bit confused about is
00:01:59.993 --> 00:02:01.227 exactly what is.
00:02:02.277 --> 00:02:06.763 Creating Wolf specifically how many API calls we're gonna have.
00:02:06.763 --> 00:02:11.390 So I think a lot of this is just gonna be reviewing documentation
00:02:11.390 --> 00:02:15.946 and stuff, but the back end has to make one call to check if the
00:02:15.946 --> 00:02:20.082 current subject already exists, and then a another call to
00:02:20.082 --> 00:02:23.517 create a batch for the current user and subject.
00:02:24.357 --> 00:02:25.167 And then.
00:02:26.497 --> 00:02:31.337 1/3 call to actually send the image out to the House API.
00:02:32.347 --> 00:02:36.467 And then after all of the calculation is done.
00:02:37.437 --> 00:02:41.883 We are going to have to make a fourth call to actually pull in
00:02:41.883 --> 00:02:44.707 the results when the results are ready.
00:02:45.327 --> 00:02:49.607 And then after or alongside that, they are going to send a.
00:02:50.387 --> 00:02:54.231 User is going to get a message in the UI saying your results
00:02:54.231 --> 00:02:57.067 are ready. Click here to view them and then.
00:02:58.347 --> 00:02:59.087 They will.
00:03:00.237 --> 00:03:04.624 Populate the results to the UI so the main thing that I still
00:03:04.624 --> 00:03:08.657 don't understand is exactly how the user is getting that
00:03:08.657 --> 00:03:09.577 notification.
00:03:10.467 --> 00:03:14.046 Uh, after their results are ready, their photo that they've
00:03:14.046 --> 00:03:15.657 uploaded has been analyzed.
00:03:16.387 --> 00:03:16.877 Umm.
00:03:18.077 --> 00:03:21.410 It's, uh, there's a couple of ways we can handle
00:03:18.307 --> 00:03:18.807 Me.
00:03:21.410 --> 00:03:23.247 notifications, but we have.
00:03:24.237 --> 00:03:27.665 Let me validate this before I say the wrong words, but the
00:03:27.665 --> 00:03:31.267 basic process would be if they don't want a push notification
00:03:31.267 --> 00:03:34.927 style system where the browser's just constantly listening for
00:03:34.927 --> 00:03:38.587 notifications and then you know some visual or auditory effect
00:03:38.587 --> 00:03:42.363 for you, have a new notification which I kind of doubt they want
00:03:42.363 --> 00:03:45.500 or need given that it's not, it's like you're getting
00:03:45.500 --> 00:03:48.754 frequent notifications. It's probably fine if it's just
00:03:48.754 --> 00:03:50.497 refresh the page kind of deal.
00:03:51.757 --> 00:03:52.127 But.
00:03:52.947 --> 00:03:54.057 That being case.
00:03:55.177 --> 00:03:59.757 We can either we already have or we can create a notification
00:03:59.757 --> 00:04:04.484 table that ties that info to the user and then an endpoint that
00:04:04.484 --> 00:04:09.138 just gets notifications for the current user and then whenever
00:04:09.138 --> 00:04:14.013 that data comes back from hot AI or hot AI. However, you say that
00:04:14.013 --> 00:04:18.593 and hits the web hook. We would use the we would use that web
00:04:18.593 --> 00:04:22.508 hook to generate the notification record. That would
00:04:22.508 --> 00:04:25.167 tell the user their stuff is ready.
00:04:30.567 --> 00:04:32.257 OK, I think that makes sense.
00:04:33.287 --> 00:04:36.899 And I'm checking real quick to see if we brought that in
00:04:36.899 --> 00:04:37.787 already or no.
00:04:40.787 --> 00:04:45.937 And the developer actually, I'll look in the.
00:04:47.417 --> 00:04:49.707 Skin QA branch that makes more sense.
00:04:58.207 --> 00:05:01.599 Yeah, we don't have notification stuff pulled into core at the
00:05:01.599 --> 00:05:04.883 moment, but it would not be difficult to just make a simple,
00:05:04.883 --> 00:05:08.114 you know contacts dot user notification table that just has
00:05:08.114 --> 00:05:11.506 a user ID and then like a string of the like notification name
00:05:11.506 --> 00:05:13.337 and that can just be set to like.
00:05:14.007 --> 00:05:16.077 Your results are ready or whatever.
00:05:16.357 --> 00:05:19.467 Do you have the? Do you have the mirror for this, nick?
00:05:21.227 --> 00:05:23.397 I do not have it open right now.
00:05:23.967 --> 00:05:27.197 Can you open it? Cause this should have been architected.
00:05:29.037 --> 00:05:31.507 And I mean, I see we have this but.
00:05:33.627 --> 00:05:39.387 And that would be in the teams wiki for Skindex, right?
00:05:40.147 --> 00:05:41.117 Yeah, come here.
00:05:40.167 --> 00:05:42.027 Uh, OK, cool.
00:05:51.637 --> 00:05:53.127 So catalog.
00:05:54.327 --> 00:05:55.657 Users logged in.
00:06:02.107 --> 00:06:03.187 Little questionnaire.
00:06:05.337 --> 00:06:08.957 Right. Directed to face scanning page scans their face which.
00:06:10.317 --> 00:06:12.707 Yeah, we did talk about they are doing that result.
00:06:13.797 --> 00:06:15.227 Can you guys read this alright?
00:06:15.627 --> 00:06:15.957 Yep.
00:06:21.257 --> 00:06:23.237 Right result entries created.
00:06:24.607 --> 00:06:25.807 Products returned.
00:06:24.607 --> 00:06:27.736 Now, hold on, let's let's read that so customers face results.
00:06:27.736 --> 00:06:30.468 Entity is created for the results from how they AI and
00:06:30.468 --> 00:06:32.157 added to the user's results list.
00:06:37.737 --> 00:06:41.376 So I assume that's after the web hook. Can you scroll above this
00:06:41.376 --> 00:06:44.847 a little bit? There's a couple of yellow tags right up there.
00:06:47.617 --> 00:06:50.447 Face scan is passed to how day I OK.
00:06:52.427 --> 00:06:53.257 And then.
00:06:54.347 --> 00:06:57.966 I'm gonna that specifically says anything about the web hook, but
00:06:57.966 --> 00:07:01.421 I assume that that's what that the whole process is covered by
00:07:01.421 --> 00:07:05.041 the results entities created for the results from how to AI cause
00:07:05.041 --> 00:07:08.167 we won't have the results until the web hook comes back.
00:07:09.227 --> 00:07:09.777 Umm.
00:07:09.247 --> 00:07:13.645 Yeah, the empty the model that holds all the values for the
00:07:13.645 --> 00:07:18.336 results I think is created when the images uploaded and then it
00:07:18.336 --> 00:07:22.295 is set to like a status of pending and then after the
00:07:22.295 --> 00:07:26.693 results are returned then the actual data gets populated of
00:07:26.693 --> 00:07:31.384 this entity and the status key is then set to results ready and
00:07:31.384 --> 00:07:33.437 then we have to make a note.
00:07:32.467 --> 00:07:34.877 Yeah, I did. OK, I see.
00:07:37.257 --> 00:07:40.067 OK. So do we have the schema for that? Uh.
00:07:41.717 --> 00:07:42.897 Results stuff.
00:07:44.157 --> 00:07:47.407 I believe that was made by Jeremy previously.
00:07:47.037 --> 00:07:51.447 OK, I'm going to find it real quick just to validate that it's
00:07:51.447 --> 00:07:55.297 there results result and results. That is, yeah, cool.
00:07:56.547 --> 00:07:57.437 Umm.
00:08:00.357 --> 00:08:01.907 And it has a user.
00:08:02.977 --> 00:08:06.147 The cart, I guess that it'll store the results on.
00:08:19.537 --> 00:08:19.967 Cool.
00:08:20.917 --> 00:08:21.477 Uh.
00:08:27.447 --> 00:08:29.811 Yeah, I mean, I guess at that point it would just be a thing
00:08:29.811 --> 00:08:29.927 of.
00:08:31.577 --> 00:08:35.286 If there's rather than having a whole notification schema, it's
00:08:35.286 --> 00:08:36.387 just the front end.
00:08:37.097 --> 00:08:42.423 Gets the results for the user and if any of them have a status
00:08:42.423 --> 00:08:42.677 of.
00:08:43.677 --> 00:08:44.427 Uh.
00:08:47.597 --> 00:08:49.317 You know, completed or whatever.
00:08:51.037 --> 00:08:51.807 Then.
00:08:54.377 --> 00:08:56.677 But your little badge up there and the thingy.
00:08:57.777 --> 00:09:01.127 Or wherever they want that notification to go and.
00:09:04.197 --> 00:09:05.777 Waited to figure out a good uh.
00:09:09.227 --> 00:09:12.197 Good way to mark them as like seeing or read or something.
00:09:13.467 --> 00:09:16.917 Mark the result is scene or red.
00:09:17.387 --> 00:09:19.722 Yeah. So that we don't constantly show that
00:09:19.722 --> 00:09:20.677 notification, but.
00:09:23.417 --> 00:09:27.648 All it's going to be when the result entity is created, it's
00:09:27.648 --> 00:09:31.880 gonna have a subject ID field that is mapped to the specific
00:09:31.880 --> 00:09:32.227 user.
00:09:53.337 --> 00:09:54.767 I see.
00:10:16.177 --> 00:10:18.427 So yeah, just in between.
00:10:19.697 --> 00:10:21.597 The customer scanning their face.
00:10:22.437 --> 00:10:27.507 The result entities created and added to the users results.
00:10:31.057 --> 00:10:35.170 Yeah, before the actual results get added to the result entity
00:10:35.170 --> 00:10:36.607 that has been created.
00:10:37.397 --> 00:10:39.217 Somewhere I think in here.
00:10:40.117 --> 00:10:45.397 The How API is going to say hey, these results are ready, you can
00:10:45.397 --> 00:10:46.837 come get them now.
00:10:47.477 --> 00:10:53.156 And on the back end I have to be either listening for the results
00:10:53.156 --> 00:10:54.017 to finish.
00:10:55.277 --> 00:10:56.007 Or.
00:10:57.497 --> 00:10:58.887 Figure out a way to.
00:10:59.617 --> 00:11:03.498 Be alerted when the results are done and I can actually go fetch
00:11:03.498 --> 00:11:03.797 them.
00:11:04.527 --> 00:11:08.469 That's the web hook. The web hook is a call back from how AI
00:11:04.717 --> 00:11:05.247 Or.
00:11:08.469 --> 00:11:12.218 telling stuff. There's results to to grab. Now that's the
00:11:12.218 --> 00:11:16.095 webhook is just an endpoint on the stuff back and that that
00:11:16.095 --> 00:11:19.779 Howard AI will call. At least that's how a web typically
00:11:19.779 --> 00:11:20.167 works.
00:11:21.227 --> 00:11:21.757 Umm.
00:11:24.147 --> 00:11:29.317 I I'm not familiar enough with that whole process in terms of.
00:11:24.957 --> 00:11:25.967 OK. And then?
00:11:28.267 --> 00:11:32.483 And then just the workflow for that Web hook would call the
00:11:32.483 --> 00:11:36.137 results ready endpoint to go and fetch the results.
00:11:34.627 --> 00:11:34.897 Yep.
00:11:36.847 --> 00:11:39.406 Yep, goes and gets the results from how to AI and then does
00:11:39.406 --> 00:11:42.051 whatever it needs to do on the South side to put those in the
00:11:42.051 --> 00:11:42.947 database and whatnot.
00:11:45.377 --> 00:11:47.407 And that's that's pretty much it.
00:11:48.267 --> 00:11:52.899 Alright, so that's not what I wanted. So in here there is
00:11:52.899 --> 00:11:54.497 create the endpoint.
00:11:55.847 --> 00:11:57.747 At the method.
00:11:58.387 --> 00:12:02.271 To take information from the web hook, can I add another bullet
00:12:02.271 --> 00:12:06.094 point in here that says create the web hook endpoint to listen
00:12:06.094 --> 00:12:06.337 for?
00:12:06.617 --> 00:12:10.127 That is the how they are results already endpoint, that is,
00:12:10.127 --> 00:12:11.297 that's the web hook.
00:12:13.527 --> 00:12:17.174 So that's the endpoint that how they I will hit to tell Seth
00:12:17.174 --> 00:12:21.120 that there are results ready and it will contain something in the
00:12:21.120 --> 00:12:24.767 body that describes you know what user or whatever it's for.
00:12:29.837 --> 00:12:31.377 And it sounds like.
00:12:32.577 --> 00:12:35.981 Not sure what method is, can't time what can't find information
00:12:35.981 --> 00:12:38.747 for what or how the data is passed to the web hook.
00:12:39.877 --> 00:12:43.507 OK. So it sounds like there's still some information we'll
00:12:43.507 --> 00:12:45.107 need to figure out on how.
00:12:45.747 --> 00:12:50.707 This web web hook needs to be formulated to work, but doesn't
00:12:50.707 --> 00:12:52.867 seem too complicated there.
00:12:55.537 --> 00:12:56.647 OK, so my.
00:12:57.757 --> 00:13:01.956 Understanding it that this or sorry, this endpoint is the web
00:13:01.956 --> 00:13:05.817 hook that is going to be listening for the results to be
00:13:05.817 --> 00:13:09.949 finished from the API and the endpoint that's gonna retrieve
00:13:09.949 --> 00:13:10.897 those results.
00:13:11.327 --> 00:13:13.857 No, that is only the web hook.
00:13:14.877 --> 00:13:15.987 OK so.
00:13:17.747 --> 00:13:18.447 Another.
00:13:17.917 --> 00:13:21.302 Well, I guess if you want to think about it that in that way,
00:13:21.302 --> 00:13:24.633 yes, it does both, because what it's gonna do is how they is
00:13:24.633 --> 00:13:28.237 gonna call that endpoint to tell it there's results ready and the
00:13:28.237 --> 00:13:31.622 workflow or the implementation for that endpoint will then be
00:13:31.622 --> 00:13:35.062 calling back to how they I with that information and asking it
00:13:35.062 --> 00:13:38.393 for details about the results that are ready and building up
00:13:38.393 --> 00:13:40.577 the SEV data that gets stored for that.
00:13:42.067 --> 00:13:46.826 OK, so all of the logic for saving the results is gonna be
00:13:46.826 --> 00:13:48.117 in the workflow.
00:13:49.067 --> 00:13:49.447 That.
00:13:49.147 --> 00:13:53.457 Of that endpoint yet and that endpoint will only be called by.
00:13:50.707 --> 00:13:51.307 Gotcha.
00:13:55.047 --> 00:13:57.867 Umm, by how they I not by step itself?
00:13:58.897 --> 00:14:00.297 OK. That makes a lot more sense.
00:14:28.357 --> 00:14:31.487 Alright, cool that that answers my question.
00:14:35.147 --> 00:14:35.537 Cool.
00:14:37.067 --> 00:14:40.937 Nick, I wasn't sure if you'd seen it, but I put what looked
00:14:40.937 --> 00:14:44.807 like some possible documentation for web hooks from hot AI.
00:14:46.497 --> 00:14:49.197 There should be sorry guys just joined.
00:14:50.697 --> 00:14:55.522 It's possible that I sent Nick or Jeremy documentation that
00:14:55.522 --> 00:14:56.487 isn't there.
00:14:58.227 --> 00:15:01.160 What I believe I can't remember where I showed that it might
00:15:01.160 --> 00:15:03.997 have been in the directly in the skin like a skin meeting.
00:15:05.527 --> 00:15:09.307 But you can register the web hook, I guess. What piece are
00:15:09.307 --> 00:15:13.344 you on? You just talked about the web hook documentation. What
00:15:13.344 --> 00:15:15.907 piece you guys talking about right now?
00:15:16.817 --> 00:15:18.467 You mean like what story?
00:15:17.247 --> 00:15:17.577 That's.
00:15:19.667 --> 00:15:22.304 Uh, yeah. I mean, you're talking about the web web hooks, but
00:15:22.304 --> 00:15:24.984 what? What is? What specifically are you asking about? It just
00:15:24.984 --> 00:15:25.537 how to do it?
00:15:27.107 --> 00:15:28.497 Or what's needed here for this?
00:15:28.457 --> 00:15:32.620 No, I was kind of originally under the impression that this
00:15:32.620 --> 00:15:37.130 endpoint right here was gonna be called to retrieve the results,
00:15:37.130 --> 00:15:38.657 not the web hook that.
00:15:39.637 --> 00:15:43.467 Gets hit when the results are ready, and now seven knows to go
00:15:43.467 --> 00:15:44.987 and retrieve the results.
00:15:48.577 --> 00:15:51.724 Like one end point would be needed to listen for when the
00:15:51.724 --> 00:15:54.926 results are done and then another endpoint would be needed
00:15:53.637 --> 00:15:54.027 Uh-huh.
00:15:54.926 --> 00:15:57.857 to go and actually pull the values for those results.
00:15:58.267 --> 00:15:58.987 Correct.
00:16:00.277 --> 00:16:04.219 So that's the results already endpoint, that's what, that's
00:16:04.219 --> 00:16:08.029 what the web hook is going to hit like you're like. We'll
00:16:08.029 --> 00:16:12.037 we'll register that URL that route as the web hook endpoint.
00:16:12.767 --> 00:16:17.517 Umm. And then there should be another user story for UM.
00:16:21.547 --> 00:16:25.450 Getting the getting the data like actually grabbing the data
00:16:25.450 --> 00:16:29.545 with that information that comes in and I have a I sent, I sent
00:16:29.545 --> 00:16:30.377 it to Jeremy.
00:16:31.167 --> 00:16:35.930 My guess is it didn't get into the ticket, but I have a a an
00:16:35.930 --> 00:16:40.537 example of the the actual like Jason object that it sends.
00:16:42.397 --> 00:16:43.407 Yeah, that would be great.
00:16:43.887 --> 00:16:44.247 OK.
00:16:44.847 --> 00:16:46.357 Yeah. And I see if I can find it real quick.
00:16:49.297 --> 00:16:51.940 And thank you for the documentation Greg. This is
00:16:51.940 --> 00:16:52.257 great.
00:16:52.727 --> 00:16:55.613 Yeah, sure. I just didn't. I I heard you mentioned the web hook
00:16:55.613 --> 00:16:58.319 and there were some questions around that. I wasn't sure if
00:16:58.319 --> 00:16:59.537 you'd seen this or not, so.
00:17:29.897 --> 00:17:32.540 Alright. And I'm gonna stop sharing and free it up for
00:17:32.540 --> 00:17:34.607 anybody else. Somebody else has questions.
00:18:04.387 --> 00:18:07.411 Let me can I walk you let me walk you through what this hot
00:18:07.411 --> 00:18:10.435 AI is gonna do. Then if no one else has any questions right
00:18:10.435 --> 00:18:10.637 now.
00:18:11.477 --> 00:18:14.775 So are you able to get into the hot air portal? You've got the
00:18:14.775 --> 00:18:16.137 login and everything then.
00:18:16.937 --> 00:18:17.887 Uh, yes.
00:18:18.867 --> 00:18:19.157 OK.
00:18:21.497 --> 00:18:23.167 Can you can you go back to sharing? I'm sorry.
00:18:27.347 --> 00:18:31.068 I should have it open in one of these tabs and I think it's this
00:18:31.068 --> 00:18:31.297 one.
00:18:34.647 --> 00:18:36.757 So yeah, this is yeah.
00:18:34.847 --> 00:18:35.557 OK, cool.
00:18:36.957 --> 00:18:38.517 OK, so if you go to purveyor.
00:18:41.347 --> 00:18:44.192 That's the one they're actually going to use. So because it
00:18:44.192 --> 00:18:46.137 should be testing with this one. OK, so.
00:18:47.467 --> 00:18:48.777 If you go to settings.
00:18:50.907 --> 00:18:51.487 At the top.
00:18:52.787 --> 00:18:54.727 Nope. Nope. Yeah, there you go. There you go.
00:18:56.377 --> 00:19:00.556 So right there is the web is is the URL for the web hook. So I
00:19:00.556 --> 00:19:04.868 found this site called Web Hook webhook dot site that will allow
00:19:04.868 --> 00:19:09.180 you to basically copy and paste a web hook in there or a URL and
00:19:09.180 --> 00:19:13.292 it will be just listening for any information coming in. Kind
00:19:13.292 --> 00:19:15.747 of like a the other side of postman.
00:19:17.507 --> 00:19:20.945 And so if you go create an, if you just go go to a web webhook
00:19:20.945 --> 00:19:22.037 dot site real quick.
00:19:24.377 --> 00:19:26.827 Just like on a new browser bar. Yeah, there you go.
00:19:33.147 --> 00:19:36.797 So there's your your your unique URL, so grab that, grab that.
00:19:37.467 --> 00:19:38.077 You URL.
00:19:39.577 --> 00:19:41.317 And go paste it into purveyor.
00:19:47.897 --> 00:19:48.367 Right here.
00:19:48.717 --> 00:19:49.067 Mm-hmm.
00:19:50.557 --> 00:19:53.398 OK, cool. And I just put it like it wouldn't let me. Uh, if it
00:19:53.398 --> 00:19:56.284 wouldn't let me do save changes until unless I typed in like an
00:19:56.284 --> 00:19:59.081 authorization key and value it doesn't. Actually, you're not.
00:19:59.081 --> 00:20:01.696 It's not set up on webhook dot site, so it doesn't really
00:20:01.696 --> 00:20:04.087 matter. It'll just let you through. So save changes.
00:20:07.297 --> 00:20:11.932 OK. And then if you go to, if you open in a new tab, the skin
00:20:11.932 --> 00:20:16.268 consultant app right there on the on the left browser bar
00:20:16.268 --> 00:20:16.717 there.
00:20:24.997 --> 00:20:26.387 Uh, and then?
00:20:28.027 --> 00:20:28.677 Purveyor.
00:20:34.197 --> 00:20:36.927 And then you can follow the apps link.
00:20:42.267 --> 00:20:45.105 On the right side, right next to the right QR code on the right
00:20:45.105 --> 00:20:45.327 side.
00:20:45.827 --> 00:20:46.257 Gotcha.
00:20:49.597 --> 00:20:52.659 If you want, you can go find a. You can either use your camera
00:20:52.659 --> 00:20:55.429 and use your face for the picture, or you can go find an
00:20:55.429 --> 00:20:56.207 image online to.
00:20:56.897 --> 00:20:57.527 Or like a.
00:20:58.847 --> 00:21:00.087 The test image online.
00:21:09.677 --> 00:21:12.622 It should have pretty good. It should fill most of the. Yeah,
00:21:12.622 --> 00:21:15.662 that looks that looks like good. That looks like good lighting.
00:21:15.662 --> 00:21:18.702 So otherwise it says it's like too dark or something like that.
00:21:18.702 --> 00:21:19.937 So that looks pretty good.
00:21:24.447 --> 00:21:25.347 So start.
00:21:27.487 --> 00:21:28.037 At the bottom.
00:21:30.337 --> 00:21:32.937 And then, yeah, let's find it. Start.
00:21:34.107 --> 00:21:37.857 And then just fill. Just click. Yeah, these are just like, yeah.
00:21:50.627 --> 00:21:53.894 Uh click allow and then it'll show. You can upload a picture
00:21:53.894 --> 00:21:54.537 in a second.
00:22:08.487 --> 00:22:09.457 Then upload.
00:22:20.107 --> 00:22:20.517 Move.
00:22:26.357 --> 00:22:27.747 Hmm, interesting.
00:22:29.027 --> 00:22:29.897 Give me just a second.
00:22:38.667 --> 00:22:41.788 There you go. You got. You gotta get up close, too. With the with
00:22:40.417 --> 00:22:40.697 Yeah.
00:22:41.788 --> 00:22:41.977 the.
00:22:42.847 --> 00:22:44.817 Yeah, well, I just click this down here.
00:22:45.897 --> 00:22:46.427 Yeah.
00:22:51.627 --> 00:22:52.757 What's the screen saying?
00:22:53.697 --> 00:22:57.157 Says you gotta get closer here. Try this one.
00:22:58.927 --> 00:23:01.227 You may need to like fill it fill the screen.
00:23:02.837 --> 00:23:05.727 There would be easier if I put this on my laptop screen.
00:23:04.067 --> 00:23:05.217 Here's the here's the.
00:23:06.067 --> 00:23:10.012 Yeah, here's the test image too that they that I think that
00:23:10.012 --> 00:23:14.022 hautai actually shows. I put it in the chat if if the camera
00:23:14.022 --> 00:23:14.877 doesn't work.
00:23:16.967 --> 00:23:18.117 Yeah, let me try this one.
00:23:42.407 --> 00:23:44.077 Yeah, let's go through this again.
00:23:56.997 --> 00:23:57.577 There we go.
00:24:02.287 --> 00:24:05.693 OK, so now if you go over to your web website webhook dot
00:24:05.693 --> 00:24:05.987 site.
00:24:07.197 --> 00:24:07.677 Tab.
00:24:08.547 --> 00:24:11.520 So you can see it. It's sent that. So that's the, that's the
00:24:11.520 --> 00:24:13.177 object payload that it's sending.
00:24:15.107 --> 00:24:18.190 So obviously there's all the area results down below, so
00:24:18.190 --> 00:24:21.057 those are all the scores, but if you scroll back up.
00:24:23.377 --> 00:24:27.317 There's the image ID, batch ID, subject ID.
00:24:28.537 --> 00:24:31.504 Data set ID and company ID. Those shouldn't change, nor
00:24:31.504 --> 00:24:34.895 should the application ID, so we can put those as app settings.
00:24:34.895 --> 00:24:37.968 But for for years just this specific upload the image ID,
00:24:37.968 --> 00:24:41.147 the batch ID and the subject ID is what you're looking for.
00:24:43.037 --> 00:24:45.817 If you let me, actually I have a postman.
00:24:46.917 --> 00:24:47.687 Collection.
00:24:49.077 --> 00:24:54.022 So the if I understand it right, the data set is going to be one
00:24:54.022 --> 00:24:58.967 specific data set for clarity or for set for clarity ventures in
00:24:58.967 --> 00:25:03.532 general, and then each different batch is going to be for a
00:25:03.532 --> 00:25:08.097 specific user that's gonna have their own individual photo.
00:25:06.027 --> 00:25:07.017 Correct. So company.
00:25:08.467 --> 00:25:13.719 Correct. So company ID is the is skindex labs. The application ID
00:25:13.719 --> 00:25:18.256 is coming from the skin consultant. So it's just the the
00:25:18.256 --> 00:25:22.951 series of questions that they they actually asked the face
00:25:22.951 --> 00:25:27.885 skin metrics 2.0 and then the data set ID is pervaya. So it's
00:25:27.885 --> 00:25:32.740 linking it to that data set and then subject batch and image
00:25:32.740 --> 00:25:35.207 relates to the specific upload.
00:25:38.807 --> 00:25:39.417 OK.
00:25:40.317 --> 00:25:40.847 Umm.
00:25:43.257 --> 00:25:47.167 OK, I'm going to export this real quick.
00:26:04.307 --> 00:26:05.617 And then you have you have post name.
00:26:07.457 --> 00:26:07.927 Yes.
00:26:08.457 --> 00:26:08.967 Google.
00:26:14.497 --> 00:26:16.387 So here's a postman collection.
00:26:38.627 --> 00:26:38.887 Yeah.
00:26:41.007 --> 00:26:43.917 Alright, so I downloaded that and then just import it in here.
00:26:44.547 --> 00:26:47.256 Well, and then you'll also have to do. You're fine. You're.
00:26:44.867 --> 00:26:47.527 I'm pretty new to postman. I haven't used this very much.
00:26:47.256 --> 00:26:49.921 Yeah, no worries. I'll walk you through it. Give me just a
00:26:49.921 --> 00:26:50.237 second.
00:26:51.047 --> 00:26:51.327 Umm.
00:26:51.107 --> 00:26:52.877 I need to do.
00:26:55.327 --> 00:26:56.107 Here's my.
00:27:04.817 --> 00:27:11.225 OK. Yeah. So import. Yeah at the top right there. And then find
00:27:11.225 --> 00:27:12.227 your file.
00:27:27.597 --> 00:27:31.922 Got. So if you go to, uh, drop that hot AI arrow down so you
00:27:31.922 --> 00:27:36.247 can see the request inside of there. So if you go to log in.
00:27:38.337 --> 00:27:42.180 Check the body real quick underneath the the brown or like
00:27:42.180 --> 00:27:45.047 the address bar, there's a tab called body.
00:27:47.187 --> 00:27:50.417 OK, so it kept it cool. So if you'll just send that so send
00:27:50.417 --> 00:27:51.117 that request.
00:27:54.997 --> 00:27:58.192 Alright. And then copy the token access just the value. Don't
00:27:58.192 --> 00:27:59.687 copy the. Yeah, there you go.
00:28:01.317 --> 00:28:04.752 Go copy that and then go to. Click on the hot AI container
00:28:04.752 --> 00:28:07.197 like on the left side. You click on that.
00:28:08.507 --> 00:28:09.877 And then go to variables.
00:28:12.547 --> 00:28:15.517 And then replace.
00:28:16.577 --> 00:28:20.267 Like control, a control V on both of those.
00:28:32.407 --> 00:28:33.337 And then save.
00:28:38.297 --> 00:28:40.087 And then go to UM.
00:28:41.287 --> 00:28:42.647 Subjects report.
00:28:45.447 --> 00:28:50.178 I believe is the next one. So then if you look at the data set
00:28:50.178 --> 00:28:53.257 for the so the not the data set but the.
00:28:55.487 --> 00:28:57.567 The response from the web hook.
00:29:02.127 --> 00:29:02.967 Where's that?
00:29:03.177 --> 00:29:07.695 That was in Hautai. That was in the web. The webhook dot site
00:29:07.695 --> 00:29:11.047 the the response. So you need the subject ID.
00:29:13.977 --> 00:29:14.397 Got it.
00:29:14.827 --> 00:29:18.468 Cool. So then go over to. Yep. In here and then you see, after
00:29:18.468 --> 00:29:22.110 it says in the in the URL. So unfortunately the way they do it
00:29:22.110 --> 00:29:25.635 is they do it at a route. So it's not like a query param. So
00:29:25.635 --> 00:29:29.161 you have to change this every time. So when we build the URL
00:29:29.161 --> 00:29:32.571 and the C# code, obviously you'll just concatenate it, but
00:29:32.571 --> 00:29:35.866 that's fine. So where it says slash datasets and then so
00:29:35.866 --> 00:29:39.334 you're not gonna replace that one, you're gonna replace the
00:29:39.334 --> 00:29:42.802 slash subjects. So replace the 20 BC one with what you just
00:29:42.802 --> 00:29:43.207 copied.
00:29:43.977 --> 00:29:47.924 They're near the end, so see slash subjects hip. So you're
00:29:47.924 --> 00:29:51.939 looking for subjects. This one and then go to authorization
00:29:51.939 --> 00:29:56.288 real quick. Just make sure that it copied over here. OK. So this
00:29:56.288 --> 00:29:59.767 one is a. This one isn't actually pulling from the.
00:30:01.087 --> 00:30:02.527 And here it so if you go.
00:30:03.187 --> 00:30:06.673 Back to your login and go grab and paste that token in there as
00:30:06.673 --> 00:30:07.327 well. Sorry.
00:30:11.257 --> 00:30:13.470 I haven't refined this collection, this was me just
00:30:13.470 --> 00:30:14.747 kind of testing everything so.
00:30:16.267 --> 00:30:19.397 Some of it is using alright and then now send that.
00:30:23.327 --> 00:30:24.367 Bad request.
00:30:25.327 --> 00:30:29.197 Uh save sorry save 1st and then and then send sometimes that.
00:30:31.757 --> 00:30:32.047 Hmm.
00:30:34.577 --> 00:30:36.287 Bad request.
00:30:39.547 --> 00:30:40.257 Check real quick.
00:30:53.097 --> 00:30:56.262 Oh, I'm so sorry it's get batch after notification. I'm not 100%
00:30:56.262 --> 00:30:58.844 sure what the subject report is. Get get batch after
00:30:58.844 --> 00:30:59.477 notification.
00:31:01.247 --> 00:31:05.117 Request and then go look for the batch ID from.
00:31:08.077 --> 00:31:09.497 From the Yep.
00:31:10.197 --> 00:31:10.907 Webhook.
00:31:17.887 --> 00:31:18.597 Past that here.
00:31:18.977 --> 00:31:19.677 Yep.
00:31:20.867 --> 00:31:23.307 And this one does inherit from parent auth for the
00:31:23.307 --> 00:31:25.557 authorization, so you can, yeah save and send.
00:31:28.287 --> 00:31:31.502 OK, so there's now this is CSV as the way it returns, but
00:31:31.502 --> 00:31:34.939 there's the question the name, the question value and created
00:31:34.939 --> 00:31:37.878 a. So what bothers you most about your skin texture,
00:31:37.878 --> 00:31:41.426 roughness, flakiness, et cetera? So that information would need
00:31:41.426 --> 00:31:43.477 to be stored as the survey response.
00:31:44.237 --> 00:31:44.737 Umm.
00:31:45.987 --> 00:31:48.693 And then if you go to full results, the full results
00:31:48.693 --> 00:31:51.552 request, now this one's frustrating because you have to
00:31:51.552 --> 00:31:52.727 replace several things.
00:31:53.837 --> 00:31:57.559 But you can see a companies and data sets there. Obviously those
00:31:57.559 --> 00:32:01.224 are gonna stay the same, but if you'll need to replace subjects
00:32:01.224 --> 00:32:04.774 and then I think batch ID and image ID are batches and images
00:32:04.774 --> 00:32:07.237 with the information from the post result.
00:32:08.257 --> 00:32:09.207 By the web hook result.
00:32:10.767 --> 00:32:14.717 OK, companies data set stays the same. I need subjects.
00:32:14.917 --> 00:32:15.357 Yep.
00:32:17.937 --> 00:32:19.397 I'll be the subject ID. Yep.
00:32:45.477 --> 00:32:46.627 And then the image ID.
00:33:04.577 --> 00:33:07.189 I'll check authorization. This one may not inherit from parent
00:33:07.189 --> 00:33:07.397 auth.
00:33:09.497 --> 00:33:13.117 Ohh it does. I think Christian credentials were not provided.
00:33:14.937 --> 00:33:15.447 Interesting.
00:33:20.057 --> 00:33:20.967 Uh.
00:33:24.977 --> 00:33:25.477 Says this.
00:33:42.067 --> 00:33:42.597 Interesting.
00:33:49.687 --> 00:33:51.437 Work previously on author.
00:34:12.857 --> 00:34:15.981 OK, change it to change the instead of inherit from parent
00:34:15.981 --> 00:34:19.212 instead of inherit auth from parent just do bearer token and
00:34:19.212 --> 00:34:22.707 then go grab the, grab the token again and and paste it in there.
00:34:25.627 --> 00:34:28.157 The token is from the login request in postman.
00:34:30.627 --> 00:34:31.207 Yeah, there you go.
00:34:47.437 --> 00:34:50.646 There you go. So there's the full set of results so you can
00:34:50.646 --> 00:34:52.947 see the products that it recommends there.
00:34:56.887 --> 00:35:00.982 But but for now you'll just be saving this whole Jason BLOB to
00:35:00.982 --> 00:35:05.077 the results schema record. Just saved the whole thing for now.
00:35:05.077 --> 00:35:07.677 We'll break it down later if necessary.
00:35:07.787 --> 00:35:11.329 Umm but but yeah. So for now you're just gonna grab this
00:35:11.329 --> 00:35:14.995 whole full result. So you'll you'll hit the you'll receive
00:35:14.995 --> 00:35:18.536 the web hook and you'll grab that date. You'll have that
00:35:18.536 --> 00:35:21.457 data. And then in that results ready endpoint.
00:35:22.807 --> 00:35:26.227 You'll generate the cart and the results record.
00:35:27.027 --> 00:35:30.533 You'll use the information there. You'll log into hot AI,
00:35:30.533 --> 00:35:33.917 do the get batch after notification to get the question
00:35:33.917 --> 00:35:35.187 the survey responses.
00:35:36.507 --> 00:35:40.472 And then you'll go hit the full results endpoint to get the full
00:35:40.472 --> 00:35:43.767 results data and just save those to the results cart.
00:35:44.607 --> 00:35:49.021 Set the results cart I or set the results user ID to the
00:35:49.021 --> 00:35:50.957 correct subject and then.
00:35:52.127 --> 00:35:53.067 Are the correct user.
00:35:53.927 --> 00:35:55.217 And then umm.
00:35:56.427 --> 00:35:58.177 Basically just be done there.
00:36:00.407 --> 00:36:04.140 OK. And did I I I feel like I remember reading somewhere in
00:36:04.140 --> 00:36:07.936 the documentation, although I don't think I would be able to
00:36:07.936 --> 00:36:09.367 find it pretty quickly.
00:36:09.707 --> 00:36:10.107 Uh.
00:36:09.967 --> 00:36:14.387 Ohh that the results return.
00:36:15.077 --> 00:36:19.577 All of the results in the data set and then I would need to
00:36:19.577 --> 00:36:24.077 parse that data set for where the results match the subject
00:36:24.077 --> 00:36:28.802 ID. Does that mean that every customer that uses this is going
00:36:28.802 --> 00:36:33.452 to continually add records to that data set and it's going to
00:36:31.397 --> 00:36:31.977 No.
00:36:33.452 --> 00:36:34.127 it's not?
00:36:33.777 --> 00:36:37.687 No. So you So what we just did there with postman is what,
00:36:37.687 --> 00:36:41.597 that's a simulation of what you'll do in the back end code
00:36:41.597 --> 00:36:45.507 and you will you will all the data that you need to go get
00:36:45.507 --> 00:36:49.550 just that batch and just that images result set comes in the
00:36:49.550 --> 00:36:50.147 web hook.
00:36:51.217 --> 00:36:55.958 So there there may be an end point where you grab the entire
00:36:55.958 --> 00:37:00.311 data for the data set, but that's not necessary because
00:37:00.311 --> 00:37:03.887 we're waiting for the because the subject is.
00:37:04.547 --> 00:37:07.847 Once the subject uploads their picture and they get the
00:37:07.847 --> 00:37:11.501 results, the web hook will say hey, I've got results for this
00:37:11.501 --> 00:37:15.037 image for this batch. For this subject on this data set and
00:37:15.037 --> 00:37:18.750 this company, right. And so you have that specific set of data
00:37:18.750 --> 00:37:22.463 and those two endpoints that we just did in postman, those two
00:37:22.463 --> 00:37:25.704 will go get those specific results and question survey
00:37:25.704 --> 00:37:27.767 questions for that specific batch.
00:37:28.687 --> 00:37:29.947 Which is the image upload.
00:37:30.707 --> 00:37:31.217 OK.
00:37:32.407 --> 00:37:37.350 And this is the expected size of the results for. This seems like
00:37:36.727 --> 00:37:40.625 Yeah, it's pretty it. It's a well, it's not a lot of
00:37:37.350 --> 00:37:39.447 a lot of products threading.
00:37:40.625 --> 00:37:45.037 products. So the the math, the, the massive size of this is
00:37:45.037 --> 00:37:49.671 actually the right there, masks original and heat map mask. So
00:37:49.671 --> 00:37:54.083 what that's actually doing is it's providing an overlay for
00:37:54.083 --> 00:37:58.864 the original image. It actually if you go back to the hot AI and
00:37:58.864 --> 00:38:00.997 I'll show you what those are.
00:38:02.937 --> 00:38:05.727 So if you go back to the results pet tab from your upload.
00:38:07.027 --> 00:38:10.472 Yeah, this one. So if you do they. Yeah, you see how on the
00:38:10.472 --> 00:38:13.975 second picture there's like the little yellow smudges on the
00:38:13.975 --> 00:38:17.593 right side. Yeah, right, right there. So that's a heat map for
00:38:17.593 --> 00:38:21.039 his hydration. It's for this images hydration score. If you
00:38:21.039 --> 00:38:22.647 keep scrolling to the right.
00:38:25.277 --> 00:38:30.159 So you can see the different heat maps so that data is coming
00:38:25.527 --> 00:38:26.287 Ah, OK.
00:38:30.159 --> 00:38:34.647 back in those results and eventually we will actually be
00:38:34.647 --> 00:38:39.293 using that heat map data to display the to do some form of
00:38:39.293 --> 00:38:39.687 this.
00:38:40.387 --> 00:38:44.106 But like a recreation of this, but not until we get to the full
00:38:44.106 --> 00:38:47.360 project, for now we're just going to store the data and
00:38:47.360 --> 00:38:48.697 we'll display it later.
00:38:51.387 --> 00:38:54.460 So that's why it's a lot of data is that ultimately for all these
00:38:54.460 --> 00:38:57.486 different images, it's storing. My guess is all of the pixels to
00:38:57.486 --> 00:38:58.697 where to put the heat map.
00:38:59.747 --> 00:39:04.193 OK. That makes sense. I don't know how we would recreate that
00:39:04.193 --> 00:39:08.137 from the Jason. That's gonna be interesting to see it.
00:39:05.627 --> 00:39:06.077 I.
00:39:06.877 --> 00:39:09.671 I think it's. I think it's literally just an overlay and
00:39:09.671 --> 00:39:12.367 it's literally drawing. If if you go back to the data.
00:39:14.367 --> 00:39:18.181 I believe that those are XY like like XY parameters that it's
00:39:18.181 --> 00:39:22.241 literally saying you know you're going to put. Yeah, coordinates.
00:39:19.817 --> 00:39:20.247 Umm.
00:39:22.241 --> 00:39:26.055 There you go. So at one 95231, you're gonna put, you're gonna
00:39:26.055 --> 00:39:29.869 fill in a pixel. So basically, we'll have the image, and then
00:39:29.869 --> 00:39:33.745 we'll draw and overlay on top of that with all of these pixels
00:39:33.745 --> 00:39:34.237 colored.
00:39:36.967 --> 00:39:37.997 That's pretty awesome.
00:39:38.467 --> 00:39:40.237 But that's not for us now.
00:39:42.177 --> 00:39:43.717 That's that's for down the line.
00:39:47.767 --> 00:39:48.457 OK, cool.
00:39:49.767 --> 00:39:52.017 So I would go click on subjects report there.
00:39:53.437 --> 00:39:57.367 The subjects report I would edit that the title of that.
00:39:58.127 --> 00:40:00.327 Up there at the top. Uh yeah.
00:40:01.107 --> 00:40:03.925 You can click the little bar and I would just put like do not
00:40:03.925 --> 00:40:04.107 use.
00:40:05.517 --> 00:40:08.636 Just in case we need to use it later, but it's not. It's not
00:40:08.636 --> 00:40:11.705 useful for what we need to do right now. So you'll do login
00:40:11.705 --> 00:40:14.518 well. First, you'll get the receive the web hook, then
00:40:14.518 --> 00:40:17.637 you'll log in, then you'll use the data from the web hook to
00:40:17.637 --> 00:40:20.706 get batch after notification. Then you'll use the data from
00:40:20.706 --> 00:40:23.621 the web hook to get the full results and the rest of the
00:40:23.621 --> 00:40:26.741 ticket should explain how to create the result that you need
00:40:26.741 --> 00:40:29.247 to create the results record, and then the cart.
00:40:30.337 --> 00:40:31.027 Yes.
00:40:31.527 --> 00:40:31.857 Go.
00:40:32.597 --> 00:40:34.327 Does that help without AI stuff?
00:40:34.727 --> 00:40:35.607 Yes it does.
00:40:35.877 --> 00:40:36.527 Perfect.
00:40:39.667 --> 00:40:40.417 Awesome. Thank you.
00:40:39.987 --> 00:40:42.561 Took me a while to figure all that out, so I didn't want you
00:40:42.561 --> 00:40:44.925 guys to go down another rabbit hole of trying to figure
00:40:44.925 --> 00:40:45.347 ourselves.
00:40:47.487 --> 00:40:48.437 Yeah, this is great.
00:40:48.887 --> 00:40:49.277 Cool.
00:40:50.957 --> 00:40:54.150 Alright, I have to. I have to run, but I'll turn it back over
00:40:54.150 --> 00:40:57.240 to I guess, Brendan, if you're running the show or Craig or
00:40:57.240 --> 00:40:57.807 whoever is.
00:40:58.407 --> 00:41:00.963 Yeah. I mean, we only got like 5 minutes left, so I'm not sure
00:41:00.467 --> 00:41:00.767 You know.
00:41:00.963 --> 00:41:01.897 how much weather is to.
00:41:01.817 --> 00:41:04.573 I didn't even see. I I'm still. I'm still on the three, three to
00:41:03.047 --> 00:41:03.677 Yeah.
00:41:04.573 --> 00:41:07.245 five training schedule. I don't know why. Whenever I say 4:00.
00:41:06.697 --> 00:41:07.487 Yeah, I know.
00:41:07.245 --> 00:41:09.747 O'clock. I'm like, oh, we still got an hour training left.
00:41:10.157 --> 00:41:10.587 Yeah.
00:41:11.907 --> 00:41:14.333 So unless anyone has any more quick questions, I kind of doubt
00:41:14.333 --> 00:41:16.643 there's anything we're gonna be able to cover in the next 5
00:41:16.643 --> 00:41:17.067 minutes so.
00:41:17.627 --> 00:41:23.617 Uh. If if not, then we can reclaim 5 minutes and.
00:41:24.667 --> 00:41:25.907 Sweet thanks everybody.
00:41:25.597 --> 00:41:25.907 Yeah.
00:41:27.967 --> 00:41:28.717 Talk to you later.
00:41:28.127 --> 00:41:28.637 Have a good one.
00:41:28.237 --> 00:41:28.487 Yep.
00:41:29.027 --> 00:41:30.397 Thanks guys. You have a good weekend.
00:41:29.387 --> 00:41:30.097 Thanks everyone.
00:41:30.857 --> 00:41:31.487 So you guys.