English version - Hogs-Co/Firebase-Location-Emulation-MandP-subproject GitHub Wiki

Welcome to the Firebase-Location-Emulation-MandP-subproject wiki!

1. Composition of the group

1.1. The whole project

1.2. Responsible for this part of the project

2. Topics of the project

Creating a test environment application that emulates customers for the Meet'and'Party application contained in https://github.com/Hogs-Co/Kotlin-Meet-and-Party (the name may change).

3. Application type

Desktop or Mobile - the decision to be made

4. Programming solutions

4.1. Environments

Android Studio(mobile) or PyCharm(desktop)

4.2. Languages, technologies

Kotlin (mobile) or Python (desktop), Firebase

5. Project description

The test environment application will provide test functionalities for the functions included in the main part of the project, i.e. the Meet'n'Party application https://github.com/Hogs-Co/Kotlin-Meet-and-Party (the name may change).


5.1. Data used

The application will create and use objects called Profiles for testing purposes. Their elements are:

1. Name of the profile

Format "xxxx" where "x" is a digit from the range [0 - 9]

2. Simulated age

4 buckets with ranges:

  • bucket 1: 18 - 25 years
  • bucket 2: 25 - 35 years
  • bucket 3: 35 - 45 years
  • bucket 4: 45 - 150 years (people do not live more than 150 years)

3. Tags used

3 or 4 tags randomly picked from a pool of avalible tags (initially the pool will not exceed 200 in size)

4. Location

Data collection from geolocating devices (mainly GPS sensor, possible use of bluetooth (close range) and wifi connection (medium range)) to determine the position of the profile

5. Search Ray

The physical radius expressed in meters where the starting point of the radius is the user's current location. Radius buckets (max value to be determined):

  • 0 - 500
  • 500 - 1000
  • 1000 - 2000
  • 2000 - 5000
  • 5000 - 10000
  • 10,000 - 25,000

5.2. Functionalities

1. Automatic profile generation

Generating profiles with the next available number of the profile name, randomly selected tags (3 - 4 tags of interests + 2 age tags), selected age and generating a starting and ending point from the database of available points for the path-finding algorithm

2. Determining the path and smooth simulation of the path along the path with randomly selected speed

First, an optimal path is found by the path-finding algorithm for the start and end points. Then, the user's movement along the selected path is simulated at a certain speed. Speeds vary between 5 kph and 10 kph (we assume our users walk at a steady pace). It is possible that the project will be changed and we will add dynamic changes to the radius, speed and tags while simulating a journey along the path (time will tell)

3. GUI, logging and visualization of test results in real time

The GUI of the app will provide access to set the starting positions, changing the parameters of individual profiles generated by the generator function and changing the default parameters of these functions. At the start of the simulation, the GUI will allow you to track all or selected profiles on the map along with displaying such elements as:

  • the interaction radius
  • which profiles can see each other
  • what tags they use
  • their speed
  • their exact current location (color-coding needed) For two profiles to match, the radius of the 0001 profile must coincide with the location of the 0002 profile and vice versa.

The test ends when all profiles have completed their paths and have reached the end point or when the stop-test signal is received from the GUI. After completing the test, all information about individual clients is saved to .log files, so each profile named "xxxx" creates its own file called "xxxx.log" and you can find information in it is:

Basic
  • the name of the profile
  • tags used
  • speed
  • age
  • starting point
  • end point
Advanced
  • all 10-second intervals in which the profile had access to other profiles along with the names of these profiles and their basic data
  • travel time and the number of 10-second intervals in which there was no interaction with the reason (incompatible tags or no profiles within the search radius or other information - along with the development, it will turn out what is needed)