Skip to content

Ssshiponu/portfolio

Repository files navigation

Django Portfolio Website

A professional, open-source Django portfolio website with admin-managed content and modern responsive design. Perfect for developers, designers, and creative professionals looking to showcase their work.

🌟 Features

  • Effortless Setup: Designed for non-developers also with a simple, guided installation process
  • Responsive Design: Modern, mobile-first layout with light/dark theme support
  • Content Management: Intuitive admin dashboard for managing projects, skills, and personal information
  • SEO Ready: Built-in SEO optimization with robots.txt and sitemap.xml
  • Free Hosting: Designed for easy deployment on PythonAnywhere
  • Customizable: Flexible template system and modular design

🎯 Live Demo

View the live demo at: mohinuddinshipon.pythonanywhere.com

πŸ› οΈ Technology Stack

  • Backend: Django 5.x
  • Frontend: HTML5, CSS3, TailwindCSS, JavaScript
  • Database: SQLite (It is more than enough)
  • Hosting: PythonAnywhere (free)
  • Python: 3.10+ (recommended: 3.12+)

πŸš€ Quick Start

Choose your deployment method:

Option A: Direct Deployment (Recommended for beginners or None developers)

Deploy directly to PythonAnywhere without local setup - perfect for content-only customization.

Option B: Local Development

Set up locally for design customization and advanced features.


🌐 PythonAnywhere Deployment

Prerequisites

  • Free PythonAnywhere account (signup here)
  • Your username will determine your domain: username.pythonanywhere.com

Deployment Steps

  1. Create Web App

    • Go to Web tab β†’ Add a new web app
    • Select: Django β†’ Python 3.12 β†’ Name: portfolio
  2. Install via Console

    • Navigate to Consoles tab β†’ Start Bash console
    • Run the following commands:
    rm -rf portfolio/
    git clone https://github.com/ssshiponu/portfolio
    cd portfolio
    ./setup.sh
  3. Activate Your Site

    • Return to Web tab β†’ Click Reload
    • Your site is now live at username.pythonanywhere.com

First-Time Setup

  1. Visit username.pythonanywhere.com/admin
  2. Login with default credentials:
    • Username: admin
    • Password: shipondjango
  3. ⚠️ Important: Change your password immediately after first login

πŸ“Š Content Management

Admin Dashboard

Access your admin panel at /admin to manage:

  • Hide Section: from the Sections, you can hide any section.
  • Personal Profile: Bio, contact info, social links
  • Projects: Portfolio items with descriptions, images, and links
  • Skills: Technical skills with proficiency levels
  • Development Process: Your workflow and methodologies
  • Site Metadata: SEO settings and site information

Content Guidelines

  • Images: Use high-quality images (recommended aspect-ratio 4:3 and minimum height 320px for projects)
  • Descriptions: You can add html formate in description.
  • Links: Ensure all external links are working and use HTTPS
  • Skills: Organize skills by categories for better presentation

πŸ’» Local Development Setup

1. Clone Repository

git clone https://github.com/ssshiponu/portfolio.git
cd portfolio

2. Create Virtual Environment

Windows:

python -m venv venv
venv\Scripts\activate

macOS/Linux:

python3 -m venv venv
source venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

4. Environment Configuration

Generate Secret Key

python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

Set Environment Variables

Option 1: .env File (Easy Recommended) Create .env in project root add this code:

SECRET_KEY='your_generated_secret_key_here'
DEBUG='True'

Option 2: Environment Variables

Windows (CMD):

set SECRET_KEY=your_generated_secret_key_here

Windows (PowerShell):

$env:SECRET_KEY="your_generated_secret_key_here"

macOS/Linux:

export SECRET_KEY=your_generated_secret_key_here

5. Prepare Static Files

python manage.py collectstatic

6. Run Development Server

python manage.py runserver

Visit http://127.0.0.1:8000 to view your site.


Production Settings

For production deployment:

  1. Set DEBUG=False in environment
  2. Configure ALLOWED_HOSTS
  3. Enable HTTPS

🀝 Contributing

We welcome contributions! Please follow these steps:

How to Contribute

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow PEP 8 style guidelines
  • Add comments for complex logic
  • Update documentation for new features
  • Test your changes thoroughly

Reporting Issues

Open an issue with:

  • Clear description of the problem
  • Steps to reproduce
  • Expected vs actual behavior
  • Screenshots (if applicable)

πŸ“š Resources


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸŽ‰ Ready to Build Your Portfolio?

Start showcasing your work professionally with this Django portfolio website. Whether you're a developer, designer, or creative professional, this platform provides everything you need to create an impressive online presence.

Questions? Open an issue or reach out through the repository discussions.


Built with ❀️ using Django