Мини CRM — отличный проект для портфолио или практики GUI. Он позволяет объединить интерфейс, работу с базой данных и базовую архитектуру приложения.
Что такое CRM?
CRM (Customer Relationship Management) — система для управления клиентами, сделками и взаимодействиями.
В мини-версии можно реализовать:
-
📋 Список клиентов
-
➕ Добавление / редактирование / удаление
-
🔎 Поиск по имени или телефону
-
🗂 Статус клиента (новый, в работе, закрыт)
-
📝 Заметки
-
💾 Сохранение данных в SQLite
Структура проекта
mini_crm/
│
├── main.py
├── database.py
├── ui/
│ ├── main_window.py
│ ├── client_form.py
│
└── assets/
Интерфейс (CustomTkinter)
Будем использовать CustomTkinter для современного дизайна:
-
CTk
-
CTkFrame
-
CTkButton
-
CTkEntry
-
CTkTextbox
-
CTkOptionMenu
-
CTkTabview
Главный экран:
----------------------------------
| Поиск | [+ Добавить] |
----------------------------------
| Список клиентов |
| ---------------------------- |
| Иванов | 8900... | В работе |
| ... |
----------------------------------
Работа с базой (SQLite)
Пример структуры таблицы:
CREATE TABLE clients (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT,
email TEXT,
status TEXT,
notes TEXT
);
Архитектура
Лучше использовать простую MVC-структуру:
-
Model → database.py
-
View → UI (CustomTkinter)
-
Controller → логика между ними
Это сделает код масштабируемым.
Минимальный пример окна CRM
import customtkinter as ctk
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
class CRMApp(ctk.CTk):
def __init__(self):
super().__init__()
self.title("Mini CRM")
self.geometry("800x500")
self.search_entry = ctk.CTkEntry(self, placeholder_text="Поиск клиента...")
self.search_entry.pack(padx=20, pady=10, fill="x")
self.add_button = ctk.CTkButton(self, text="Добавить клиента")
self.add_button.pack(pady=5)
self.clients_frame = ctk.CTkFrame(self)
self.clients_frame.pack(padx=20, pady=10, fill="both", expand=True)
app = CRMApp()
app.mainloop()
Что можно добавить для «вау-эффекта»
-
🌗 Переключатель темы (light/dark)
-
📊 График количества клиентов по статусам
-
📁 Экспорт в Excel
-
🔐 Авторизация
-
📅 История взаимодействий
-
🔔 Напоминания
Автор: Евгений Морковин




0 комментариев
Оставьте комментарий
Комментарии