Portfolio Website
This portfolio site serves as my main platform for showcasing projects, publishing demos, and managing content through Django’s backend. It’s a clean, lightweight, and scalable foundation built to grow with my development work.
Project Overview
For recruiters: This portfolio website demonstrates my ability to build clean, scalable backend systems using Django, integrate cloud storage, manage dynamic content, and deliver a stable full-stack application. The site is lightweight, reliable, and intentionally backend-focused, showcasing my preference for structuring data, building reusable systems, and developing practical developer tools.
Key skills demonstrated include:
- Backend development with Django: models, views, content architecture, email handling, and cloud integrations.
- Database-driven content: all projects, profile information, skills, and images are stored in PostgreSQL and editable directly through Django’s admin panel.
- Cloud storage with Backblaze B2: media hosting configured using django-storages.
- Security & contact handling: Google reCAPTCHA v3, custom AJAX contact form, and backend email processing.
- Simplicity & performance: minimal JavaScript, Tailwind CSS, and clean page rendering.
This project highlights my strengths as a backend developer: working with databases, Django’s internals, scalable architecture, and clean server-side logic.
──────────────────────────────────────────────
Project Overview
This portfolio website is the central hub for all my development work. I built it as a Django application with a customizable backend so I can easily add new projects, update descriptions, upload images, and manage content without touching HTML. All project data is stored in PostgreSQL and rendered dynamically, making the site simple to maintain and extend.
The design is intentionally minimal and built with Tailwind CSS, keeping all styling within templates and reducing the need for a dedicated frontend framework. I used only a few small JavaScript scripts to handle the mobile menu and the contact form, keeping performance high and the site lightweight.
The contact form is powered by Django on the backend, with AJAX responses and detailed server-side validation. I integrated Google reCAPTCHA v3 to block bot submissions after receiving unwanted spam. With this setup, form submissions are processed without page reloads and emailed directly to me via Django’s send_mail function.
──────────────────────────────────────────────
Key Challenges I Solved:
- Configuring PostgreSQL — setting up roles, permissions, and local/production environments for Django ORM.
- Integrating Tailwind with Django — resolving conflicts between Node and Python, rebuilding environments, and configuring build steps.
- Cloud storage with Backblaze B2 — configuring django-storages and ensuring uploaded media is served correctly in development and production.
- Implementing a robust contact system — AJAX form handling, backend validation, email sending, and reCAPTCHA integration to block bots.
- Designing database-driven content — structuring models so projects, skills, images, and descriptions can be updated entirely through the admin panel.
- Managing deployment on Render — integrating migration steps, static build steps, and ensuring stable releases.
──────────────────────────────────────────────
Future Enhancements
The portfolio is designed to grow with my development work. Planned updates include:
- Interactive demo pages for tools like the JSON Parser and Huffman Compression Tool.
- Dynamic showcases for future Django website template tiers (Tier 1, 2, and 3 examples).
- Customizable site settings — move background image, accent colors, and section titles to admin-editable fields.
- REST API to serve data to future React/Next.js frontends.
This portfolio serves as more than a website — it’s a long-term platform for displaying my backend development, algorithms work, and future tools and frameworks.
Technologies Used
- Python
- Django
- PostgreSQL
- Tailwind CSS
- JavaScript
- Backblaze B2
- Django-Storages
- Render Deployment