Personal Portfolio

Full Stack Project

Python Flask Tailwind CSS Pytest Docker TDD

Personal Portfolio

This portfolio website built with Flask, Python, and TDD methodology

🚀

Project Overview

Problem Statement

Professional developers need a compelling portfolio to showcase their work, skills, and experience. This portfolio demonstrates full-stack development capabilities, testing methodology, and modern DevOps practices while maintaining clean, maintainable code.

Key Features

  • Multi-page Flask application with Blueprint routing
  • Responsive design with Tailwind CSS
  • 100% test coverage with 36 comprehensive tests
  • Featured projects showcase with live demos
  • Business and developer personas highlighting dual expertise
  • Contact form with professional inquiry handling
  • Dockerized deployment with automated CI/CD
  • HTTPS with automatic SSL certificate management

Technical Implementation

Built using Flask application factory pattern with Blueprint-based routing for modularity. Implements comprehensive pytest test suite following TDD methodology. Uses Jinja2 templating with Tailwind CSS for responsive design. Deployed with Docker, GitHub Actions, and Watchtower for continuous deployment.

Backend

Python 3.13, Flask 3.0, Jinja2

Frontend

Tailwind CSS, Alpine.js, HTML5

Testing

pytest, pytest-cov, pytest-flask

DevOps

Docker, GitHub Actions, Caddy, Watchtower

Quality

pylint, black, 100% test coverage

Challenges & Solutions

Achieving 100% test coverage, implementing efficient CI/CD pipeline, managing multiple domain configurations with Caddy, and ensuring zero-downtime deployments. Addressed through comprehensive test strategy, proper Docker networking, and automated deployment workflows.

Results & Impact

Professional portfolio with 100% test coverage successfully deployed at theratoast.com. Automated CI/CD pipeline ensures all tests pass before deployment. Zero-downtime updates via Watchtower. Demonstrates both technical skills and professional presentation.