.. _dev_workshop: =================== Developers Workshop =================== Welcome to the GeoNode Training `Developers Workshop` documentation v\ |release|. This workshop will teach how to develop with and for the `GeoNode `_ software application. This module will introduce you to the components that GeoNode is built with, the standards that it supports and the services it provides based on those standards, and an overview its architecture. *Prerequisites* GeoNode is a web based GIS tool, and as such, in order to do development on GeoNode itself or to integrate it into your own application, you should be familiar with basic web development concepts as well as with general GIS concepts. .. toctree:: :hidden: 001_devel_intro/index 002_django_overview/index 003_devel_core/index 004_devel_env/index 005_devel_debug/index 006_geonode_apis/index 007_geonode_testing/index 008_contribute_geonode/index :ref:`intro_devel` This module will introduce you to the components that GeoNode is built with, the standards that it supports and the services it provides based on those standards, and an overview its architecture. :ref:`django_overview_index` This section introduces some basic concepts of DJango, the Python based web framework on top of which GeoNode has been developed. Django's primary goal is to ease the creation of complex, database-driven websites. Django emphasizes reusability and "pluggability" of components, rapid development, and the principle of *don't repeat yourself*. Python is used throughout, even for settings, files, and data models. Django also provides an optional administrative create, read, update and delete interface that is generated dynamically through introspection and configured via admin models. :ref:`dev_core` This module will introduce you to the basic tools and skills required to start actively developing GeoNode. :ref:`install_devmode` This module shows a step-by-step guide for the setup of a GeoNode Develeopment Environent on an Ubuntu system. For other Linux distributions the commands are similar, the difference is mainly on the packages names. .. note:: For Windows: (:ref:`install_win_devmode`) :ref:`dev_debug` GeoNode can be difficult to debug as there are several different components involved. This module shows some tecniques to debug the different parts of GeoNode. :ref:`geonode_apis` This module provides an overview of the core modules and libraries used by GeoNode and teach to the user how to use them through some guided examples. :ref:`geonode_testing` This section explain how to run the tests on GeoNode. :ref:`contributing_to_geonode` Basic concepts about GitHub OpenSource Projects and best practices.