Project Structure
Nimbus is not opinionated about the project structure and you can adjust it to your needs. But here is a suggestion on how to structure your project.
Let's say we are building an application to track expenses so we can come up with the following structure based on a Domain-Driven-Design (DDD) approach.
Example Application
You can find the full example on GitHub The Expense Repo
Check it out and run it with deno task dev
/-
|- src
|- account
|- core
|- shell
|- auth
|- core
|- shell
|- another-domain
|- context-one
|- core
|- shell
|- context-two
|- core
|- shell
|- shared
|- ...
|- main.ts
|- .gitignore
|- deno.json
|- deno.lock
|- README.mdAt first we want to separate the different domains and contexts of our problem. So we create a directory for each domain like account and auth. We also have a shared directory for things that are used across multiple domains. As seen in the example above, we can separate multiple contexts within a domain into their own directories like context-one and context-two under another-domain.
And secondly we want to separate the core logic from the shell implementation. So we create a core and a shell directory in each context.