MapServer 2015 SOC Ideas

= MapServer Suite 2015 SOC Ideas =
Enter ideas for development projects here. Note these are just suggestions - students are welcome to propose projects based on their own interests that relate to the MapServer Suite. Our current efforts are based on the following projects: 
* Mapserver Suite This is the mapserver cartographic server, which now includes TinyOWS and MapCache.
You can find the source code, tutorials, the project mailing list and various other information at the link above. 
To give you an idea about possible SoC projects, here are some suggestions: 
== MapServer core related ideas ==
=== Direct support for Scribe Syntax in MapServer ===
The Scribe syntax is a variant of the traditional MapServer mapfile format that was created to facilitate the development of mapfiles with large number of scale-dependent rules, which is becoming very common with today's tile-based mapping environments with discrete zoom levels. More information about the format is available at http://scribeui.org/scribe-syntax.html
There is currently no direct support for the Scribe syntax in the MapServer core, so users of the Scribe syntax currently have two options:
* use the scribe.py python utility (https://github.com/solutionsmapgears/Scribe) to convert their scribe mapfile to a regular MapServer mapfile
or
* use the ScribeUI online editor (http://scribeui.org/index.html) to manage their mapfiles
The goal of this project is to implement direct (or transparent) support for the Scribe syntax in the MapServer core, either through a dedicated parser, or simply by writing a converter that translates the Scribe syntax into regular mapfile syntax in memory at runtime for each request (possibly with some caching). The second option would be less performant, but simpler. Both options should be considered with their pros and cons. User documentation and test suite would also need to be updated accordingly.
Possible mentors: Daniel Morissette, Julien-Samuel Lacroix
== TinyOWS related ideas ==
=== SpatiaLite support in TinyOWS ===
TinyOWS is a geographical feature server, implementing WFS and WFS-T OGC 
protocols. TinyOWS focus on performance, KISS design, and strong compliance to 
the standards. It will be included in the MapServer Suite project as soon as the forthcoming 6.2 release.
TinyOWS currently relies heavily on PostGIS, to get a strong transactionnel 
backend, and be as close as possible from the data. This leads to good 
performances and avoid duplication of features (such as GML format I/O for instance).
This SoC project consists in the implementation of a Spatialite additional support for TinyOWS. The aim is to use this lightweight database as a backend, enabling TinyOWS deployment without the need of a PostGIS server.
SpatiaLite is indeed a SQLite spatial extension, adding a whole lot of 
geographical features to SQLite, creating a convenient and lightweight self-
contained spatial database. While being less efficient than PostGIS in a multi-
user context, SpatiaLite supports transactions and most of the spatial 
features needed to act as TinyOWS backend.
The project will include the following steps :
* Inclusion of SpatiaLite libraries into TinyOWS build system (as optional)
* Identify all TinyOWS codes related to PostGIS functions. 
* Add missing features into SpatiaLite to be able to act as TinyOWS backend (GeomFromGML for instance)
* And provide a clean enough patch to get these features commited into the trunk
* Add multi-database abstraction layer into TinyOWS (to support either PostGIS or SpatiaLite)
* CreateTinyOWS and SpatiaLite units tests cases
* Check compliance to CITE tests for OGC standards with SpatiaLite backend
* Compare performances between PostGIS backend and SpatiaLite backend
* SQL Injection audit, on the new backend (with a tool like SQLMap)
Possible mentors: 
* Olivier Courtin <olivier.courtin (at) oslandia.com>
== Other ideas ==
== Lots of other options ==
There are a lot of other possibilities that we would be happy to discuss with any students interested. Best you contact us on the MapServer mailing list:
* http://lists.osgeo.org/mailman/listinfo/mapserver-dev
Category:Google_Summer_of_Code