Zaawansowany system zarządzania magazynem zbudowany w Pythonie z użyciem PyQt6. Aplikacja zapewnia intuicyjny interfejs do kontroli i monitorowania operacji magazynowych, zarządzania dokumentami, zarządzania robotami AGV/AMR oraz edycji map magazynów.
- 🤖 Zarządzanie Robotami - Ręczna kontrola robotów AGV/AMR z możliwością programowania tras
- 📦 Zarządzanie Magazynem - Śledzenie stanu magazynów (H1, P1, W1, M1, M2, M3)
- 📄 Zarządzanie Dokumentami - Obsługa dokumentów magazynowych z generowaniem PDF
- 🗺️ Edytor Map - Edytor wizualny do tworzenia i modyfikowania map magazynów
- 📊 Dashboard - Przegląd stanu systemu w czasie rzeczywistym
- 🔐 System Logowania - Zarządzanie dostępem do systemu
- ⚙️ Ustawienia - Konfiguracja parametrów systemu
- 🗃️ Baza Danych SQLite - Trwałe przechowywanie danych
- Python 3.8+
- PyQt6
- SQLite3
Warehouse-Management-System/
├── main.py # Punkt wejścia aplikacji
├── README.md # Ten plik
├── functions/ # Moduły pomocnicze
│ ├── database_manager.py # Zarządzanie bazą danych
│ ├── pdf_generator.py # Generacja PDF
│ ├── RequestSender.py # Wysyłanie żądań do robota
│ ├── RobotStatusChecker.py # Monitorowanie stanu robota
│ ├── FloatingMessage.py # Komunikaty zmiennoprzecinkowe
│ └── PopupMessage.py # Okna dialogowe
├── panel/ # Komponenty UI
│ ├── main_window.py # Okno główne
│ ├── login_page.py # Strona logowania
│ ├── dashboard_page.py # Dashboard
│ ├── robot_control_page.py # Kontrola robota
│ ├── map_editor_page.py # Edytor map
│ ├── dokumenty_page.py # Zarządzanie dokumentami
│ ├── warehouse_documents_page.py # Dokumenty magazynowe
│ ├── pdfGeneration_page.py # Generacja PDF
│ ├── settings_page.py # Ustawienia
│ ├── manual_control_page.py # Kontrola manualna
│ ├── stock_selection_dialog.py # Dialog wyboru zapasów
│ ├── add_document_dialog.py # Dialog dodawania dokumentu
│ ├── map_editor/ # Komponenty edytora map
│ │ ├── canvas.py # Główne płótno rysujące
│ │ ├── dialogs.py # Dialogi edytora
│ │ ├── route_selector.py # Selektor tras
│ │ └── route_logger.py # Logger tras
│ └── sidebar/ # Komponenty paska bocznego
│ ├── sidebar.py # Główny pasek boczny
│ ├── sidebar_style.py # Style CSS
│ └── toggle_arrow.py # Przycisk rozwijania
├── tools/ # Narzędzia pomocnicze
│ └── route_logger.py # Logger tras
├── icons/ # Zasoby graficzne
├── invoices/ # Przechowywanie faktur/dokumentów
└── wms_database.db # Baza danych SQLite
git clone https://github.com/yourusername/Warehouse-Management-System.git
cd Warehouse-Management-Systempython -m venv .venvWindows:
.venv\Scripts\Activate.ps1Linux/macOS:
source .venv/bin/activatepip install PyQt6python main.py- Uruchom aplikację - zobaczysz stronę logowania
- Wpisz kredencjały (domyślne: zobacz
login_page.py)
- Przegląd ogólnego stanu systemu
- Monitorowanie aktywności robotów
- Status magazynów
- Przycisk ⬆️ Przód - ruch do przodu
- Przycisk ⬅️ Lewo - ruch w lewo
- Przycisk ➡️ Prawo - ruch w prawo
- Przycisk ⬇️ Tył - ruch do tyłu
- Przycisk ⏹️ STOP - zatrzymanie robota
- Przyciski 🔼 PODNIEŚ / 🔽 OPUŚĆ - podnoszenie/opuszczanie ładunku
Włączanie sterowania: Użyj suwaka "Włączyć Sterowanie Manualne" (musi być w pozycji ON)
- Twórz i modyfikuj mapy magazynów wizualnie
- Definiuj trasy dla robotów
- Eksportuj konfiguracje
- Dodawaj nowe dokumenty
- Generuj raporty PDF
- Przeglądaj historię dokumentów
- Konfiguruj adres serwera robota
- Dostosuj parametry systemu
- Zarządzaj użytkownikami
Aplikacja komunikuje się z robotem AGV/AMR poprzez HTTP API:
# Przykład wysłania komendy do robota
from functions.RequestSender import RequestSender
sender = RequestSender("http://10.91.170.213/cmd")
sender.send_request("FORWARD")
sender.send_request("STOP")Obsługiwane komendy:
FORWARD- ruch do przoduBACK- ruch do tyłuMOVE_LEFT- ruch w lewoMOVE_RIGHT- ruch w prawoACTION_LIFT- podniesienie ładunkuACTION_LOWER- opuszczenie ładunkuSTOP- zatrzymanie
System używa SQLite do przechowywania:
- Danych użytkowników
- Dokumentów magazynowych
- Historii operacji
- Konfiguracji map
Plik bazy danych: wms_database.db
Reset bazy danych:
Remove-Item -Path wms_database.db -Force
python main.pyAplikacja wykorzystuje nowoczesny, przemysłowy design z wykorzystaniem:
- Paleta kolorów: Niebieska (#0066cc), Zielona (#10b981), Czerwona (#ef4444)
- Font: Segoe UI, Helvetica Neue
- Zaokrąglone przyciski i elementy
- Responsywny layout
# Usuń cache Pythona
Get-ChildItem -Recurse -Directory -Filter __pycache__ | ForEach-Object { Remove-Item -Path $_.FullName -Recurse -Force }
# Zresetuj bazę danych
Remove-Item -Path wms_database.db -Force
# Uruchom ponownie
python main.py- Sprawdź IP robota:
http://10.91.170.213/cmd - Upewnij się, że robot jest w sieci
- Sprawdź konfigurację w Ustawieniach
- Upewnij się, że PyQt6 jest prawidłowo zainstalowany
- Odinstaluj i zainstaluj ponownie:
pip uninstall PyQt6 && pip install PyQt6
Zdefiniowane w robot_control_page.py:
- H1 - Magazyn H
- P1 - Magazyn P
- W1 - Magazyn W
- M1 - Magazyn M1
- M2 - Magazyn M2
- M3 - Magazyn M3
Każdy magazyn ma zdefiniowaną sekwencję ruchów robota.
- System logowania chroni dostęp do aplikacji
- Operacje na bazie danych są bezpieczne
- Komunikacja z robotem powinna być zabezpieczona (rekomendacja: VPN)
W przypadku problemów:
- Sprawdź issues na GitHub
- Skontaktuj się z zespołem deweloperskim
- Opisz problem ze szczegółami kroku do kroku
Projekt jest dostępny na licencji [DODAJ LICENCJĘ]
Ostatnia aktualizacja: Marzec 2026
Wersja: 1.0.0