Just as I was able to finish the Flask + MySQL course, the week came to a close. It was a tight race to finish the course by today and meet the goal. I have plenty of holds on my time so I'm feeling pretty satisfied with the progress I've achieved this week. This, in addition to the progress made in various projects, and keeping up with the non-technical growth has me feeling pretty pumped going into next week.
<usual_enterance> If you're new here I'm creating this blog series as I go from coding newbie to working in web3. I'm creating this to reflect on the technical and non-technical growth and to leave it behind for others who might be interested in how they can follow a similar path. </usual_enterance>
Flask + MySQL
The Flask + MySQL course shows us how to combine all the components we've learned so far together to create functioning web applications with a Python stack.
Avoiding Circular Imports
Circular imports break code and are caused when we import classes into each other. To avoid this issue, we should import files instead.
Basic Form Validations
Data should be validated to ensure it is not empty or bad in our database. Validation centers around if/else statements with functions that produce TRUE / FALSE responses.
Pattern Validation
Achieved via regular expression or regex, pattern validation ensures that input matches a specific pattern like that of an email or password.
Securing Passwords
Basic security was reviewed in this section for securing passwords. Understanding that hashing is good, but not good enough even if salt is included. Bycrypt is the way to go (I'm adding this, obviously with blockchain we want to sign in via wallets because that would be even better). Bycrypt is a hashing algorithm but it was designed to slow the hacker down in their attempt to access.
Associating Logged-In Users
Foreign keys in the database allow for associated information to logged-in users. Associated data will be need to exist in the model files for both the user and the thing needing association (for example, a tweet).
Projects
I've got several projects going on at the moment, but here are the three I made progress on this week.
Bootcamp Flask + MySQL Assignments
Tagline: This project is the collection of assignments for the Flask + MySQL course.
The repo for the Flask + MySQL course is completed and all of the assignments have been uploaded. This project is closed as I am moving on to the next course.
The repo.
Personal Portfolio Website
Tagline: The personal portfolio website hosts all relevant information to my project and professional history as well as some additional information for people looking to learn more about me.
Info
The repo.
Doors vs Wheels
Tagline: A TA from the Coding Dojo and I are building a website that is requesting data from users about how many doors and wheels they have in thier homes as part of a TikTok trend.
This week, I built out the SQL ERD and created the models and classes for user accounts and for the counting of doors and wheels. We are doing some light restructuring of what the webpage will look like and how we are collecting data so I am holding off on building the controllers and finalizing some class methods until we have it nailed down.
The repo.
What's Next?
Up next this week, I'm starting the Ajax course to further the full stack development understanding of web applications. The monster at the end of the hall is the final exam, this opens up Friday and I am far enough in the course that I will be allowed to take my first attempt at this time. I'd be lying if I said that I wasn't nervous, despite the success I've had and the extra practice from the Doors vs Wheels and Personal Portfolio projects. I have three attempts to achieve a high enough score to pass and the deadline is the final Wednesday of April. I'll be giving the exam the first attempt on Saturday, we have 24 hours to complete it.
If you'd like to join the learning community I'm building on Discord for web3, you can find the link for that here. It's a space that I am trying to build for myself and others to share their growing knowledge of all things web3.
You can also find me here:
LinkedIn | GitHub | Twitter | My Website