Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Course search

From MoodleDocs

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.

Course search
Project state Community bonding period
Tracker issue CONTRIB-4335
Discussion XXX
Assignee Shashikant Vaishnav

GSOC '13

Introduction

Object of this google summer of code project is to Implement Advanced Course Search that is flexible, case-insensitive, fast and can sort results by relevance. Most importantly it should work consistently on different Database engines and different content languages. The deliverable includes a functional advance search plugin for Moodle that can be installed and configured to substitute basic core search. The project will be implemented integrating 3rd party search engine API with Moodle course schema.

Schedule

May 28 - June 17 ( Community Bonding Period)


➢ Discuss the further ideas with the mentor .

➢ Final list of tasks to be implemented under this project.

➢ Read & study the documentations on moodle and its Database Schema.

➢ Study the plugin development in moodle.

➢ Study the Apache Solr Documentation & its complete working

➢ Set up the development and testing environment.


June 18- july 10( Interim Period )


➢ Start Coding!

➢ Prepare moodle course search schema xml configuration

➢ Create moodle plugins (admin tool and theme) that allow to substitute core search with alternative solution. At first it will duplicate the existing functionality but it is ready for modifications without changing the core.

➢ Create function for manual reindexing of all courses, add button for admin on the plugin page to perform manual reindexing.

➢ Implement the search in the plugin just to make sure it works with the simple result output (no filtering, no pagination, no additional information retrieval, etc)

➢ Document the work.


July 11- August 02( Interim Period )


➢ Display courses properly, filtered, with all additional information

➢ Add caching of search results so everything is not retrieved again when user requests the second page

➢ Prepare search plugin for distrubution: create install/upgrade/uninstall scripts, write Readme file how to install and configure Solr.


Mid Term Evaluation

Submit code of completed tasks along with documentation.


August 3- August 25 (Interim period)


➢ Listen to events and mark courses for reindexing

➢ Implement cron function that does reindexing

➢ Add configurable settings to the plugin (when/whether to run automatic re indexing)

➢ Document the work.

➢ Debug the code and reduce code complexity.


August 26- Sep 16 (Interim period)


➢ Filtering results by dates, tags.

➢ Spell correction capability.

➢ Fuzzy search support.

➢ Implement extra functionality (if any other feature required and time permits).


Sep 17- Sep 23(Pencils down)


➢ Testing, documentation & debugging.

➢ Final Release

Requirements

The deliverable includes a functional advance search plugin for Moodle that can be installed and configured to substitute basic core search. Usually require moodle version 2.6

Design

Relevancy Search wireframe:-

The following wireframe shows how the results can be filtered with different aspects.

Wireframe.png

Credits

Mentors:

Tracker

CONTRIB-4335[1] Course Search Plugin

See also