tdo
tdo copied to clipboard
requirements for contribution
I'd like to contribute to this project, so I want to read through the existing source code. Though I know how to apply the basic web technologies HTML, CSS and JavaScript, this project seems to use some further (advanced) technologies CXJS, React, CircleCi, Babel, ... I currently don't know which parts of tdo belong to tdo itself and which belong to its framework (consisting of these further technologies / libraries).
- Is there a minimum list of technologies necessary to be studied beforehand?
- Is there some structure information and process information about how tdo is built?
- Could I get some starters to speed up my contributions?
just to add some information for clarification of what I'm looking for...
This is a rough structure of components and interactions which I would like to further specify and add more details. In the end, there might come out a structure covering the entire spplication. With blocks corresponding to the folders (or even files) within tdo's source file repository:
If I had some more structural information, I could try to complete the structure sketch. This might help also other developers to contribute in this project.
What do you think?
@nnako This diagram looks very nice. I would remove CircleCI from this picture as it's just a tool used to publish tdo
to GitHub Pages.
Regarding your original idea, I like it. I would recommend using GitHub Project Wiki to document the architecture of the application. I'm very busy at the moment, but I would gladly review your contributions and provide instructions.
- The minimum required knowledge for understanding
tdo
would be the basics of React, CxJS and Redux. - There is no other information available. This is just mine weekend project that turned to be more than that.
- Not sure what do you mean by starters?
There are also other things that I would love to do here. Some actions are still not implemented using Redux. There are no tests. CxJS now supports drag and drop which could be added to tdo
. I wrote that before, I would love to integrate Firebase real-time features which would enable use on multiple devices.
@mstijak Thanks ;-)
MINIMUM REQUIREMENTS I had a look into React, CxJS and Redux for the past two weeks and I like it. Although, the mix of technologies is still a bit confusing for me (coming from pure JavaScript). By the term "starters" I just mean "help" in the way that I know where to start my journey into tdo. Like starting from the data models or the user interface or the actions processing. But I already kind of got along.
STRUCTURE DOCUMENTATION I now have some structure drawings which I could provide for review. Should I put them on my own project fork, first?
DEVELOPMENT ENVIRONMENT
How do you devs develop tdo practically? As the executable sources reside as minimized versions within the dist
folder, straight forward debugging using the browser's means doesn't seem adequate. So, now I have to follow this development process:
- apply my changes to the source code
- re-compile
- re-build
- transfer contents from
dist
folder onto client - refresh application within client's browser
- see the results and start all over again
Is there a more comfortable way of development?
OMG, just run yarn start
or npm start
(it's written in the README). That will start a local server and open the browser. JS and CSS get automatically compiled and the browser is auto updated on each save.
For a start, putting the documentation in your own fork first seems reasonable.
Unfortunately, this doesn't seem to be as easy as we'd like it to be. I have been working on two systems (no further system seems to be available), yet:
Windows 7 64bit Here, I successfully installed "node.js" and successfully ran "npm install" from within the tdo project base folder (where the git repo stuff is locally stored). But running "npm run build" afterwards throws two pages full of errors which I can not solve at the moment (due to not being a native node expert). Please see the log file attached to this comment. And running "npm start" as you suggested turns out to do the same thing as "npm run build", just within the automatically opened browser window. :-(
RaspberryPi v3 running Raspbian Linux Here, I don't use any windows environment. This is why I had been able to at least build the application and transfer it to an other client (as described in my last post).
Sorry for this. I hope, there will be some kind of solution available. Am I the only Windows OS user for tdo?
Any help available? Any hints?
I'm not sure why that happens. It seems like an older version of CxJS is used which is missing manifest.js
.
I just updated all dependencies. Can you please pull and try again? It should work.
-> pulled current version using git pull origin master
-> ok (see log)
-> re-installed application using npm install
-> ok (see log)
-> tried npm run build
-> not ok (see logs)
-> tried npm start
-> ??? (shows no errors, but EMPTY browser window)
Strange, I don't get the same error. I have removed ampersands. Now?
https://github.com/codaxy/cxjs/releases - there are only two releases out there, and none is 17.* in which manifest.json appeared --> manifest.js. @nnako check which version of cxjs has been installed inside node_modules
.
@jacekk Unfortunately, GitHub releases for CxJS are not in sync with npm releases. We need to do a better job in that area.
@jacekk my cx version seems to be 17.4.0
or 17.5.2
as the package.json file says so:
{
"_args": [
[
{
"raw": "cx@^17.4.0",
"scope": null,
"escapedName": "cx",
"name": "cx",
"rawSpec": "^17.4.0",
"spec": ">=17.4.0 <18.0.0",
"type": "range"
},
"C:\\Users\\Nnamdi\\02 - TOOLS\\_JavaScript\\APP__tdo\\node_modules\\cx-core"
]
],
"_from": "cx@>=17.4.0 <18.0.0",
"_id": "[email protected]",
"_inCache": true,
"_location": "/cx",
"_nodeVersion": "7.8.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/cx-17.5.2.tgz_1493041510177_0.08263959852047265"
},
"_npmUser": {
"name": "mstijak",
"email": "[email protected]"
},
"_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
"raw": "cx@^17.4.0",
"scope": null,
"escapedName": "cx",
"name": "cx",
"rawSpec": "^17.4.0",
"spec": ">=17.4.0 <18.0.0",
"type": "range"
},
"_requiredBy": [
"/cx-core"
],
"_resolved": "https://registry.npmjs.org/cx/-/cx-17.5.2.tgz",
"_shasum": "9a29f5903d92cd6ddf0fd435bec289bc222d6a92",
"_shrinkwrap": null,
"_spec": "cx@^17.4.0",
"_where": "C:\\Users\\Nnamdi\\02 - TOOLS\\_JavaScript\\APP__tdo\\node_modules\\cx-core",
"author": {
"name": "Codaxy"
},
"bugs": {
"url": "https://github.com/codaxy/cx"
},
"dependencies": {
"intl-io": "^0.2.3",
"route-parser": "^0.0.5"
},
"description": "Advanced JavaScript UI framework for admin and dashboard applications with ready to use grid, form and chart components.",
"devDependencies": {},
"directories": {},
"dist": {
"shasum": "9a29f5903d92cd6ddf0fd435bec289bc222d6a92",
"tarball": "https://registry.npmjs.org/cx/-/cx-17.5.2.tgz"
},
"homepage": "https://github.com/codaxy/cx",
"jsnext:main": "src/index.js",
"license": "SEE LICENSE IN LICENSE.md",
"main": "index.js",
"maintainers": [
{
"name": "mstijak",
"email": "[email protected]"
}
],
"name": "cx",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+ssh://[email protected]/codaxy/cx.git"
},
"scripts": {},
"version": "17.5.2"
}
oh. It seems to work now. What I did on the console:
-> npm install -g create-react-app
... got it from some YouTube video
-> git pull origin master
to pull the latest changes from the repo
-> npm install
again => ok.
-> npm run build
again => ok.
see log for detailed information: log__170426__01__console_output.txt
... why did it work on Raspbian without problems? Hope, it still compiles over there...