Creating new module using module def

Hello;
The developer_mode: 1
Simply I created new module using module def and the module name is Taxi.
I can see the module in the modules.txt and I see taxi directory under erpnext directory.
I created a test document type called test and I set its module to be Taxi (because what I know that I have to create at least one doctype under the module to be visible).
I can see the test directory under the taxi directory which is existed under the erpnext.
Also: I added the following lines in the desktop.py and the following lines in the /config/taxi.py file:
At desktop.py:

            {
                    "module_name": "Taxi",
                    "color": "#DE2B37",
                    "icon": "octicon octicon-mortar-board",
                    "type": "module",
                    "label": _("Taxi")
            }

and At config/taxi.py:

from future import unicode_literals
from frappe import _

def get_data():
return [
{
“label”: _(“Testing”),
“items”: [
{
“type”: “doctype”,
“name”: “Test”,
“description”: _(“Test.”),
}
]
}
]

Now, what is the problem?
The problem that I do not see the module Taxi in the desktop or in the left list.
What I am missing?
I read some posts that they are talking about using bench new-app {app-name}, but I think that creating new app differs than creating new module, because new app will be same as erpnext but new module, it will be like one of the erpnext modules (account, stock, … etc) and that is what I am looking to obtain.
Note: I did restart for the machine.
Appreciate the kindly help.
Regards
Bilal

@bghayad
App and Module are synonyms in this context.
It sounds like you want to create a new app; this gives you the most control. In that app, you’ll probably also want to create a custom moduledef.
Here’s some karma, courtesy of Max:

So do you mean that I have to use bench new-app {app_name} and I can not create that module using module def?
Well, how the hr, stock, account, … etc was created? Because I do not see them under app directory, but I see them under erpnext directory.

Regards
Bilal

I think the problem is that you’re crediting moduledef with more functionality that it really has. It’s a list. It creates a view like this:

As far as I know, it doesn’t do any more than that.

I would be cautious about using the structure of the ERPnext app as an example in general, because it is so highly customized. The other reason to try to isolate changes into apps is that it really helps with version control.