A brain computer interface, that receives cognition snapshots from a client, manipulates them, and allow to visualize and consume the results in various ways.
Yahav's final project for Advanced System Design course.
Python 3.8
Docker 18.09.9
docker-compose 1.23.2
-
Clone the repository and enter it:
$ git clone https://github.com/yahavx/mindreader.git ... $ cd mindreader -
Run the installation script and activate the virtual environment:
$ ./scripts/install.sh ... $ source .env/bin/activate [mindreader] $ # you're good to go!
-
To check that everything is working as expected, run the tests:
[mindreader] $ pytest tests/ ...
After finishing the installation step, run the run-pipeline script to set up all the
necessary services:
[mindreader] $ ./scripts/run-pipeline.sh
...
Everything is ready!
[mindreader] $Please note that it may take a minute or two for everything to set up.
After that, upload some snapshots from the client:
[mindreader] $ python -m mindreader.client upload-sample sample.mind.gz
...
All the 1024 snapshots were sent successfully!
[mindreader] $ There is a sample example in /tests/data/snapshot.gz that you can try and use for start:
[mindreader] $ python -m mindreader.client upload-sample ./tests/data/snapshot.gzAfter uploading, visit http://127.0.0.1:8080/ to see the results. You can also use the CLI or the API to consume the data.
The project contains one package, mindreader, which provides the following sub-packages:
client📣 - sends cognition snapshots to the server.server📲 - receives cognition snapshots from the client, and handles them.parsers🔨 - processes snapshots received from the server.saver🔑 - saves processed data to the database.api📖 - an API to consume the data.cli📝 - a CLI that consumes the API.gui💻 - allows to visualize the data comfortably.drivers💾 - utility that provides services to all the components
Click on your desired package to be forwarded to the matching readme, which supply a simple yet more extensive description, and also usage examples of the basic functionality.
For a more detailed explanation, as well as necessary information to manage the code, check the official documentation.
The complete documentation for the project can be found here.
Reach out to me at one of the following places!
- Email 📧 - yahavxx@gmail.com
- Twitter 🐦 - @yahavxx