WEBVTT

1
00:00:01.260 --> 00:00:04.710
<v ->Welcome to the last video of this section.</v>

2
00:00:04.710 --> 00:00:07.260
so we finished the Mapty project,

3
00:00:07.260 --> 00:00:09.220
but to finish the section,

4
00:00:09.220 --> 00:00:12.360
I just wanted to quickly address some additional features

5
00:00:12.360 --> 00:00:15.830
that we could have implemented in this application.

6
00:00:15.830 --> 00:00:19.150
And basically, I'm gonna leave them for you as challenges

7
00:00:19.150 --> 00:00:22.223
if you'd like to spend some more time on this project.

8
00:00:24.470 --> 00:00:27.500
And the first couple of features that you could implement

9
00:00:27.500 --> 00:00:30.980
would be the ability to edit any workout

10
00:00:30.980 --> 00:00:32.780
or to delete a workout

11
00:00:32.780 --> 00:00:35.850
or also to delete all the workouts right from

12
00:00:35.850 --> 00:00:37.750
the user interface.

13
00:00:37.750 --> 00:00:39.810
So this is something that you can do

14
00:00:39.810 --> 00:00:41.790
in most Web applications.

15
00:00:41.790 --> 00:00:45.920
And so therefore, you could also add that ability here.

16
00:00:45.920 --> 00:00:49.200
We didn't implement this together in this application

17
00:00:49.200 --> 00:00:52.490
because I just wanted to keep things more simple here

18
00:00:52.490 --> 00:00:55.370
and not to create a super huge application

19
00:00:55.370 --> 00:00:57.950
that would take ages to build.

20
00:00:57.950 --> 00:01:00.540
Now next up, you could add the ability

21
00:01:00.540 --> 00:01:03.810
to sort workouts by a certain field,

22
00:01:03.810 --> 00:01:07.410
for example, by distance or by duration.

23
00:01:07.410 --> 00:01:10.550
And this one would be probably a little bit tricky

24
00:01:10.550 --> 00:01:13.510
to implement, but you can take inspiration

25
00:01:13.510 --> 00:01:16.220
from the Bankist application where I believe

26
00:01:16.220 --> 00:01:18.103
we did something like this.

27
00:01:19.090 --> 00:01:22.560
Now, another thing that you could do is to actually rebuild

28
00:01:22.560 --> 00:01:25.550
the Running and Cycling objects that are coming

29
00:01:25.550 --> 00:01:27.250
from Local storage.

30
00:01:27.250 --> 00:01:30.650
So basically you could fix that problem that we run into

31
00:01:30.650 --> 00:01:32.420
by the end of the last lecture

32
00:01:32.420 --> 00:01:35.010
where the objects coming from local storage

33
00:01:35.010 --> 00:01:36.990
were now regular objects

34
00:01:36.990 --> 00:01:40.410
and no longer running and cycling objects.

35
00:01:40.410 --> 00:01:43.110
So this would be a nice challenge for you to do

36
00:01:43.110 --> 00:01:45.880
and to basically fix that error.

37
00:01:45.880 --> 00:01:49.420
Another nice touch that you could use to this application,

38
00:01:49.420 --> 00:01:52.460
is to create more realistic error messages

39
00:01:52.460 --> 00:01:54.700
and confirmation messages.

40
00:01:54.700 --> 00:01:57.680
So we just used a simple alert window

41
00:01:57.680 --> 00:02:00.760
to display an error message when the input data

42
00:02:00.760 --> 00:02:02.220
was not valid.

43
00:02:02.220 --> 00:02:03.210
Right?

44
00:02:03.210 --> 00:02:07.990
But that's kind of ugly and not really real world like.

45
00:02:07.990 --> 00:02:08.823
And so therefore,

46
00:02:08.823 --> 00:02:12.140
you could implement more realistic messages

47
00:02:12.140 --> 00:02:14.810
and maybe you could even have them fade out

48
00:02:14.810 --> 00:02:16.420
after some time.

49
00:02:16.420 --> 00:02:19.590
So that would be a nice use case of some of the things

50
00:02:19.590 --> 00:02:21.140
that we already learned before.

51
00:02:22.010 --> 00:02:24.890
Okay, so these are the more easier ones.

52
00:02:24.890 --> 00:02:29.150
Let's take a look at a couple of hard ones.

53
00:02:29.150 --> 00:02:33.560
So first, you could add the ability to position the map

54
00:02:33.560 --> 00:02:35.960
so that it shows all the workouts.

55
00:02:35.960 --> 00:02:38.610
So let's say that you went to a different country

56
00:02:38.610 --> 00:02:40.630
and did some workouts there.

57
00:02:40.630 --> 00:02:43.430
And so your workouts are all over the map.

58
00:02:43.430 --> 00:02:46.060
And so therefore, it would be nice to have a button

59
00:02:46.060 --> 00:02:49.740
which shows all the workouts on the map at once.

60
00:02:49.740 --> 00:02:51.530
However, to solve this problem,

61
00:02:51.530 --> 00:02:54.320
you would probably have to do a lot of Googling

62
00:02:54.320 --> 00:02:56.310
about the Leaflet library

63
00:02:56.310 --> 00:02:59.120
and dig deep into the documentation.

64
00:02:59.120 --> 00:03:03.420
Because of course, this functionality would depend entirely

65
00:03:03.420 --> 00:03:05.880
on the Leaflet library.

66
00:03:05.880 --> 00:03:07.380
Right?

67
00:03:07.380 --> 00:03:11.320
Okay, but still, this would be actually nice to see,

68
00:03:11.320 --> 00:03:13.060
but let's see another one,

69
00:03:13.060 --> 00:03:15.520
which would probably be even harder,

70
00:03:15.520 --> 00:03:18.890
which is the ability to draw lines and shapes

71
00:03:18.890 --> 00:03:23.410
instead of simply having a point for each workout.

72
00:03:23.410 --> 00:03:25.750
So this would be a real challenge

73
00:03:25.750 --> 00:03:28.020
and maybe it wouldn't be such a good idea

74
00:03:28.020 --> 00:03:29.970
to actually try this one out.

75
00:03:29.970 --> 00:03:32.410
But still, I wanted to just leave this here

76
00:03:32.410 --> 00:03:36.100
as a potential improvement to this application.

77
00:03:36.100 --> 00:03:39.540
So when you go on a run, of course, the run is not just

78
00:03:39.540 --> 00:03:42.890
on a point, but it's more like on a line

79
00:03:42.890 --> 00:03:46.420
or maybe like a circular shape or something like that.

80
00:03:46.420 --> 00:03:48.550
And so it would be nice to have that

81
00:03:48.550 --> 00:03:50.580
instead of just a point.

82
00:03:50.580 --> 00:03:52.660
And finally, I have two more challenges

83
00:03:52.660 --> 00:03:55.890
to improve this project that you could only implement

84
00:03:55.890 --> 00:03:57.820
after the next section.

85
00:03:57.820 --> 00:03:59.463
But let me still show them here.

86
00:04:00.400 --> 00:04:04.460
So you could Geocode location from the coordinates.

87
00:04:04.460 --> 00:04:07.300
So you could use a third party API

88
00:04:07.300 --> 00:04:09.120
to plug in the coordinates,

89
00:04:09.120 --> 00:04:12.600
and that would then give you back the real location.

90
00:04:12.600 --> 00:04:15.230
So, for example, you could then call the run,

91
00:04:15.230 --> 00:04:17.510
a "Run in Faro, Portugal"

92
00:04:17.510 --> 00:04:19.540
Because the third party Web API

93
00:04:19.540 --> 00:04:22.060
would give you that location data.

94
00:04:22.060 --> 00:04:23.880
So a description of the location,

95
00:04:23.880 --> 00:04:26.570
not just the raw coordinates.

96
00:04:26.570 --> 00:04:30.480
And then besides that, you could also use a third party API

97
00:04:30.480 --> 00:04:34.770
to display the weather for the work out time and place.

98
00:04:34.770 --> 00:04:37.640
But again, these two you can maybe tackle after

99
00:04:37.640 --> 00:04:39.770
the end of the next section,

100
00:04:39.770 --> 00:04:43.310
if you feel like improving this project even more.

101
00:04:43.310 --> 00:04:44.350
All right.

102
00:04:44.350 --> 00:04:48.190
So it would be really great to see some of these features

103
00:04:48.190 --> 00:04:50.530
actually implemented by you.

104
00:04:50.530 --> 00:04:53.710
And if you do one of them or even more,

105
00:04:53.710 --> 00:04:57.750
then make sure to share your results in the course Q&amp;A

106
00:04:57.750 --> 00:04:59.370
or even on Twitter.

107
00:04:59.370 --> 00:05:01.830
And there you can use one of the hashtags

108
00:05:01.830 --> 00:05:03.610
that I mentioned earlier.

109
00:05:03.610 --> 00:05:07.810
But anyway, that's it for this video and for the section

110
00:05:07.810 --> 00:05:09.860
and for this project.

111
00:05:09.860 --> 00:05:12.170
So once again, congratulations

112
00:05:12.170 --> 00:05:14.790
for reaching the end of this project

113
00:05:14.790 --> 00:05:17.750
and even more for sticking with this course

114
00:05:17.750 --> 00:05:20.190
all the way up to this point.

115
00:05:20.190 --> 00:05:22.950
What an amazing achievement, really.

116
00:05:22.950 --> 00:05:26.640
I cannot overstate this, and I'm really happy for you

117
00:05:26.640 --> 00:05:28.590
and for all your progress.

118
00:05:28.590 --> 00:05:31.970
And now just keep going, because the next section

119
00:05:31.970 --> 00:05:34.700
is actually one of the most important ones

120
00:05:34.700 --> 00:05:36.350
in the whole course.

121
00:05:36.350 --> 00:05:38.683
So I hope to see you there very soon.

