Skip to content
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

Improve project structure #1958

Closed
3 tasks
mauriciovieira opened this issue Nov 30, 2016 · 5 comments
Closed
3 tasks

Improve project structure #1958

mauriciovieira opened this issue Nov 30, 2016 · 5 comments

Comments

@mauriciovieira
Copy link
Contributor

mauriciovieira commented Nov 30, 2016

The current project filesystem has about 30 directories and does not seem to follow any guideline. This makes the code difficult to understand and evolve. The meteor website has some guidelines to structure a meteor app using ES 2015 modules, but there might be other good ways as well.

What I envision for tidying up the filesystem is:

  • list all directories that can be structured using ES 2015
  • open an issue for refactor each of these modules
  • update the documentation accordingly and incrementally
@mauriciovieira
Copy link
Contributor Author

@brylie @bajiat my first big suggestion.

@brylie
Copy link
Contributor

brylie commented Nov 30, 2016

For what it's worth, we did put some thought into the current structure, and documented it in our contributor guidelines. This is not to say our structure will never change, but rather we intentionally grouped code into feature modules at the root level of the project.

When viewing the root level of the project, you can see our feature modules such as dashboard, catalog, api, etc. We also started using ES2015 import/exports, but have not transitioned to a fully modular structure. In the long run, we have envisioned that each of these modules, outside of core, might end up as its own NPM package.

@mauriciovieira
Copy link
Contributor Author

I understand, but still it seems to much for the root directory. What about moving all modules into a modules subdirectory, leaving public, docker, modules (and maybe a few other directories) in the root?

@brylie
Copy link
Contributor

brylie commented Nov 30, 2016

Sure, we might even convert the modules to git submodules.

A 'grand vision' would be to architect Apinf in a similar manner to Drupal, where each feature is a module and can be managed from a 'Modules' administrative view.
drupal7_modules

The NodeRed platform has a similar module management UI, including fetching and installing modules from NPM.:

peek 2016-11-30 12-41

@ilarimikkonen
Copy link
Member

wow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

No branches or pull requests

4 participants