# Solution & Organization

# Create

MiruCli should be used to create a new Solution:

miru new Supportreon

It will create a /Supportreon directory with a solution, projects and default directories will be explained soon.

# Solution

By default, a Miru solution is created with 3 projects:

Project Example Description
App Supportreon Main web application
Tests Supportreon.Tests Unit, integration, and custom tests
Page.Tests Supportreon.PageTests Page and System tests through browser

# Directories

miru new creates the following directory structure tree:

# '/' (Root)

Relative Path Description
/src The application
/storage Stores files used or generated by the projects (db, images, etc)
/temp Temporary files used or generated by the projects (logs, cache, etc)
/tests The application's tests
/Supportreon.sln Solution file

# /src

Relative Path Description
/src/{App} Main production Project (e.g /src/Supportreon)

# /src/{App}

Relative Path Description
/src/{App}/Config Services configurations
/src/{App}/Consolables All app's Consolables
/src/{App}/Database DbContext, Migrations and other Database related
/src/{App}/Domain Entites, Services and other Domain related
/src/{App}/Features Features Folders
/src/{App}/resources Frontend related like Javascript, Css, Images and others
/src/{App}/wwwroot Compiled frontend assets by webpack
/src/{App}/{App}.csproj (e.g /src/Supportreon/Supportreon.csproj)
/src/{App}/appSettings-example.yml Application's appSettings example
/src/{App}/appSettings.{Environment}.yml Application's appSettings for an environment
/src/{App}/package.json Npm's package.json
/src/{App}/webpack.mix.js Laravel Mix Webpack's configurations

# /tests

Relative Path Description
/tests/{Tests} Project for unit and integration tests
/tests/{PageTests} Project for page tests