*** PLEASE READ THE BELOW DOCUMENTATION IN DETAIL BEFORE YOU BID ***
For this project you need to know the api of drupal 7, of rules and of the profile2 module
We are running a website that connects students and teachers.
We need a module to load teachers out of our database, based on distance and the courses they are able to teach. Both students and teachers give multiple regions and multiple courses on registration where they can give or take tutoring.
Locations:
The locations are saved on a field collection field, with machine name field_regions_field_collection. Users always give in multiple field collections.
a) This field collection has a decimal field field_distance_from_geopoint which saves the radius around the geopoint where a user gives or takes tutoring
b) The location is saved with a text field field_region_text as a string, and is geocoded with the geofield module in the field field_region_geopoint
This field collection field is always set to multiple. The field collection is saved on a node of type class, and on the profile account of teachers (so not the profile2, but the normal user account). Machine name is field_regions_field_collection
The courses are saved with a taxonomy reference field, also set to multiple. Taxonomy machine name is "courses" For the students side this is saved on the node type class with the field multiple taxonomy reference field field_course. For teachers the courses are saved on the profile2 with machine name "teacher" field_interested_in_courses. Both fields are refering to the same taxonomy list.
What the module should do:
The module should provide a php function, which returns available teachers for a particular class as user objects in an array.
The php function should take two parameters
1) a node of the type class (which has the multiple value field collection field for regions, and the multiple taxonomy reference field for courses)
2) a distance parameter, default to 10km, but when the function is called this should be able to change.
The php function should also integrate with the rules module. In rules, it should be possible to load a list of users, when a node of type class is given as input, and a distance parameter. The output is a list of user objects, where operations can be set on.