Now it's time to write some code. Look at the list of requirements below for this project. Just like a real client project, the front-end has already been built for you (If you have more time/want more practice with HTML/Bootstrap you can build the entire project from scratch, just create a new empty PyCharm project). But the main goal of today is to ensure that you are fully comfortable with Flask-WTF, Bootstrap-Flask, Bootstrap classes and do a bit of revision on csv manipulation.


Requirements

HINT: Think about adding the bootstrap blocks to the base.html and linking to the stylesheet.



HINT: All location links have the first 4 characters as "http".




HINT: https://flask-wtf.readthedocs.io/en/1.0.x/quickstart/

https://bootstrap-flask.readthedocs.io/en/stable/macros/#render-form


HINT: https://wtforms.readthedocs.io/en/2.3.x/validators/

How to switch off client-side (browser) validation with quick_forms: https://stackoverflow.com/a/61166621/10557313




As always remember that the learning happens when you're stuck and solve your problems. The learning doesn't happen in tutorials, it happens when you struggle and overcome your struggles. When you show your struggles who's boss!

So I recommend at least spending 1 hour on this project to write the code and debug. I know it can be frustrating when you feel like you've been stuck on step 1 for half an hour. You feel super unproductive and start questioning your abilities. Don't worry. This happens to the best of us. Just take a break, go for a walk, eat something and come back to the code. You'll be surprised how many breakthroughs you'll make this way.

Only check the solution when you've given the project enough time or if you want to check your solution against mine. (Remember there are multiple ways of doing the same thing, so the sample solution is not the only way to complete this project).


You can download the complete SOLUTION code in this lesson's resources.