The repository consists of two parts:
- Python (Docker supported)
- Android project
The Python part generates SQLite files from an image dataset and guides folder.
The Android app uses these databases. Always recompile after Python-side changes.
- Use the
Python/guides/CITYNAMEfolder. - Duplicate
Template Monumentfor each real monument. Name must match dataset folder. - Use Markdown format for content.
- Add language folders (e.g., French, German).
- Keep folder and guide file names consistent.
- Each monument folder must have a guide in every supported language.
- In
Python/categories/CITYNAME, add one image per category used in guides. - Image filenames = category names.
Complete the previous step before creating the database. The guides have to be completed and if you make any modification in any guide you have to create again the database.
The repository contains the folder Python/imageDatasets/CITYNAME which must contains one folder per
monument and each of which contains the images, as in the following example:
imageDatasets/CITYNAME
├───Battistero SanGiovanni
│ img1.jpg
│ img2.jpg
│ img3.jpg
│
├───Campanile Giotto
│ img1.jpg
│ img2.jpg
│ img3.jpg
│
├───Cattedrale Duomo
│ img1.jpg
│ img2.jpg
│ img3.jpg
│
└───Palazzo Vecchio
img1.jpg
img2.jpg
img3.jpg
Go to the folder containing the Dockerfile (i.e. the project folder) and run the following commands in a terminal:
1. docker build -t tfimage .
2. docker run -it tfimage CITYNAME
3. docker container ls -all
4. docker cp containerID:/app/models/src/main/assets/databases ./models/src/main/assets/NOTE: You can find containerID in the list of the containers in the third instruction.
The following command runs the Docker to process tha visual features of the images and create the database. The copy parameter copies also the guides and categories folders in the assets folder of the Android project.
1. ./run_docker.sh CITYNAME copyotherwise run:
1. ./run_docker.sh CITYNAME
2. ./copy_guides.sh CITYNAMEto run first the Docker and then copy the guides and assets of the CITYNAME city (e.g. Florence, Nicosia, Athens).
If you want to update the guide without updating the visual features of the images, run:
1. ./copy_guides.sh CITYNAMEafter updating the guides of interest, to reduce the time needed to create the database.
NOTE: 'CITYNAME' is the name of the city of the guide you are building and that you created in previous steps. If the CITYNAME is not provided the guide for Florence will be built as default.
If you want to generate a new APK file, please refer to the following guide: How to Generate APK and Signed APK Files in Android Studio
You will find the APK in app/build/outputs/apk/support/debug .
Welcome to the app! This guide will help you understand the general functioning of the application and how to use its features effectively. Please note that this guide is written for non-expert users, so the instructions are simplified for better understanding.
- Install the app on your Android device from the provided APK file. You can find the APK file in
the directory:
app/build/outputs/apk/support/debug. - Once installed, open the app to begin the setup process.
- When you launch the app, a loading screen will appear. This screen allows the app to load the necessary data into memory. Please wait until the loading process is complete.
- If it's your first time accessing the application, you will be asked to select your preferred categories and attributes (optional).
- For the correct functioning of the application, please accept all the asked permissions.
- After the loading process, you will be directed to the main screen of the app.
- On this screen, you will see a list of monuments, grouped by categories.
- The categories displayed are based on your preferred choices. You can modify your preferred categories later if needed.
- The monuments are listed in order of preference, considering their attributes and interaction history.
- To use the camera for monument recognition, tap on the FAB (Floating Action Button) located at the bottom right corner of the main screen.
- Aim your device's camera at a monument and wait for the app to recognize it.
- If the app successfully recognizes a monument, a popup will appear with additional information about the monument.
- When you open a guide enjoy the experience!
- Moreover, the app will recommend three monuments to visit.
- If you tap on any of the recommended monuments, the app will open the corresponding guide for that monument. Open the integrated map to see how to reach it!
You have the option to modify your preferred categories and attributes in the settings. Simply navigate to the preferences section and make the desired changes. Feel free to explore the settings section and customize the app to your liking.
This guide provides an overview of the app's features and functionalities. Use the app to explore and discover various monuments. If you have any further questions or need assistance, please refer to the app's support documentation or contact me. Enjoy your journey!