How it all started ?

I always wanted to learn backend web development to compliment the front-end only websites I built to make them more dynamic, interactive and complex (?). I initially experimented with ExpressJS but came to the conclusion that I lacked enough JS knowledge to make complex stuff in/with it. Later, a friend of mine suggested me to try Ruby on Rails (through The ODIN Project of course) but I never quite understod the Model-View-Controller design pattern / approach it advocated. Also, I remained hesitant to get the Ruby syntax into my framework.

Enter Django.

initially Flask for me though.

I was pretty good with python and the thought of using it in my websites to implement logic was sweet. At this time, I was only beginning to read through the official docs when another good friend of mine told me about this book (Tango with Django) to learn Django and how awesome and practical it was in teaching Django from the groundup.

I had never read a book for the sake of learning some new tech and was really curious as to how things would be. I had plenty of time to devote to learning Django as my Junior Year had just ended and we had a month long break until Senior Year started. So I started reading the book…

And Oh Boy! it was really EPIC. It provided just the right amount of theory in each meticulously divided chapter to cover all of Django and also had exercises to implement what we had learnt in each chapter and even a testing script to check our implementation. It made the learning curve way easier than what the official docs offered. Enough about the book, let’s dive into what I did over my ~3 week journey.

Stuff Learnt.

I kept track of my daily chapterwise progress through git and the commits were done after passing all tests. The commit history allows me to see how I increasingly made my django application from complex starting from the groundup. Here is a brief overview of the awesome new concepts I learnt:

  • Basics of Django: setup, architecture, views, urls, etc. // Code then
  • Template Engine, static / media files, DRY Approach // Code then
  • Database using ORM, data management w/ SQL and Models // Code then
  • Complex views and connections with models & templates, forms and workflow // Code then
  • Custom user authentication views & handling, User model, class-based views // Code then
  • Cookies, fundamentals of JQuery, AJAX for CRUD, search functionality // Code then
  • Bulma (themed entire site from skeleton –> bulma) // Code then
  • deployment using PythonAnywhere and Progressive Web Apps.

Putting it all together.

Not gonna lie, the most satisfying part was the deployment and asking my friends to test it out. I’m thankful to those who tested out my app by creating accounts on this Social Media Web App Barebones (That’s what I call it to make it sound cool). I have a few other ideas for things I want to make with Django but they are still a WIP.

Preview the website here