Difference between revisions of "Portal:Develop"

From MNE-CPP Wiki
Jump to: navigation, search
Line 1: Line 1:
 
== The MNE-CPP Project Structure==  
 
== The MNE-CPP Project Structure==  
Highly modular and easily extendable
+
* Highly modular and easily extendable
Cross platform capable: Windwos, Linux, Mac, handheld devices & embedded systems
+
* Cross platform capable: Windwos, Linux, Mac, handheld devices & embedded systems
Purely written in C++
+
* Purely written in C++
MNE-CPP is set up as a two layer structure:
+
* MNE-CPP is set up as a two layer structure:
 
+
*:# Library layer:
Library layer:
+
*:#:* Backbone of the MNE-CPP framework
Backbone of the MNE-CPP framework
+
*:#:* Different libraries providing core features & functionalities
Different libraries providing core features & functionalities
+
*:# Application layer:
Application layer:
+
*:#:* User interaction of the MNE-CPP framework
User interaction of the MNE-CPP framework
+
*:#:* Full scale GUI applications with rich user experience
Full scale GUI applications with rich user experience
+
*:#:* Command line applications
Command line applications
+
*:#:* Simple examples for an easy start
Simple examples for an easy start
+
*:#:* SUnit tests: Safeguarding correctness of results
Unit tests: Safeguarding correctness of results
+
* Dependencies:
Dependencies:
+
*:# Keep dependencies to a minimum
 
+
*:# Qt for Graphical User Interface integration
Keep dependencies to a minimum
+
*:# Light-weight template library Eigen for linear algebra
Qt [1] for Graphical User Interface integration
+
*:# Future proof: Qt/Eigen are highly & activley maintained
Light-weight template library Eigen [2] for linear algebra
+
*:# Avoid SOUP (Software Of Unknown Pedigree)
Future proof: Qt/Eigen are highly & activley maintained
+
Avoid SOUP (Software Of Unknown Pedigree)
+
  
 
[[File:MNE-CPP Library horizontal.png|400px]]
 
[[File:MNE-CPP Library horizontal.png|400px]]

Revision as of 11:36, 11 January 2016

The MNE-CPP Project Structure

  • Highly modular and easily extendable
  • Cross platform capable: Windwos, Linux, Mac, handheld devices & embedded systems
  • Purely written in C++
  • MNE-CPP is set up as a two layer structure:
    1. Library layer:
      • Backbone of the MNE-CPP framework
      • Different libraries providing core features & functionalities
    2. Application layer:
      • User interaction of the MNE-CPP framework
      • Full scale GUI applications with rich user experience
      • Command line applications
      • Simple examples for an easy start
      • SUnit tests: Safeguarding correctness of results
  • Dependencies:
    1. Keep dependencies to a minimum
    2. Qt for Graphical User Interface integration
    3. Light-weight template library Eigen for linear algebra
    4. Future proof: Qt/Eigen are highly & activley maintained
    5. Avoid SOUP (Software Of Unknown Pedigree)

400px

The MNE-CPP Development Cycle

Project Management

The MNE-CPP project is maintained by an agile management approach, using JIRA. JIRA is a well known issue tracking tool by Atlassian, which let's you post bug reports, improvement tasks, wishes for new features and much more. It gives you a way to directly participate in the development of MNE-CPP. Please go to MNE-CPP's JIRA website and sign up for an account if you wish to help to improve MNE-CPP.

Next to JIRA we also use Atlassian's Confluence to share documents, meeting notes and other project related files. You can find our confluence page here.

Tutorials

Introductive

Create a MNE-CPP based application

Create a MNE-X plugin

Advanced

MNE CPP on Neuromag Linux

Documentation

Coding Conventions & Style

Commit Policy

Reference Guide