A responsive Django portfolio website built with Django 5.2 and Jazzmin admin styling. This project showcases personal profile, projects, and contact functionality, and is configured for local development as well as production deployment with WhiteNoise and Gunicorn.
- Home page with project listings and introductory content
- Project detail page for each portfolio item
- Search results page for project discovery
- About page and contact functionality
- Media file support for profile images, project images, and resume uploads
- Jazzmin-powered admin dashboard for easy management
- Static asset handling via WhiteNoise
- SQLite default development database with optional MySQL/PostgreSQL support
- Python
- Django 5.2
- Django Jazzmin
- WhiteNoise
- Gunicorn
- Pillow
- PyMySQL / psycopg2-binary
core/- main Django app containing models, views, URLs, and templatesportfolio/- Django project configuration, settings, and URL routingtemplates/- global templates used by the sitestatic/- CSS, JavaScript, and image assetsmedia/- uploaded media files for profile and projectsrequirements.txt- Python dependencies
- Python 3.11+ (recommended)
- pip
- virtualenv or equivalent environment manager
- Clone the repository:
git clone <REPOSITORY_URL>
cd "Web Engineering/portfolio"- Create and activate a virtual environment:
python -m venv venv
# Windows PowerShell
venv\Scripts\Activate.ps1
# Windows Command Prompt
venv\Scripts\activate.bat- Install dependencies:
pip install -r requirements.txt- Run migrations:
python manage.py migrate- Create a superuser (optional):
python manage.py createsuperuser- Start the development server:
python manage.py runserverThen open http://127.0.0.1:8000/ in your browser.
This project reads several variables from the environment:
DJANGO_SECRET_KEYDJANGO_DEBUGDJANGO_DB_ENGINEDJANGO_DB_NAMEDJANGO_DB_USERDJANGO_DB_PASSWORDDJANGO_DB_HOSTDJANGO_DB_PORTDJANGO_LOG_LEVEL
For production, set DJANGO_DEBUG to False and configure your database engine/credentials accordingly.
This project includes configuration for deployment targets using:
build.shstart.shProcfilerender.yaml
WhiteNoise is already configured for static file serving in production.
Access the Django admin at:
http://127.0.0.1:8000/admin/
Use the superuser account created during setup to manage projects, profile content, and site data.
- Media files are served from
/media/during development. - Static files are collected into
staticfiles/for production use. - The project is configured to use SQLite by default but supports MySQL/PostgreSQL through environment variables.