Система учета продуктов питания с контролем сроков годности
Производство - deepseek. Нет, мне не стыдно делать микроутилиту для личных нужд нейросетью.
FreshTracker - это простое и удобное веб-приложение для учета продуктов питания с автоматическим контролем сроков годности. Приложение помогает следить за запасами на кухне и вовремя использовать продукты до истечения их срока годности.
- ✅ Добавление продуктов с указанием типа, веса и срока годности
- 🗑️ Удаление продуктов из базы данных
- 🎨 Цветовая индикация статусов:
- 🔴 Красный - просроченные продукты
- 🟡 Желтый - скоро истекает (в пределах порога)
- 🟢 Зеленый - нормальный срок
- ⏰ Умные сроки годности - автоматические настройки по типам продуктов
- 📱 Адаптивный интерфейс - работает на любых устройствах
- 🔒 Защита данных - запрет прямого доступа к базе данных
- PHP 8.0 или выше
- SQLite3
- Веб-сервер (Apache/Nginx) с поддержкой PHP
- Браузер с поддержкой JavaScript
- Скачайте файлы проекта в папку веб-сервера:
cd /var/www/html/
git clone <repository-url> freshtracker- Настройте права доступа:
chmod 755 freshtracker/
chmod 644 freshtracker.sqlite- Настройте веб-сервер (пример для Nginx):
server {
listen 80;
server_name your-domain.com;
root /var/www/freshtracker;
index index.php;
# Защита базы данных
location ~* \.sqlite$ {
return 404;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
access_log /var/log/nginx/freshtracker_access.log;
error_log /var/log/nginx/freshtracker_error.log;
}- Откройте в браузере:
http://your-domain.com/
В файле index.php в начале кода можно изменить положение кнопки:
$config = [
'button_position' => 'right', // 'center' или 'right'
];Приложение автоматически подставляет рекомендуемые значения:
| Тип продукта | Вес по умолчанию | Срок годности |
|---|---|---|
| 🍚 Крупы | 0.9 кг | 1 год |
| 🍝 Макароны | 0.5 кг | 6 месяцев |
| 🥫 Консервы | 0.4 кг | 1 год |
| 🫒 Масло | 0.9 кг | 1 месяц |
| 🌾 Мука | 1.0 кг | 1 год |
| 🌶️ Специи | 0.1 кг | 6 месяцев |
| ☕ Чай/Кофе | 0.25 кг | 6 месяцев |
| 📦 Разное | 1.0 кг | 30 дней |
- Нажмите кнопку "➕ Добавить продукт"
- Заполните форму:
- Наименование - название продукта
- Тип - выберите категорию (автоматически подставит вес и срок)
- Вес - укажите количество в кг
- Срок годности - используйте кнопки быстрого ввода или календарь
- Порог предупреждения - за сколько дней предупреждать о истечении срока
- Кнопки: +3 дн, +7 дн, +14 дн, +30 дн, +60 дн
- По умолчанию - устанавливает рекомендуемый срок для выбранного типа
- Календарь - для точного выбора даты
- Сортировка по дате истечения срока (от ближайших к дальним)
- Цветовая индикация статуса
- Возможность удаления продуктов
CREATE TABLE products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
weight REAL NOT NULL,
expiry_date TEXT NOT NULL,
type TEXT NOT NULL,
threshold_days INTEGER DEFAULT 7
);- Backend: PHP 8.0+ с PDO
- Database: SQLite3
- Frontend: Vanilla JavaScript, CSS3, HTML5
- Date Picker: Flatpickr
- Styling: Custom CSS с градиентами
- Защита от XSS инъекций
- Валидация входных данных
- Запрет прямого доступа к
.sqliteфайлам - Подготовленные SQL запросы
- Проверьте права на запись в папке
- Убедитесь, что включено расширение SQLite3 в PHP
- Проверьте ошибки PHP в логах
- Убедитесь, что включен JavaScript в браузере
- Проверьте подключение к интернету (CDN для flatpickr)
- Или загрузите flatpickr локально
MIT License - свободное использование и модификация.
Для внесения изменений:
- Клонируйте репозиторий
- Внесите изменения в
index.php - Протестируйте функциональность
- Создайте pull request
Свежие продукты - здоровое питание! 🥗