Great, as you may know, we are
approaching the end of the course.
And this one, this is the last section of the course.
We will build your 10th application.
This particular one is special.
The special thing is not about the application
itself, because every application is actually special.
The special thing about this application is
that, you'll build this one independently.
So this is in the form of a project.
You have to build this from scratch. And you
have learned all the skills throughout the course.
So the skills that are required,
to build this particular application.
And in this video, what I wanted to do
is, I want to give you a demonstration of
what this application does and then you can start
building it right away after this video.
Then in the next video, I'll show you the solution.
So I'll show you the code or the video
and explain what the code does and also the
approach, that I use to build the application.
Well now, I could have recorded these videos just as I
did with the other nine applications in the course, but I
really wanted you to do something on your own.
And that will serve you for two things.
One is that you will actually do something independently
and you will learn a lot from that.
And then second, you can use this as a portfolio.
This is quite a nice web application, but this is tough.
I mean, I would be surprised to see anyone
making this work 100%, unless you're a genius.
I really mean that.
But you should be able to make
this work, let's say at around 50%.
If you make it work 50%, then
you have really learned from the course.
So what I mean by 50%, well you may stuck somewhere
and ask for help, maybe you have an error there and
you're not being able to understand it and solve it, for
going forward or you just don't know what to do next.
So in such scenarios, you can step in and
post a question in the Q&A area.
So in the discussion area of the course.
I'll say, don't ask me right away, I mean, I like questions
but it's good for you to solve the problems yourself.
You know, Programming is hard, I mean,
often all you need is a break, like a coffee or a
tea, to just refresh your brain and make it think better.
And then you suddenly may
find yourself cracking that problem.
But if that doesn't work, then I'm here to help you.
Just drop a question and I respond within a day.
And my recommendation try to start from scratch.
Don't look right away at the code or the
lectures, that we have gone through in the course.
Instead of doing that, try to gather
your codes in a sheet of paper.
Write down some steps such as
step one, make the user interface.
Step two, build a script that creates CSV data and generates
an output, and then make the Flask structure and so on,
and then you go and implement these step by step.
If you're stuck, then it's perfectly
okay to look at the resources.
I do it all the time.
Now, what is this application?
Well, this is a Flask application that expects from
the user a CSV file, which should have at
least a column named, a named address.
For example, here is a CSV file.
[No Audio]
And you can see that, we have an Address column in there.
So the user should have a column
called Address, so named Address in there,
either with a lower or uppercase A, it doesn't matter.
So you should build your application to recognize, both
address with lowercase A and Address with uppercase A.
Now, the user can upload such file using
the Choose File button in here, and you
can see that Supermarkets was uploaded in there.
And once the user uploads that file, they'll press Submit
[No Audio]
and this table shows up.
So once the user uploads such a file, the backend
of your application, so Python script will read that file
and it will add a latitude and longitude column, which
are calculated out of the Address column.
So we're talking about geocoding and
you know how to do geocoding.
You learn that in the course, in the Pandas section.
And as you see, the result table is displayed on
the web page, once the user presses the Submit button.
And you can see the two columns in there.
And lastly, you also want to allow
the user to download the CSV version.
So a file that contain this data.
And therefore you need to display a
Download button here, as I did.
So once the user presses
Downloads, a file is downloaded.
This is a file.
We also have some empty cells in there, because Python
was not able, so the geocoding service was not able
to geocode this address to latitude and longitude.
So, yeah, you need to count for that and
just pass some non values to those cells.
Now, soon you may run into problems such
as, if the user uploads some other files,
so let's change this to Add instead of
Address, and I'll save this.
[No Audio]
So I don't have an Address column in that file anymore.
Let me upload it again like that, Submit.
And in this case, you want to show a message
there saying that, Please make sure you have an address
column in your CSV file, or something like that.
So you don't want the program to crash
to show a Flask error in there.
So, yeah, you need to try
and accept some errors in there.
And yeah, that's it. At that point, you have built a geocoding service.
I hope I was clear with the explanations,
but if you have questions, please ask them.
I wish you good luck with this project.
It will be tough but fun,
and it's all about persistence.
So if you commit to doing it, you'll
do it, the next video is dangerous, because
I'll show you the solution in there.
So please watch it as a lost resource, or
watch it to compare your finished application with mine.
And also, when you compare your solution with my
solution, don't expect them to be the same.
They will never be. I mean, there are different ways to make an application
and mine can be better, than yours or the other
way around, so please keep that in mind.
And yeah, that's what I wanted to say,
I hope you enjoyed my course.
I'd also appreciate if you left the review.
I do look at all the reviews
and I appreciate them a lot.
So, yeah, thanks a lot and I'll talk to you later.