As some of you asked and offered help, let me share my plans on developing the project.
Apart from general improvements such as test coverage, bug fixes, the next milestone would be support of other popular SPA frameworks.
To achieve this some architectural changes are needed. At the moment, Goxygen takes files from the
templates folder and creates a project structure by these templates filling in placeholders. This can't work the same way after adding Vue and Angular as the system would have to pick templates specific to a concrete SPA framework.
I have created a Kanban Project on GitHub to track tasks related to adding new SPA frameworks: https://github.com/Shpota/goxygen/projects/1/. I will soon fill in the projects with tasks.
On a high level I see it like this:
The user should be able to run goxygen passing
--angular as an argument.
go run github.com/shpota/goxygen init --vue my-app
The system should also allow running the command in an old way. This way it should default to react.
This will require the following changes:
--angularas an option. As a result, it should invoke
codegen.Generate()passing the selected front end framework and the project name. Eg.
codegen.Generate()and templates structure.
webappfolder there should be three
codegen.Generate()shoyuld be able to figure out which one to use depending on the input parameters. This might also require introducing different
angular.webapp. The structure of components should repeat the one which is implemented for React (ef. there should be a
techcomponent that makes a REST call). The generated application should offer the same UI as in React (CSS can be reused). The app should have two profiles with different REST API endpoints for development and production.
vue.webappfollowing the rules from the previous step. The app can use
axiosas for REST calls (if Vue doesn't have an embedded HTTP client).
I'll soon transfer these options to tasks on the project board https://github.com/Shpota/goxygen/projects/1/.
Of course, these are only drafts. Actual implementation might require some other changes or different architectural approaches.
If you have some other ideas or have the willingness to help feel free to write in this chat and we can discuss the details.
Ok, tonight I'll bring more detailed descriptions and make first steps (I am in GMT+2).
I am also planning to translate README to different languages. I'll handle Ukrainian, Russian and, if I manage to, German.
If you have a desire to translate it to any other language I will gladly accept them. Just add a translated README to the
./.github/ folder, for instance
./.github/README_de.md for German. Later I'll link all together so that a reader will be able to navigate from one language to another.
.jsextension is a probably confusing, but it has nothing to do with the front end. It is just that MongDB uses JS as a query language.
I note nobody is working on the cli now(is any?), I am going to work on it
--angularwould not make it much complex.
gccto compile, etc (I am not sure though if https://github.com/urfave/cli requires them).