🚀 Live Demo : https://portfolio.roshanproject.site
A modern, fully responsive portfolio website built with Django featuring dynamic content management, interactive UI, and a comprehensive admin dashboard.
- Fully Responsive Design - Mobile-first approach with modern UI/UX
- Interactive Animations - Smooth transitions and hover effects
- Modern Glassmorphism UI - Contemporary design with depth and blur effects
- Mobile Navigation - Hamburger menu with overlay system
- Dynamic Content - Real-time content updates without page refresh
- Touch Optimized - Enhanced touch interactions for mobile devices
- Django 5.2.5 Framework - Latest Django with enhanced security
- MySQL Database - Robust relational database management
- Admin Dashboard - Comprehensive content management system
- REST API - Django REST Framework integration
- Email Integration - Contact form with SMTP functionality
- File Upload System - Resume, images, and document management
- Environment Variables - Secure credential management with python-dotenv
- HTTPS Enforcement - SSL/TLS configuration for production
- CSRF Protection - Cross-site request forgery protection
- XSS Prevention - Cross-site scripting security measures
- Secure Headers - Security headers for enhanced protection
- Input Validation - Comprehensive form validation and sanitization
- Dynamic Projects - Showcase projects with images, descriptions, and links
- Blog System - Full-featured blog with categories and rich text editor
- Skills Management - Interactive skills display with proficiency levels
- Experience Timeline - Professional experience with company details
- FAQ Section - Expandable FAQ system with categories
- Resume Management - PDF upload and display functionality
- Python 3.8 or higher
- pip (Python package installer)
- MySQL 8.0 or higher
- Gitgit clone https://github.com/logicbyroshan/portfolio-v1.0.git
cd portfolio-v1.0# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txt# Copy environment template
cp .env.example .env
# Generate secure secret key
python generate_secret_key.py
# Edit .env file with your configurations# Create MySQL database
mysql -u root -p
CREATE DATABASE portfolio_db;
CREATE USER 'portfolio_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON portfolio_db.* TO 'portfolio_user'@'localhost';
FLUSH PRIVILEGES;
# Run migrations
python manage.py migrate
# Create superuser (optional)
python manage.py createsuperuserpython manage.py collectstaticpython manage.py runserverVisit http://127.0.0.1:8000/ in your browser.
portfolio-v1.0/
├── 📁 myportfolio/ # Django project settings
│ ├── __init__.py
│ ├── asgi.py # ASGI configuration
│ ├── settings.py # Django settings (production-ready)
│ ├── urls.py # Main URL configuration
│ └── wsgi.py # WSGI configuration
├── 📁 app/ # Main Django application
│ ├── 📁 migrations/ # Database migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_remove_project_features...
│ │ └── ...
│ ├── 📁 static/ # Static files (CSS, JS, Images)
│ │ ├── 📁 css/
│ │ │ ├── style.css # Main stylesheet
│ │ │ ├── index.css # Homepage styles
│ │ │ ├── blogs.css # Blog-specific styles
│ │ │ └── ...
│ │ ├── 📁 js/
│ │ │ ├── index.js # Main JavaScript functionality
│ │ │ └── contact.js # Contact form handling
│ │ └── 📁 images/ # Static images
│ │ ├── 📁 icons/
│ │ ├── 📁 others/
│ │ └── 📁 stock/
│ ├── 📁 templates/ # HTML templates
│ │ ├── portfolio-base.html # Base template
│ │ ├── portfolio-landing-page.html # Homepage
│ │ ├── blogs.html # Blog listing
│ │ ├── blog-detail.html # Blog detail page
│ │ ├── projects.html # Projects showcase
│ │ ├── project-detail.html # Project detail page
│ │ ├── skills.html # Skills page
│ │ ├── experiences.html # Experience timeline
│ │ ├── faqs.html # FAQ page
│ │ └── filters.html # Reusable filter component
│ ├── admin.py # Django admin configuration
│ ├── apps.py # App configuration
│ ├── context_processors.py # Template context processors
│ ├── forms.py # Django forms
│ ├── models.py # Database models
│ ├── urls.py # App URL patterns
│ └── views.py # View functions
├── 📁 media/ # User uploaded files
│ ├── 📁 blogs/ # Blog images
│ ├── 📁 projects/ # Project images
│ │ ├── 📁 images/
│ │ └── 📁 features/
│ ├── 📁 skills/ # Skill icons & certificates
│ │ ├── 📁 icons/
│ │ └── 📁 certificates/
│ ├── 📁 experience/ # Company logos
│ └── 📁 resumes/ # Resume PDFs
├── 📁 staticfiles/ # Collected static files (production)
├── 📁 stock-images/ # Demo screenshots & assets
│ ├── Portfolio Thumb.jpg # Cover image
│ ├── heross.png # Hero section screenshot
│ ├── skillss.png # Skills section screenshot
│ ├── blogsss.png # Blog page screenshot
│ └── contactss.png # Contact form screenshot
├── 📁 logs/ # Application logs
│ └── .gitkeep
├── 📄 manage.py # Django management script
├── 📄 requirements.txt # Python dependencies
├── 📄 .env.example # Environment variables template
├── 📄 .gitignore # Git ignore rules
├── 📄 generate_secret_key.py # Secret key generator utility
├── 📄 DEPLOYMENT.md # Deployment instructions
└── 📄 README.md # Project documentation
# Django Configuration
SECRET_KEY=your-secure-secret-key-here
DEBUG=False
ALLOWED_HOSTS=portfoliov1.roshanproject.site,www.roshanproject.site
# Database Configuration
DB_NAME=portfolio_db
DB_USER=portfolio_user
DB_PASSWORD=your_secure_password
DB_HOST=localhost
DB_PORT=3306
# Email Configuration
EMAIL_HOST=smtp.yourdomain.com
EMAIL_PORT=465
EMAIL_USE_SSL=True
EMAIL_HOST_USER=contact@yourdomain.com
EMAIL_HOST_PASSWORD=your_email_password
DEFAULT_FROM_EMAIL=contact@yourdomain.com
# Security Settings
SECURE_SSL_REDIRECT=True
SESSION_COOKIE_SECURE=True
CSRF_COOKIE_SECURE=TrueThis project is licensed under the MIT License — see the LICENSE file for details.



