An easy-to-use platform for EEG experimentation in the classroom
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Updated README and added image, CONTRIBUTING, and CODE_OF_CONDUCT

jdpigeon 15bd06fd 1899dd46

+161 -79
BrainWaves_Home.png

This is a binary file and will not be displayed.

+69
CODE_OF_CONDUCT.MD
··· 1 + # BrainWaves Code of Conduct 2 + 3 + ## Purpose 4 + 5 + It is our hope that any one is able to contribute to BrainWaves regardless of their background. Thus, we hope to provide a safe, welcoming, and warmly geeky environment for everybody, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). 6 + 7 + ## Our Standards 8 + 9 + Examples of behavior that contributes to creating a positive environment 10 + include: 11 + 12 + * Using welcoming and inclusive language 13 + * Being respectful of differing viewpoints and experiences 14 + * Gracefully accepting constructive criticism 15 + * Focusing on what is best for the community 16 + * Showing empathy towards other community members 17 + 18 + Examples of unacceptable behavior by participants include: 19 + 20 + * The use of sexualized language or imagery and unwelcome sexual attention or 21 + advances 22 + * Trolling, insulting/derogatory comments, and personal or political attacks 23 + * Public or private harassment 24 + * Publishing others' private information, such as a physical or electronic 25 + address, without explicit permission 26 + * Other conduct which could reasonably be considered inappropriate in a 27 + professional setting 28 + 29 + ## Our Responsibilities 30 + 31 + Project maintainers are responsible for clarifying the standards of acceptable 32 + behavior and are expected to take appropriate and fair corrective action in 33 + response to any instances of unacceptable behavior. 34 + 35 + Project maintainers have the right and responsibility to remove, edit, or 36 + reject comments, commits, code, wiki edits, issues, and other contributions 37 + that are not aligned to this Code of Conduct, or to ban temporarily or 38 + permanently any contributor for other behaviors that they deem inappropriate, 39 + threatening, offensive, or harmful. 40 + 41 + ## Scope 42 + 43 + This Code of Conduct applies both within project spaces and in public spaces 44 + when an individual is representing the project or its community. Examples of 45 + representing a project or community include using an official project e-mail 46 + address, posting via an official social media account, or acting as an appointed 47 + representative at an online or offline event. Representation of a project may be 48 + further defined and clarified by project maintainers. 49 + 50 + ## Enforcement 51 + 52 + Instances of abusive, harassing, or otherwise unacceptable behavior may be 53 + reported by contacting the project team at [INSERT EMAIL ADDRESS]. All 54 + complaints will be reviewed and investigated and will result in a response that 55 + is deemed necessary and appropriate to the circumstances. The project team is 56 + obligated to maintain confidentiality with regard to the reporter of an incident. 57 + Further details of specific enforcement policies may be posted separately. 58 + 59 + Project maintainers who do not follow or enforce the Code of Conduct in good 60 + faith may face temporary or permanent repercussions as determined by other 61 + members of the project's leadership. 62 + 63 + ## Attribution 64 + 65 + This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 66 + available at [http://contributor-covenant.org/version/1/4][version] 67 + 68 + [homepage]: http://contributor-covenant.org 69 + [version]: http://contributor-covenant.org/version/1/4/
+25
CONTRIBUTING.md
··· 1 + # Contributing 2 + 3 + :tada::clinking_glasses: First off, thanks for taking the time to contribute! :tada::clinking_glasses: 4 + 5 + Contributions are always welcome, no matter how small. 6 + 7 + The following is a small set of guidelines for how to contribute to the project 8 + 9 + ## Where to start 10 + 11 + ### Code of Conduct 12 + This project adheres to the Contributor Covenant [Code of Conduct](CODE_OF_CONDUCT.md). 13 + By participating you are expected to adhere to these expectations. Please report unacceptable behaviour to [dano@neurotechx.com](mailto:dano@neurotechx.com) 14 + 15 + ### Contributing on Github 16 + 17 + If you're new to Git and want to learn how to fork this repo, make your own additions, and include those additions in the master version of this project, check out this [great tutorial](http://blog.davidecoppola.com/2016/11/howto-contribute-to-open-source-project-on-github/). 18 + 19 + ## How can I contribute? 20 + 21 + If you find a bug, or have a suggestion on how to improve the project, just fill out a Github issue! 22 + 23 + If you're interested in using BrainWaves as a basis for your own work to streamline EEG experimentation or psychological data collection, we'd love to hear from you. Send an email to [dano@neurotechx.com](mailto:dano@neurotechx.com) or create an issue and we'll be in touch. 24 + 25 + All project management for BrainWaves occurs through issues on Github (via Zenhub). If you want to see what we need help with, or what is on our roadmap, check out the issues on this repository.
OVERVIEW.md

This is a binary file and will not be displayed.

+67 -79
README.md
··· 5 5 An easy-to-use platform for EEG experimentation in the classroom 6 6 </p> 7 7 8 + ## Features 9 + 10 + - Design, run, and analyze an experiment using real EEG data all in one desktop 11 + app 12 + - Investigate visual event-related brain waves (ERPs) 13 + - Supports Emotiv Epoc+ and Muse devices 14 + 15 + ## Screenshots 16 + 17 + <img src="BrainWaves_Home.png" width="600"> 18 + 8 19 ## Prerequisites 9 20 10 - ### All Platforms 21 + BrainWaves is an Electron app that can be installed natively on your system. However, because it makes use of the [MNE Python](https://martinos.org/mne/stable/index.html) library to perform EEG analysis, it is necessary to set up an appropriate Python environment to be able to analyze collected experimental results. 22 + 23 + ### Environment Setup 24 + 25 + BrainWaves needs an Anaconda environment called "brainwaves" with the right 26 + dependencies to run its analysis. 27 + 28 + 1. Download and install Anaconda for Python 3. We recommend using the 29 + [Miniconda installer for Python 3.6 available from this page](https://conda.io/miniconda.html) 30 + 31 + 2. Download the BrainWaves 32 + [environment file](https://github.com/makebrainwaves/BrainWaves/releases/download/v0.1.0/environment.yml) 33 + or grab it by cloning this repository 34 + 35 + _Note: you may need to install Microsoft Visual C++ Build Tools to run this 36 + following command on Windows_ 37 + 38 + 3. Open Anaconda prompt (or terminal on Linux and OSX) in the directory where 39 + the environment file is located and run `conda env create -f environment.yml` 40 + 41 + 4. If the environment is created successfully, run the following command to create a new jupyter kernel that uses this environment: 42 + `python -m ipykernel install --user --name brainwaves --display-name "brainwaves"` 43 + 44 + 45 + ## Download 46 + 47 + - Windows: 48 + [click here](https://github.com/makebrainwaves/BrainWaves/releases/download/v0.7.5/BrainWaves.Setup.0.7.5.exe) 49 + - MacOS: coming soon 50 + - Linux (only supports Muse): 51 + [click here](https://github.com/makebrainwaves/BrainWaves/releases/download/v0.7.5/BrainWaves_0.7.4_amd64.deb) 11 52 12 - - node version >= 7 and npm version >= 4 13 - - Anaconda (Python 3) with an environment named 'brainwaves' containing dependencies in `environment.yml`. See [Conda Environment Setup](https://github.com/makebrainwaves/BrainWaves#conda-environment-setup) for instructions 53 + 54 + ## Installing from Source (for developers) 55 + 56 + - Make sure you have node version >= 7, npm version >= 4 and have followed the [Environment Setup](https://github.com/makebrainwaves/BrainWaves#environment-setup) instructions 14 57 15 58 ### OS X 16 59 17 - - may need to update your `.bash_profile` to include the path for your [compiler](https://github.com/sandeepmistry/node-xpc-connection/issues/2) (nothing terribly scary). 60 + - may need to update your `.bash_profile` to include the path for your 61 + [compiler](https://github.com/sandeepmistry/node-xpc-connection/issues/2) 62 + (nothing terribly scary). 18 63 1. Find it's location 19 64 ```bash 20 65 which gcc ··· 28 73 29 74 - [Visual C++ Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15) 30 75 31 - ## Installing from Source 32 - 33 - - **If you have installation or compilation issues with this project, please see [the boilerplate's debugging guide](https://github.com/chentsulin/electron-react-boilerplate/issues/400)** 34 76 35 77 1. First, clone the repo via git: 36 78 ··· 45 87 $ npm install 46 88 ``` 47 89 48 - 3. If using Emotiv, insert your Emotiv account's credentials into the file `keys.js` 90 + 3. If using Emotiv, insert your Emotiv account's credentials into the file 91 + `keys.js` 49 92 50 93 ### Run 51 94 52 - Start the app in the `dev` environment. This starts the renderer process in [**hot-module-replacement**](https://webpack.js.org/guides/hmr-react/) mode and starts a webpack dev server that sends hot updates to the renderer process: 95 + Start the app in the `dev` environment. This starts the renderer process in 96 + [**hot-module-replacement**](https://webpack.js.org/guides/hmr-react/) mode and 97 + starts a webpack dev server that sends hot updates to the renderer process: 53 98 54 99 ```bash 55 100 $ npm run dev 56 101 ``` 57 102 58 - Alternatively, you can run the renderer and main processes separately. This way, you can restart one process without waiting for the other. Run these two commands **simultaneously** in different console tabs: 103 + Alternatively, you can run the renderer and main processes separately. This way, 104 + you can restart one process without waiting for the other. Run these two 105 + commands **simultaneously** in different console tabs: 59 106 60 107 ```bash 61 108 $ npm run start-renderer-dev 62 109 $ npm run start-main-dev 63 110 ``` 64 111 65 - ## Installing from Executable 66 - 67 - 1. Download and install the executable from this repository's [releases](https://github.com/makebrainwaves/BrainWaves/releases) 68 - 69 - 2. Before running the app, follow the Conda Environmemt Setup instructions 70 - 71 - ## Conda Environment Setup 72 - 73 - BrainWaves needs an Anaconda environment called "brainwaves" with the right dependencies to run its analysis. 74 - 75 - 1. Download and install Anaconda for Python 3. We recommend using the [Miniconda installer for Python 3.6 available from this page](https://conda.io/miniconda.html) 76 - 77 - 2. Download the BrainWaves [environment file](https://github.com/makebrainwaves/BrainWaves/releases/download/v0.1.0/environment.yml) or grab it by cloning this repository 78 - 79 - *Note: you may need to install Microsoft Visual C++ Build Tools to run this following command on Windows* 80 - 81 - 3. Open Anaconda prompt (or terminal on Linux and OSX) in the directory where the environment file is located and run `conda env create -f environment.yml` 82 - 83 - 4. Verify that the environment has been created with the necessary dependencies by running `conda activate brainwaves` (or `source activate brainwaves` on Linux and OSX) and then `mne` 84 - 85 - 5. If the brainwaves environment exists and prints command options for the mne library, then set up a new jupyter kernel to use this environment: `python -m ipykernel install --user --name brainwaves --display-name "brainwaves"` 86 - 87 112 ## Packaging 88 113 89 114 To package apps for the local platform: ··· 94 119 95 120 To package apps for all platforms: 96 121 97 - First, refer to [Multi Platform Build](https://www.electron.build/multi-platform-build) for dependencies. 122 + First, refer to 123 + [Multi Platform Build](https://www.electron.build/multi-platform-build) for 124 + dependencies. 98 125 99 126 Then, 100 127 ··· 115 142 $ npm run test-e2e 116 143 ``` 117 144 118 - :bulb: You can debug your production build with devtools by simply setting the `DEBUG_PROD` env variable: 145 + :bulb: You can debug your production build with devtools by simply setting the 146 + `DEBUG_PROD` env variable: 119 147 120 148 ```bash 121 149 DEBUG_PROD=true npm run package 122 150 ``` 123 151 124 - ## How to add modules to the project 152 + ## Contributing 153 + if you are interested in fixing issues with the BrainWaves app or helping us add additional features, that's amazing! Please see our [How to Contribute](https://github.com/makebrainwaves/BrainWaves/blob/master/CONTRIBUTING.md). 125 154 126 - You will need to add other modules to this boilerplate, depending on the requirements of your project. For example, you may want to add [node-postgres](https://github.com/brianc/node-postgres) to communicate with PostgreSQL database, or 127 - [material-ui](http://www.material-ui.com/) to reuse react UI components. 155 + Also, read our [Code of Conduct](https://github.com/makebrainwaves/BrainWaves/blob/master/CODE_OF_CONDUCT.md) 128 156 129 - ⚠️ Please read the following section before installing any dependencies ⚠️ 130 157 131 - ### Module Structure 132 - 133 - This boilerplate uses a [two package.json structure](https://github.com/electron-userland/electron-builder/wiki/Two-package.json-Structure). This means, you will have two `package.json` files. 158 + ## License 134 159 135 - 1. `./package.json` in the root of your project 136 - 2. `./app/package.json` inside `app` folder 137 - 138 - ### Which `package.json` file to use 139 - 140 - **Rule of thumb** is: all modules go into `./package.json` except native modules. Native modules go into `./app/package.json`. 141 - 142 - 1. If the module is native to a platform (like node-postgres), it should be listed under `dependencies` in `./app/package.json` 143 - 2. If a module is `import`ed by another module, include it in `dependencies` in `./package.json`. See [this ESLint rule](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md). Examples of such modules are `material-ui`, `redux-form`, and `moment`. 144 - 3. Otherwise, modules used for building, testing and debugging should be included in `devDependencies` in `./package.json`. 145 - 146 - ### Further Readings 147 - 148 - See the wiki page, [Module Structure — Two package.json Structure](https://github.com/chentsulin/electron-react-boilerplate/wiki/Module-Structure----Two-package.json-Structure) to understand what is native module, the rationale behind two package.json structure and more. 149 - 150 - For an example app that uses this boilerplate and packages native dependencies, see [erb-sqlite-example](https://github.com/amilajack/erb-sqlite-example). 151 - 152 - ## Static Type Checking 153 - 154 - This project comes with Flow support out of the box! You can annotate your code with types, [get Flow errors as ESLint errors](https://github.com/amilajack/eslint-plugin-flowtype-errors), and get [type errors during runtime](https://github.com/codemix/flow-runtime) during development. Types are completely optional. 155 - 156 - ## Dispatching redux actions from main process 157 - 158 - See [#118](https://github.com/chentsulin/electron-react-boilerplate/issues/118) and [#108](https://github.com/chentsulin/electron-react-boilerplate/issues/108) 159 - 160 - ## How to keep this project updated with the boilerplate 161 - 162 - If your application is a fork from this repo, you can add this repo to another git remote: 163 - 164 - ```sh 165 - git remote add upstream https://github.com/chentsulin/electron-react-boilerplate.git 166 - ``` 167 - 168 - Then, use git to merge some latest commits: 169 - 170 - ```sh 171 - git pull upstream master 172 - ``` 160 + [MIT](https://github.com/makebrainwaves/BrainWaves/blob/master/LICENSE)