diff --git a/ATTRIBUTIONS.MD b/ATTRIBUTIONS.MD index 156321f..2582e26 100644 --- a/ATTRIBUTIONS.MD +++ b/ATTRIBUTIONS.MD @@ -2,4 +2,3 @@ if not stated elsewhere, all Icons are part of the Material Symbols Package provided by Google ### Specific Icons - borrow_boks.svg Credits to Maxicons, Icon downloaded frmo thenounproject.com [Link](https://thenounproject.com/icon/borrow-book-3317975/) - - borrow \ No newline at end of file diff --git a/README.md b/README.md index ba0d310..79798af 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,36 @@ # LibrarySystem -universal library system for facilities in the university +universal library system for facilities in the university. Currently hard-coded for the Library of the University of Education in Freiburg, Germany. +Other Libraries can be supported by rewriting the catalog and it's corresponding functions. ## What is this? -This is a library system for the different facilities in the university. Because some facilities lend their media, some wanted a software that allows them to keep track of who had what when. +This is a library system for the different facilities in our university. Because some facilities lend their media, some wanted a software that allows them to keep track of who had what when. -### Installation -either clone the Repo +### Installation +#### Windows +using the latest git commit version: ``` git clone https://git.theprivateserver.de/WorldTeacher/LibrarySystem.git cd LibrarySystem -./build(.exe) +python -m venv venv +source venv/bin/activate +pip install -r requirements.txt +python main.py +``` +building the software: +``` +download the installer.bat +execute the file in a terminal ``` -or head over to [releases](https://git.theprivateserver.de/WorldTeacher/LibrarySystem/releases) -and download the latest version + +~~or head over to [releases](https://git.theprivateserver.de/WorldTeacher/LibrarySystem/releases) +and download the latest version~~ (not yet supported) + ### Configuration the software contains a config file in configs, as well as a config for icons, located in icons. - -#### config -tbd - -#### icons -- color is a value to re-paint the icons -- icons/* a dict of the icons structured like: icon_Name_in_Application : icon_File_name \ No newline at end of file +By default, the software will use the installation directory for all files, but you can change that in the config file, or using the settings window in the software. \ No newline at end of file diff --git a/build.app.json b/build.app.json index 813c03a..7de57dc 100644 --- a/build.app.json +++ b/build.app.json @@ -5,10 +5,6 @@ "optionDest": "noconfirm", "value": true }, - { - "optionDest": "filenames", - "value": "C:/Users/aky547/GitHub/LibrarySystem/main.py" - }, { "optionDest": "onefile", "value": false @@ -17,10 +13,6 @@ "optionDest": "console", "value": false }, - { - "optionDest": "icon_file", - "value": "C:/Users/aky547/Downloads/1490971308-map-icons-7_82746.ico" - }, { "optionDest": "name", "value": "LibrarySystem" @@ -60,14 +52,6 @@ { "optionDest": "bootloader_ignore_signals", "value": false - }, - { - "optionDest": "datas", - "value": "C:/Users/aky547/GitHub/LibrarySystem/config;config/" - }, - { - "optionDest": "datas", - "value": "C:/Users/aky547/GitHub/LibrarySystem/icons;icons/" } ], "nonPyinstallerOptions": { diff --git a/installer.bat b/installer.bat new file mode 100644 index 0000000..7e2a7c8 --- /dev/null +++ b/installer.bat @@ -0,0 +1,76 @@ +@echo off +echo print Installing Python 3.12.7 +echo downloading..... please wait +curl -o python-3.12.7-amd64.exe https://www.python.org/ftp/python/3.12.7/python-3.12.7-amd64.exe +echo Installing Python 3.12.7 +python-3.12.7-amd64.exe /quiet InstallAllUsers=0 PrependPath=1 Include_test=0 + +echo Python 3.12.7 installed +echo Please confirm the installation by opening a new terminal and typing python --version +echo If the version is 3.12.7, then the installation was successful +pause +echo downloading the repository +curl -o LibrarySystem.zip https://git.theprivateserver.de/WorldTeacher/LibrarySystem/archive/main.zip +echo Extracting the repository +tar -xf LibrarySystem.zip + +cd into the extracted folder +cd librarysystem +echo Installing the required packages +python -m venv venv +call venv\Scripts\activate.bat +echo Activated the virtual environment +echo Cleaning up the environment +@echo off +echo Uninstalling all Python packages... + +@REM Uninstall all packages in the virtual environment +pip freeze > temp_requirements.txt +for /F "delims=" %%i in (temp_requirements.txt) do pip uninstall -y %%i + +@REM Clean up the temporary file +del temp_requirements.txt + +echo All packages uninstalled. +echo Installing the required packages + +pip install -r requirements.txt +echo Installation completed +echo Building the application + +call pyinstaller --noconfirm --onedir --windowed --icon "icons/icon.ico" --name "LibrarySystem" --clean --add-data "config;config/" --add-data "icons;icons/" "main.py" +echo compiling done, please confirm the build by checking the dist folder +echo If the build is successful, you can run the application by running the LibrarySystem.exe file in the folder + +pause + +set /p compile="Build successful? (y/n) " + +if %compile% == y ( + echo Build successful + exit +) else ( + echo Build failed + echo switching over to manual mode using auto-py-to-exe + echo installing auto-py-to-exe + pip install auto-py-to-exe + echo auto-py-to-exe installed + echo running auto-py-to-exe + echo -------------------- + echo Please go to settings > Import config.json + echo Select the build.app.json + echo Change / Set these values: + echo - Script Location: main.py + echo - Icon: icons/icon.ico + echo - Additional Files: + echo - config: config/ + echo - icons: icons/ + echo - site: site/ + + echo Click on the Convert .py to .exe button + echo the completed build will be in the output folder + echo -------------------- + call auto-py-to-exe + pause +) +