QMd v2

CodeFactor Docs Status Build Status GitHub forks

QMd Survey - MEAN Stack Powered Q-Sort Methodology Survey Application Version 2.0

What is QMd?

QMd is a user friendly MEAN stack powered web data collection application originally developed by a team at the University of Western Australia (UWA) to aid in Q-Sorts to aid in Q-methodology research in the field of social sciences and psychology.

QMd offers a range of features, tailored to suit the needs of the UWA social sciences department, that existing solutions currently do not provide:

  • Dynamic adjustment of the display grid (both in terms of Horizontal-X axis scaling as well as adjustment of kurtosis) as well as statements.Drag and drop functionality for sorting statement cards into the Q-sort grid.
  • Handling of multiple Q-sort surveys running simultaneously, with separate personal links (routing) for different surveys.Encrypted cloud-based storage of all data with:Support for Mongo DBaaS (Database as as cloud) cloud database storage providers (Mongo Atlas, mLab, etc.)
  • The ability to view, edit and delete survey data through the application
  • The ability to view, export (screenshot) and delete user data through the application
  • A follow-up questionnaire for participants

For a more detailed explanation of the full feature set of QMd please read our breakdown here.


Please read the following for either a basic or advanced guide to deploying this MEAN stack powered application to the Heroku Cloud.

Video Guide


Supported Browsers

  • Chrome 36+
  • Firefox 51+
  • Edge 12+
  • Internet Explorer 10+
  • Safari 9+
  • Opera 30+
  • iOS 9+
  • Android 4.4+

This project was generated with Angular CLI version 6.1.3.

For Developers

Development server

If you have not installed nodemon as a global npm dependecy, do so by running npm i -g nodemon.

Run npm install to update your dependencies.

Run nodemon server and ng serve for a dev server. Shell scripts are provided for this in test.bat and

Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.


Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Run node.js server & jasmine-node-karma spec/routes_spec.js --autotest to execute tests for the express server.

Running end-to-end tests

Run node.js server & ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.


This application uses Open Source components. You can find the source code of these open source projects along with their respective license information below.