Portfolio Website
This portfolio website is a custom-built Django backend application designed to showcase projects, host interactive demos, and manage content dynamically through an admin interface. It serves as a long-term platform for experimenting with backend architecture, data handling, and production deployment.
Project Overview
This project is my personal software development portfolio, built with Django and designed to grow alongside my skills and projects. The site uses a PostgreSQL database for structured content, Django’s admin panel for content management, and cloud storage for media handling.
The overall focus is on simplicity, maintainability, and reliability. Django handles the core application and content architecture, while Tailwind CSS and HTMX provide a responsive interface and lightweight interactivity without requiring a large frontend framework.
Backend skills demonstrated
- Backend development with Django — models, views, URL routing, templates, reusable components, and server-side application logic
- Database design & integration — PostgreSQL, Django ORM, migrations, and admin-driven content management
-
Cloud storage integration — media handling via Backblaze B2 using
django-storages - Form handling & security — HTMX-based contact form, server-side validation, reCAPTCHA protection, and email handling
- Deployment & environments — separate development and production configuration, environment variables, static and media handling, and deployment on Render
Portfolio and project architecture
Project content is managed through Django rather than being hard-coded into individual pages. The homepage presents a curated selection of featured projects, while the dedicated projects page provides access to the complete project collection.
Shared templates and reusable project cards keep the presentation consistent across the site, while slug-based project detail pages allow each project to have its own description, links, technologies, and supporting content.
Interactive backend demos
The portfolio also hosts interactive backend demos that allow visitors to interact directly with Python implementations rather than relying only on screenshots or descriptions.
- JSON Parser Demo — validates and parses JSON input using a custom Python parser and returns feedback through the web interface
- Huffman Compression Demo — demonstrates text and file compression using a custom-built Huffman encoding implementation
These demos highlight algorithms, data processing, and server-side behavior while using the portfolio itself as the platform for presenting them.
Key challenges solved
- Configuring PostgreSQL roles, permissions, migrations, and development/production environments
- Integrating Tailwind CSS into a Django development workflow
- Implementing asynchronous contact-form handling with HTMX, validation, email, and reCAPTCHA protection
- Handling HTMX error responses and dynamically re-rendering reCAPTCHA after form replacement
- Configuring Backblaze B2 cloud storage for project media
- Building an admin-driven system for managing and curating portfolio projects
- Creating reusable templates and slug-based project detail pages
- Managing production deployment, environment configuration, and database migrations on Render
The portfolio is an ongoing project that serves both as my professional website and as a practical Django application where I can integrate and demonstrate new software development projects as I build them.
Technologies Used
- Python
- Django
- PostgreSQL
- HTMX
- Tailwind CSS
- JavaScript
- Backblaze B2
- Django-Storages
- Render Deployment