distributev / the-proton Goto Github PK
View Code? Open in Web Editor NEWthe-proton
License: MIT License
the-proton
License: MIT License
Can you please elaborate how will de logic of the variables modal be?
Where are the values of the variables going to be stored?
Can you please elaborate what should the functionality of this view be?
The functional requirements are simple (have a GUI to save/load XML files and to trigger external command line jobs)
==>
the implemented code (and folder structure) should reflect the simplicity of the functional requirements.
Re-factor the (functional) code by following the ideas from the following screen-shot. The screen-shot it's from a plain JavaScript (no es6, no webpack, no modules) angularjs + admin lte sample app so ==> when re-factoring you'll keep the main ideas from the screen-shot but the actual code
will reflect the specifics of the current project (es6, webpack modules imports, etc.)
Follow these guidelines
each relevant component should have it's own HTML view (navigation.html, navbar.html, menu.html, ./tabs.html ./tab/process.html, tab/configuration-general.html, footer.html, etc)
Have (only) the following controllers (navigation.js for everything related with menu navigation, configuration.js, processing.js, configuration-templates.js and utils.js for everything else)
in navigation.js - have a CONTEXTUAL_TABS where it should be easy to configure which tabs should be visible when each left menu item it's selected
in navigation.js have a function shouldTabBeVisible(tab) which will return true/false if a specific tab should be visible under the currently selected menu item.
this function will be used in tabs.html for instance ng-show="shouldTabBeVisible('processTab')"
besides utils.js there should't be any other controller JS file which doesn't add functional value (put all the "helpers" non-functional JS code in utils.js controller)
Use only plain bootstrap to implement the tabs - don't use ui-router for implementing the tabs and for sure don't use the ui-router "nested states" for implementing the tabs. Implementing the tabs with plain bootstrap is good
P.S - the project has added complexity which comes from the tech stack (nodejs, electron, webpack, gulp, packaging, hot-deployment) however the functional requirements are really simple ==> the code should match the simplicity of the functional requirements
00 - what-is-expected-and-what-is-not-expected-in-p2.txt
01 - the scope.txt
03 - application-menu.png
03 - pre-requisites.txt
04 - json configs.txt
05 - skin-theme.txt
10 - configuration-templates.png
11 - configuration-general.png
12 - configuration-general.txt
15 - configuration-email-settings.png
16 - well-known-smtp-email-services.txt
20 - configuration-email-message.png
20 - configuration-email-message.txt
21 - configuration-email-message.txt
25 - configuration-email-larger.png
30 - configuration-email-attachments.png
30 - configuration-email-attachments.txt
35 - configuration-advanced.png
35 - configuration-advanced.txt
45 - do-action.png
45 - do-action.txt
50 - quality.png
50 - quality.txt
55 - logging-tracing.png
55 - logging-tracing.txt
60 - upload.png
60 - upload.txt
65 - functional-UI-tests.txt
Please update the readme.md with instructions how to use the package-win, package-linux and package-osx task to generate "self-contained" zip files (specific for the OS). The output of running these task should be a self-contained zip file specific to the OS.
self-contained = If I extract the TheProtonApp.zip file and then I double click TheProtonApp.exe ==> the app should work (out of the box) without having to install anything else.
copy paste from 02 - gulp-build.txt
_Packaging
Following gulp tasks should be available and should work fine
package-win, package-mac, package-linux and each package-* task
should package the zip file with all needed files for the specific OS_
Please mark as DONE as you progress through the below
00 - what-is-expected-and-what-is-not-expected-in-p1.txt
01 - the scope.txt
02 - gulp-build.txt
03 - application-menu.txt
05 - configuration-general.txt
10 - cloud-email-providers.txt
15 - configuration-email-settings.txt
20 - configuration-email-message.txt
25 - configuration-email-larger.txt
30 - configuration-email-attachments.txt
35 - configuration-advanced.txt
40 - configuration-templates.txt
45 - do-action.txt
50 - quality.txt
55 - logging-tracing.txt
60 - upload.txt
This is somehow related with both the issues 02 and 06 (changed values are lost when either the tab and/or the menu are changed).
The changed values should never be un-intentionally lost (no matter if the user will switch tabs or menus) and, in addition to that, the User should also be actively remembered/notified that there are "Unchanged values" which needs to be either Saved or Canceled (it should be clear to people that pressing the Save button it's mandatory otherwise the changes are not persisted)
For the time being I did not have the chance to check the source code yet.
These are the contents of the original requirements:
This screen is used to execute an external command line program.
"Select" will be used to browse to the bat/shell file which runs the external program.
Implement the simplest possible mocked command line program which
1. When "the processing" starts will generate a temp/*.job file. When "the processing" is finished (normally or by error) will remove this file -
see 55 - loggin-tracing.png for more details
2. Randomly generate between 20 and 60 dummy txt files in the output folder
3. Execution will last between 20 and 60 seconds (randomly)
4. Will always generate logs/info.log entries
5. In random 75% of the cases will finish successfully (logs/errors.log and logs/warnings.log will remain empty ==> green status bar)
6. In random 15% of the cases will produce logs/errors.log (error stack trace will be saved to logs/errors.log) ==> red status bar
7. In random 10% of the cases will produce logs/warnings.log (warning stack trace/message will be saved to logs/warnings.log) ==> orange status bar
_internal - Have all the existing stuff generated under _internal folder (including TheProton.exe) and at top level, next to _internal folder, have a Windows "shortcut" which, when clicked by the user, will execute the _internal/TheProton.exe ==> the user will only see and click the TheProton Windows "shortcut" ==> the program will get executed.
win-unpacked - just before generating the final zip rename yourself the folder name to be TheProtonApp-version i.e. TheProtonApp-0.0.1 and then zip the resulted folder using gulp:zip - once the zip file is generated remove the unpacked folder TheProtonApp-0.0.1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.