A modern Django portfolio website for showcasing projects, skills, and information resources.
Features • Installation • Security • Structure • Usage • Technologies • Deployment
- 📂 Project portfolio with categories and filtering
- 🖼️ Image gallery support for each project
- 🔄 GitHub repository integration
- 💻 Technology showcase
- 📚 Information resources section
- 📱 Responsive design for all devices
- 🔐 Admin dashboard for content management
- 🛡️ Secure configuration management
-
Clone the repository:
git clone https://github.com/magealexstra/TheFaction.git cd TheFaction -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up configuration:
# Create a secrets.py file from the template cp thefaction/secrets_template.py thefaction/secrets.py # Edit the file with your secure settings nano thefaction/secrets.py # or use your preferred editor
-
Apply migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
-
Access the site at http://127.0.0.1:8000
The project uses a secrets.py file (ignored by Git) to store sensitive configuration:
| Setting Type | Description |
|---|---|
| 🔑 Django Secret Key | Used for cryptographic signing |
| 🗄️ Database Credentials | Username, password, host information |
| 📧 Email Settings | SMTP server details |
| 🔐 API Keys | GitHub and other external services |
⚠️ Never commit yoursecrets.pyfile to version control! The repository includes a template (secrets_template.py) that you should copy and customize with your own values.
TheFaction/
│
├── portfolio/ # Main app
│ ├── models.py # Database models
│ ├── views.py # View functions
│ ├── github_utils.py # GitHub API utilities
│ ├── templates/ # HTML templates
│ └── static/ # CSS, JS, and static files
│
├── thefaction/ # Project configuration
│ ├── settings.py # Django settings
│ ├── secrets.py # Sensitive configuration (not in repo)
│ ├── secrets_template.py # Template for secrets.py
│ └── urls.py # URL routing
│
├── requirements.txt # Project dependencies
├── .gitignore # Git ignore rules
└── README.md # Project documentation
-
🔐 Admin Panel:
- Access at
/admin/to manage content - Login with superuser credentials
- Access at
-
👨💻 Content Management:
- Add technologies, projects, and information resources
- Upload images for projects
- Link to GitHub repositories for code-based projects
- Backend: Django, Python
- Frontend: HTML, CSS, JavaScript, Bootstrap
- Database: SQLite (development), PostgreSQL (production)
- API Integration: GitHub API
For production deployment:
- Set up a PostgreSQL database
- Configure all sensitive settings in
secrets.py - Set
DEBUG = Falsein production - Use a production WSGI server (e.g., Gunicorn)
- Configure static files serving (e.g., Whitenoise or a reverse proxy)
Created with ❤️ by magealexstra