-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
py-neuro GUI development #351
Comments
Hi @timonmerk and @elizaveta-terek, since I am the one who proposed building the GUI as a web-app, I would like to give here a brief explanation of the tech-stack we will be using and the reason for each of the choices: Frontend (React SPA)
Backend (Python server)Now let's talk a bit of backend, which will be handled entirely in Python:
|
Overall Goal:
You can find out more about React here: React
Milestones:
Ground work (basic):
It's basically like a digital work place for each project. There's plenty of resources online telling you how you can setup an environment for your use case
Git is something everybody working with code in a team needs to know. It allows us to work together without messing up someone else's work.
You can compare it with something like google docs. People can work together over the internet and see the changes some else has done.
You don't need to know everything here, just the basics: clone/create a repository, pull changes, commit your changes, push your changes, working on branches
React and the underlying languages (javascript, HTML, CSS) are used all over the world. There's tons of tutorials online and projects on Github.
My recommendation: Learning by doing. Try to build something. It's a great way of learning quick and it's very rewarding to see your results. This is the offical documentation: (React)
Now that you know the basics, let's create this project. You will get the layout drafts of the GUI.
You can start by implementing the components without a lot of functionality. There's a lot of things to consider:
should a button be "clickable" at any time?
Will the Web-App look and work normal on different screen sizes? (responsiveness)
How can you structure the input fields so users will like and understand it best?
Feel free to make it as beautiful and fresh looking as you can
With this point you will get some help from us. we will give you the data you need (probably JSON format) coming from py_neuromodulation.
At this point it makes sense to already understand how users are utilizing the toolbox.
Your task is to change read this data where it makes sense and update the JSON files. Basically implementing the logic into the GUI and giving it the possibility to communicate with the backend.
Refine (intermediate):
The user won't make any mistakes if we don't let them! Try to eliminate all possible sources of error. Button's that shouldn't be pressed at some point shouldn't be active.
Can you get from one screen to the next without errors (always?) How do you deal with e.g. wrong inputs?
Perfectionise (PRO):
Does the application run with all static features (settings, channels,....) ? Freakin Awesome!!!
Now let's get to the really tricky stuff: How can we visualize the features coming from the backend in real time?
Try implementing graphs giving useful insights into the data. Like raw signal, fft, mov detect,....
Useful tools:
The text was updated successfully, but these errors were encountered: