📝 Django Portfolio Blog
Blog stworzony w Django prezentujący projekty
Aplikacja została zaprojektowana jako mojego portfolio. Głównym celem było zaprezentowanie umiejętności w zakresie backendu, pracy z bazą danych oraz integracji z frameworkiem Django i biblioteką Tailwind (z użyciem DaisyUI).
Umożliwia ona dynamiczne filtrowanie projektów, zarządzanie tagami i statusami oraz prezentację szczegółowych informacji o każdym projekcie.
Dodatkowo mogę prezentowac moje inne projekty, które są dostępne w repozytorium GitHub. Blog posida także stonę o mnie, gdzie można znaleźć moje dane kontaktowe oraz informacje o moim doświadczeniu zawodowym.
Na stronie głównej widoczny jest timeline projektów z podziłem na ich status: Planning, Ongoing, Completed.
🔧 Technologie i funkcjonalności
⚙️ Technologie
- Python 3.x
- Django
- PostgreSQL
- Django Templates + TailwindCSS + DaisyUI
- Gunicorn
- Docker (częściowo używany)
🚀 Funkcjonalności
- Dynamiczne filtrowanie projektów
- System statusów i tagów
- Oddzielne podstrony dla projektów
- Baza danych PostgreSQL jako magazyn danych
- Responsywny design
- Ciemny i jasny motyw
📁 Struktura projektu
Struktura projektu jest zgodna z konwencjami Django z podziałem na aplikacje i foldery statyczne oraz szablonowe.
Frontend oparty na TailwindCSS i DaisyUI zapewnia responsywny i nowoczesny wygląd.
my_django_portfolio/
├── main/
│ ├── static/
│ ├── templates/
│ ├── models.py
│ ├── views.py
│ ├── urls.py
│ └── ...
├── personal_portfolio/
│ ├── settings.py
│ ├── urls.py
│ └── ...
├── templates/
├── requirements.txt
└── tailwind.config.js
🧱 Architektura projektu (Model - View - Template)
Architektura projektu oparta na wzorcu MVC (Model - View - Template) zapewnia separację logiki aplikacji, widoku i szablonów. MVT (Model - View - Template) to podejście stosowane w Django, które jest podobne do MVC, ale z pewnymi różnicami. Model odpowiada za interakcję z bazą danych, widok obsługuje logikę aplikacji, a szablony generują HTML na podstawie danych. Dzięki temu projekt jest łatwy do rozbudowy i utrzymania, a także umożliwia łatwe dodawanie nowych funkcjonalności.
🧠 Model
- Reprezentacja projektów w bazie danych
- Obsługa tagów i statusów
🎨 Widok
- Widoki listy projektów
- Szczegóły projektu
- Dynamiczne filtrowanie
📄 Template
- Django Templates
- Tailwind + DaisyUI
- Responsywny design
💻 Uruchomienie lokalne
Aby uruchomić projekt lokalnie, sklonuj repozytorium i zainstaluj zależności:
git clone https://github.com/stokuj/my_django_portfolio.git
cd my_django_portfolio
python -m venv venv
source venv/bin/activate # Linux
venv\Scripts\Activate.ps1 # Windows
pip install -r requirements.txt
W pliku `settings.py` skonfiguruj połączenie z bazą danych PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'twoja_baza',
'USER': 'twoj_uzytkownik',
'PASSWORD': 'twoje_haslo',
'HOST': 'localhost',
'PORT': '5432',
}
}
Wykonaj migracje i uruchom serwer lokalny:
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
- Wymagany Python 3.x
- PostgreSQL uruchomiony lokalnie
- Należy utwozyć bazę danych o nazwie `twoja_baza`
- Skonfiguruj plik `settings.py`