Django Miniblog Project
Role: Developer
Skills: Python, Django, Databases
The Goal
The goal of this project was to build a Content Management System to handle the backend complexities of a dynamically updating MiniBlog website using the Django (Python) framework. I focused heavily on building a coherent backend architecture and handling user-generated data.
The Architecture
Models
I designed the database using three core models:
- Bloggers: Extended the base user model to include custom bios, and join dates.
- Posts: Capturing blog text content, and Foreign Key connections to the Blogger who wrote them.
- Comments: Enables user engagement by linking content between posts and users.
Having done this as a simple demonstration for a school project, I was not required to build forms to create new blog posts, and handled post creation from the admin interface. To create the ability to make blog posts from the website, I would simply give the Blogger model permission to create posts, and create a form to handle post creation.


Templates
To maintain consistent UI features, and save time overall, every template inherits from a base-generic.html document. The index, list pages, and detail pages all extend from the generic document.



Views
To easily link information between my models and templates, I used class-based views. The list views pull information about bloggers or posts, the detail views get more in depth information, and the form collects information, validates it and connects it to the related post.

Conclusion
Building the MiniBlog project helped to bridge the gap between my design knowledge and my understanding of more in depth data management. With an understanding of both front and backend development, I can more thoroughly consider how they connect and interact with each other.