The project is an application to collect photos of different kinds of tramways.
This project is protected by the Apache Licence Version 2.0 (see the LICENSE file).
The project is divided into several folders:
data, containing the filesettings.jsonwhere the language of the interface is specified as well as the default path to images used for the file explorer.releases, containing the apk files for the application. You will find inside a debug version (this apk is unsigned which means Play Protect will raise a warning if you install it directly). If you want to install a signed version, please go to this sectionreports, containing the reports for the coverage and the cleanliness of the code.coveragewill contain after execution the files generated by Pytest.lintingis dedicated to the files generated by Pylint.
resources, containing the following subfolders:images_applications, containing the images used in the application.images_readme, containing the images of thisREADME.kivy, containing the styling files of the interface, using the Python graphic librairy Kivy.languages, containing the json files of the different languages supported by the application. The user may add other files, if he wants to translate the interface in another language.
screens, containing the following modules for the different screens:collection_window, Python module for the collection window of the application.components, Python module for the general classes in Kivy.gallery_window, Python module for window for each gallery.image_edition_window, Python module for the window of image edition.menu_window, Python module for the main window of the application.settings_window, Python module for the settings window of the application.
test, containing the test modules for thetoolspackage.tools, containing the following modules:tools_collectiontools_imagetools_kivytools
It also contains the following modules:
buildoze.specLICENSEmain.kv, Kivy file containing the graphics of the interface, which is linked to the modulemain.py.main.py, main Python module used to launch the application.
To install the application, download it on the Play Store using this link.
To clone the github repository, you have to search the clone button on the main page of the project. Then click it and select https or ssh depending on your favorite mode of connexion. Copy the given id and then open a terminal on your computer, go to the folder where you want to install the project and use the command:
git clone <your copied content>You might want to use a virtual environment to execute the code. To do so, use the following command:
python -m virtualenv venvTo start it, use the command on Windows:
venv/Scripts/Activate.ps1Or for MacOS and Linux:
venv/Scripts/activateTo execute this software, you need several Python librairies, specified in the requirements.txt file. To install them, use the following command:
pip install -r requirements.txtIf you want to compile the application yourself instead of using the provided apk, you will need to install buildozer by following this procedure.
You will find in the settings a short tutorial explaining how to use the application.
To launch the compilation of the application into a debug apk file :
- Modify the path inside the spec file to match your own system configuration
- Compile with the command :
buildozer -v android debug - If an android smartphone is connected to your computer and the developer mode is activated on the device you can launch the application in debug mode and access the output using the command :
buildozer -v android deploy run logcat | grep python - If your encounter a java heap space error, try this command to increase the maximum allowed size of files :
export GRADLE_OPTS="-Xms1724m -Xmx5048m -Dorg.gradle.jvmargs='-Xms1724m -Xmx5048m'"
Once the debug version works, to share a clean version of the application, it is necessary to sign the package. To do this, you first need to create a key using these commands :
keytool -genkey -v -keystore ~/keystores/TramwayCollector.keystore -alias TramwayCollector -keyalg RSA -keysize 2048 -validity 10000
keytool -importkeystore -srckeystore ~/keystores/TramwayCollector.keystore -destkeystore ~/keystores/TramwayCollector.keystore -deststoretype pkcs12You then have to export the variables containing the password and the location of your key in your terminal with these commands :
export P4A_RELEASE_KEYALIAS="TramwayCollector"
export P4A_RELEASE_KEYSTORE=~/keystores/TramwayCollector.keystore
export P4A_RELEASE_KEYSTORE_PASSWD=
export P4A_RELEASE_KEYALIAS_PASSWD=You can then obtain a release version of the app using the command : buildozer android release
