Skip to content

wahabejaz/Web-Engineering

Repository files navigation

Django Portfolio Website

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.

Features

  • 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

Technology Stack

  • Python
  • Django 5.2
  • Django Jazzmin
  • WhiteNoise
  • Gunicorn
  • Pillow
  • PyMySQL / psycopg2-binary

Repository Structure

  • core/ - main Django app containing models, views, URLs, and templates
  • portfolio/ - Django project configuration, settings, and URL routing
  • templates/ - global templates used by the site
  • static/ - CSS, JavaScript, and image assets
  • media/ - uploaded media files for profile and projects
  • requirements.txt - Python dependencies

Getting Started

Prerequisites

  • Python 3.11+ (recommended)
  • pip
  • virtualenv or equivalent environment manager

Installation

  1. Clone the repository:
git clone <REPOSITORY_URL>
cd "Web Engineering/portfolio"
  1. Create and activate a virtual environment:
python -m venv venv
# Windows PowerShell
venv\Scripts\Activate.ps1
# Windows Command Prompt
venv\Scripts\activate.bat
  1. Install dependencies:
pip install -r requirements.txt
  1. Run migrations:
python manage.py migrate
  1. Create a superuser (optional):
python manage.py createsuperuser
  1. Start the development server:
python manage.py runserver

Then open http://127.0.0.1:8000/ in your browser.

Environment Configuration

This project reads several variables from the environment:

  • DJANGO_SECRET_KEY
  • DJANGO_DEBUG
  • DJANGO_DB_ENGINE
  • DJANGO_DB_NAME
  • DJANGO_DB_USER
  • DJANGO_DB_PASSWORD
  • DJANGO_DB_HOST
  • DJANGO_DB_PORT
  • DJANGO_LOG_LEVEL

For production, set DJANGO_DEBUG to False and configure your database engine/credentials accordingly.

Deployment

This project includes configuration for deployment targets using:

  • build.sh
  • start.sh
  • Procfile
  • render.yaml

WhiteNoise is already configured for static file serving in production.

Admin Panel

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.

Notes

  • 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.

About

Responsive Django portfolio website with project showcase, admin dashboard, search functionality, and production deployment using WhiteNoise and Gunicorn.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors