Giter Site home page Giter Site logo

slot_magazyn_v2's Introduction

SLOT_magazyn_v2

Program obsługujący Magazyn Sceniczny na Slot Art Festival

Opis

Program ten pozwala na stworzenie planu magazynu z wydzielonymi obszarami. Użytkownik po zalogowaniu może dodawać nowe obszary oraz edytować ich właściwości. Dla każdego obszaru użytkownik może przyjąc nowy przedmiot oraz wydać bądź przyjąć istniejący przedmiot.

Wszystkie informacje o obszarach, przedmiotach, użytkownikach są przechowywane w lokalnej bazie danych.

Kod

Główny plik wykonywalny programu to "magazyn.py". Dwa pomocnicze pliki to "clear_gui.py" odpowiadający za interfejs użytkownika oraz "slotbaza.py" odpowiadający za komunikację z bazą danych.

Główna okno programu opisuje klasa "Magazyn" dziedzicząca po MainWindow z biblioteki PyQt.

Wymagane biblioteki

Do poprawnego działania programu niezbędny jest Python w wersji 3.x. Ponad to wymagane są nstępujące biblioteki: PyQt 5.x, peewee, hashlib, sqlite3.

Inne wymagania

Minimalna rozdzielczość ekranu: 1280x900
Maksymalna rozdzielczość ekranu: 1920x1280
Minimum 2GB pamięci RAM
System operacyjny wspierający sterownik bazy danych SQL

slot_magazyn_v2's People

Contributors

jgruszka93 avatar paninka1994 avatar

Watchers

 avatar

slot_magazyn_v2's Issues

Krytyczny błąd - brak sprawdzenia areaass

Podczas wydawania i przyjmowania przedmiotu, nie jest sprawdzane, czy przedmiot, który wydajemy na pewno jest przypisany do obszaru, który chcemy edytować.

To krytyczny błąd i wymaga natychmiastowej naprawy

dodawanie obszaru

12:40
nacisnęłam "dodaj obszar", nie narysowałam, kliknęłam "lista obszarów" i anuluj.
Wywaliło program

obszar 4

Menu obszaru po kliknięciu na mapce

Dobrze byłoby dodać funkcje, która wyświetla menu dla konkretnego obszaru po kliknięciu na niego na mapce. Z poziomu menu można by edytować obszar lub zajrzeć do środka.

Obsługa SLOT Orkiestry

Potrzebny jest moduł obsługujący SLOT Orkiestrę.

Moduł ten musi być wywoływany z głównego okna programu, najlepiej w postaci pływającego okienka.
W module tym powinniśmy móc:

  • wyświetlić listę aktualnie zgromadzonych przedmiotów na SLOT Orkiestrze, wraz ze wszystkimi informacjami.
  • dodać nowy osoboprzedmiot do orkiestry
  • przyjąć osoboprzedmiot
  • wydać osoboprzedmiot

Zmiany dokonane w oknie SLOT Orkiestry nie powinny wymagać ich zatwierdzenia przyciskiem (np. "OK")

Rysowanie w trakcie dodawania nowych obszarów

Potrzebna modyfikacja klasy QGraphicsView lub QGraphicsScene, która pozwoli na rysowanie za pomocą myszki prostokątów na mapce.

Ponad to potrzebna jest funkcja, która zczyta współrzędne narysowanego prostokąta, zamieni je na formę [posx,posy,sizex,sizey] i przekarze do funkcji createarea w module slotbaza

Ustawienia programu

Dodanie użytkownikowi możliwości zmian w ustawieniach programu, np.

  • wybranie koloru tła (przypisanie do użytkownika)
  • zmiana swojego hasła

Wydajność: Zbędne przekazywanie danych ze SLOTbazy w formie słowników

Okazuje się, że nie ma potrzeby przekazywania danych ze SLOTbazy w formie słowników. W związku z tym funkcje typu loadarea, savearea itp. w SLOTbazie wydają się zbędne. Pozbycie się przekazywania danych w formie słowników wymagałoby istotnej przebudowy całego kodu. Problem ten ma niski priorytet, gdyż realnie nie wpływa na działanie programu, ale znacznie zwiększyłby czytelność kodu.

Slot orkiestra stan magazynu

Użytkownik ma możliwość na stanie slot orkiestry zaznaczać 'check', czy przedmiot znajduje się na stanie magazynu. Mimo zaznaczenia, że się znajduje (w checkbocksie widnieje jako zaznaczony) w statystykach widnieje jako poza magazynem.
12:17

Obsługa dziennika

Trzeba do całego programu dodać obsługę dziennika - logowania tego co się w programie naklikało.
Najlepiej jako osobny moduł, który przyjmowałby jako argumenty:

  • z jakiego modułu nastąpiła zmiana
  • co zostało zmienione
    • poprzednio było to realizowane w postaci zapisywania starych danych i nowych danych.
  • kto to zmienił
  • kiedy nastąpiła zmiana

Moduł ten powinien zapisywać dziennik, w czytelnym formacie, najlepiej xls lub csv. Każda zmiana powinna być "dopisywana" na koniec dziennika.

Przykładowy plik dziennika sprzed kilku lat, bardzo chaotyczny:
dziennik 2016-06-23 21-21.xlsx

Dodam tutaj jeszcze plik dziennika z zeszłego roku, jak tylko się do niego dobiorę.

Komunikaty dźwiękowe

W zeszłym roku pojawił się pomysł na dodanie funkcji dźwiękowej do programu, która miałaby zawierać m.in pojedyncze "piknięcia" gdy coś np. zostało dodane, lub anulowane, zeskanowane, no po prostu żeby program był responsywny. Ponad to pojawił się pomysł na proste komunikaty głosowe, np. "Wprowadzono niewłaściwy kod obszaru" itp. Chodzi o to, żeby na wszelkie możliwe sposoby zasygnalizować użytkownikowi, czy postępuje dobrze, czy nie.

Panel Administratora

Obsługa dla admina - dodawanie / edycja użytkowników
Może to być część głównego programu, ale może to też być prosty osobny programik.
Oczywiście wymagałby zalogowania jako admin.
Powinien oferować dodawanie i edycję użytkowników, ale także zaawansowaną edycję obszarów (np. zmianę położenia, czy ID). Oczywiście może on być w bardzo prostej i nieresponsywnej formie, będzie z niego korzystać tylko administrator systemu.

Lista obszarów

Nie ma potrzeby wyświetlać zakładki "kiedy stworzony", zapewnia to spójność z tabelą listy przedmiotów w slot orkiestrze

dodawanie przedmiotu "0"

13:39
istnieje możliwość dodania przedmiotu o numerze 000, mimo że nie ma takich plakietek

  • ofc. nadal wywala przy dodawaniu xD

Panel administratora

nie działa funkcja "dodaj użytkownika" ani "wyświetl użytkowników" po zalogowaniu się do panelu administratora

Podświetlanie obszaru

Warto dodać funkcję, która przy edycji obszaru podświetli ten obszar na mapce - tak jak to było w matlabowej wersji

dodawanie przedmiotu

12:55
dodałam przedmiot z końcówką kodu "300" na obszar "3", wywaliło program

Slot orkiestra - niezgodność numerów

Przyjmowanie przedmiotu po raz pierwszy. Podczas naklejenia innych numerów na plakietkę uczestnika oraz na przedmiot, przedmiot mimo to dodaje się do magazynu (pod numerem naklejonym na plakietkę)
12:16

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.