https://github.com/lupadevstudio/tramwaycollector
🚋 A mobile application to collect tramway photos.
https://github.com/lupadevstudio/tramwaycollector
android-application kivy-framework photography python tramway
Last synced: 4 months ago
JSON representation
🚋 A mobile application to collect tramway photos.
- Host: GitHub
- URL: https://github.com/lupadevstudio/tramwaycollector
- Owner: LupaDevStudio
- License: apache-2.0
- Created: 2023-07-16T13:20:13.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-06T07:34:11.000Z (9 months ago)
- Last Synced: 2025-02-20T21:38:51.721Z (4 months ago)
- Topics: android-application, kivy-framework, photography, python, tramway
- Language: Python
- Homepage: https://lupadevstudio.com/applications/tramway_collector
- Size: 126 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Tramway Collector


## Introduction
The project is an application to collect photos of different kinds of tramways.
## License
This project is protected by the Apache Licence Version 2.0 (see the `LICENSE` file).
## Architecture of the project
The project is divided into several folders:
- `data`, containing the file `settings.json` where 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 section](#for-users)
- `reports`, containing the reports for the coverage and the cleanliness of the code.
- `coverage` will contain after execution the files generated by Pytest.
- `linting` is 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 this `README`.
- `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 the `tools` package.
- `tools`, containing the following modules:
- `tools_collection`
- `tools_image`
- `tools_kivy`
- `tools`It also contains the following modules:
- `buildoze.spec`
- `LICENSE`
- `main.kv`, *Kivy* file containing the graphics of the interface, which is linked to the module `main.py`.
- `main.py`, main *Python* module used to launch the application.## Installation
### For users
To install the application, download it on the Play Store using [this link](https://play.google.com/store/apps/details?id=org.tramwaycollector).
### For developers
#### Cloning the repository
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:
```bash
git clone
```#### Creation of a virtual environment
You might want to use a virtual environment to execute the code. To do so, use the following command:
```bash
python -m virtualenv venv
```To start it, use the command on *Windows*:
```bash
venv/Scripts/Activate.ps1
```Or for *MacOS* and *Linux*:
```bash
venv/Scripts/activate
```#### Installation of the necessary librairies
To execute this software, you need several *Python* librairies, specified in the `requirements.txt` file. To install them, use the following command:
```bash
pip install -r requirements.txt
```#### Installation of buildozer
If you want to compile the application yourself instead of using the provided apk, you will need to install buildozer by following [this procedure](https://buildozer.readthedocs.io/en/latest/installation.html).
## Utilisation
### For users
You will find in the settings a short tutorial explaining how to use the application.
### For developers
#### Compilation
##### Debug version
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'"`##### Release version
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 :
```bash
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 pkcs12
```You then have to export the variables containing the password and the location of your key in your terminal with these commands :
```bash
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`