Веб-сайт для уявної кондитерської "Confititeria", розроблений на Django. Дозволяє користувачам переглядати асортимент, робити замовлення, а адміністраторам — керувати продукцією та замовленнями.
Цей проєкт був створений з метою вивчення та демонстрації можливостей Django, а також для практики у веб-розробці.
Ви можете переглянути розгорнутий проект тут: http://okilkamarta.pythonanywhere.com/
- Перегляд головної сторінки з обраними товарами та інформацією про кондитерську.
- Детальний перегляд асортименту з можливістю пошуку за назвою та фільтрації за ціною.
- Оформлення замовлення через зручну форму.
- Отримання інформації про компанію на сторінці "Про нас".
- Керування товарами: додавання, редагування, видалення позицій асортименту, завантаження зображень.
- Керування замовленнями: перегляд деталей замовлень, зміна статусів.
Backend:
- Python 3.8+
- Django 5.1+
- SQLite
Frontend:
- HTML5
- CSS3 (Flexbox, Grid, змінні)
- Bootstrap 5
- JavaScript
Інструменти:
python-dotenvPillowdjango-cleanup- Git
- Python 3.8+ — Завантажити
- Git — Завантажити
- Windows (або адаптація для Linux/macOS)
git clone https://github.com/OkayMarta/pastry-shop.git
cd pastry-shopWindows (через скрипт): Windows (через скрипт): Запустіть:
setup_env.batLinux/macOS або вручну:
# Створення віртуального середовища
python -m venv venv
# Активація
# Linux/macOS:
source venv/bin/activate
# Windows (cmd.exe):
venv\Scripts\activate.bat
# Windows (PowerShell):
# .\venv\Scripts\Activate.ps1
# Встановлення залежностей
pip install -r requirements.txtDJANGO_SECRET_KEY='your_very_secret_django_key_here_for_production_or_a_random_one_for_dev'
DJANGO_DEBUG=True
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost
EMAIL_HOST_USER='your-email@gmail.com'
EMAIL_HOST_PASSWORD='your-gmail-app-password' # Для Gmail потрібен "Пароль додатка"
ADMIN_EMAIL='your-admin-email@example.com'Windows:
reset_db.batLinux/macOS або вручну:
python manage.py makemigrations shop
python manage.py migrate
python manage.py createsuperuserАдреса: http://127.0.0.1:8000/admin/
Windows:
run_server.batІнші ОС або вручну:
python manage.py runserverНатисніть Ctrl+C в терміналі.
pastry-shop/
├── my_bakery/
│ ├── settings.py
│ ├── urls.py
│ └── ...
├── shop/
│ ├── models.py
│ ├── views.py
│ ├── forms.py
│ ├── admin.py
│ ├── urls.py
│ └── templates/shop/
├── static/
├── media/
├── venv/
├── manage.py
├── requirements.txt
├── .env (локально)
├── .gitignore
└── *.bat
- Python або pip не розпізнаються:
Переконайтеся, що Python додано до системну змінну середовищаPATH.
- Віртуальне середовище неактивне:
Перед виконаннямpip installабоpython manage.pyпереконайтеся, що середовище активовано.
- Невірні дані у
.env:
Перевірте значення змінних:EMAIL_HOST_USEREMAIL_HOST_PASSWORDADMIN_EMAIL
- Gmail:
- Використовуйте Пароль додатка, а не звичайний пароль.
- Перевірте налаштування безпеки акаунта Google.
- Брандмауер або антивірус:
Можуть блокувати SMTP-з’єднання.
- Бібліотека Pillow не встановлена:
Виконайтеpip install Pillow. - Папка
media/відсутня або не має прав доступу:
Переконайтеся, що вона існує і доступна для запису. - Неправильні налаштування у Django:
Перевірте наступне:- У
my_bakery/settings.py:MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media'
- У
my_bakery/urls.py:from django.conf import settings from django.conf.urls.static import static # ... ваші основні urlpatterns urlpatterns = [ # ... ] if settings.DEBUG: # Важливо додати цю перевірку urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- У
Цей проєкт є результатом спільної навчальної роботи. Ми завжди відкриті до ідей та покращень! Якщо у вас є пропозиції, будь ласка, створюйте Issue або Pull Request.
- Окілка Марта - [Team Lead, Backend Developer]
- Ніжегородова Анастасія - [UI/UX Designer]
- Сабат Ірина - [Frontend Developer]
- Круглова Анастасія - [QA, Frontend Developer]



