diff --git a/gen_route.sh b/gen_route.sh
new file mode 100755
index 0000000..8aabeaf
--- /dev/null
+++ b/gen_route.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+PWD_=$PWD
+BASE='route_template'
+NAME=$1
+NAME_UPPERFIRST=$(echo "$NAME"|sed 's/^./\U&/')
+
+PROJ='gpp'
+APP='port'
+
+
+rm -rf "$BASE.tmp"
+cp -r $BASE $BASE.tmp
+cd "$BASE.tmp"
+
+# update template with last routes
+cp $PWD_/$PROJ/urls.py ./proj/urls.py
+cp $PWD_/$APP/views.py ./proj/views.py
+
+# rename template dir names according to
+# current projet
+mv ./proj $PROJ
+mv ./app $APP
+
+# PROJ
+SEDCMD="s/# NEW_ROUTE/"
+SEDCMD=$SEDCMD"path('$NAME\/',"
+SEDCMD=$SEDCMD"include('$APP.urls.$NAME',"
+SEDCMD=$SEDCMD"namespace='$NAME')),/"
+sed -i "$SEDCMD" ./$PROJ/urls.py
+
+#APP
+cd $APP
+SEDCMD="s/#NAME#/$NAME/g;"
+SEDCMD=$SEDCMD"s/#NAME_UPPERFIRST#/$NAME_UPPERFIRST/g"
+
+## URLS
+sed -i "$SEDCMD" ./urls/new.py
+mv urls/new.py urls/$NAME.py
+
+## VIEWS
+sed -i "$SEDCMD" ./views/new.py
+mv views/new.py views/$NAME.py
+
+## TEMPLATES
+for FILE in ./templates/new/*
+do
+ sed -i $SEDCMD $FILE;
+done
+mv ./templates/new ./templates/$NAME
+
+sed -i "$SEDCMD" ./urls/$NAME.py
+
+exit 0
diff --git a/route_template/.tmp/gpp/urls.py b/route_template/.tmp/gpp/urls.py
new file mode 100644
index 0000000..e0b7360
--- /dev/null
+++ b/route_template/.tmp/gpp/urls.py
@@ -0,0 +1,25 @@
+"""gpp URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/2.2/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: path('', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
+Including another URLconf
+ 1. Import the include() function: from django.urls import include, path
+ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import include, path
+
+urlpatterns = [
+ #path('', include('port.urls', namespace='index')),
+ path('port/', include('port.urls.port', namespace='port')),
+ path('person/', include('port.urls.person', namespace='person')),
+ path('boat/', include('port.urls.boat', namespace='boat')),
+ path('admin/', admin.site.urls),
+]
diff --git a/route_template/.tmp/port/templates/new/add.html b/route_template/.tmp/port/templates/new/add.html
new file mode 100644
index 0000000..1e5e5ad
--- /dev/null
+++ b/route_template/.tmp/port/templates/new/add.html
@@ -0,0 +1,32 @@
+{% extends "base.html" %}
+{% block content %}
+
+{% endblock %}
diff --git a/route_template/.tmp/port/templates/new/list.html b/route_template/.tmp/port/templates/new/list.html
new file mode 100644
index 0000000..8b2defb
--- /dev/null
+++ b/route_template/.tmp/port/templates/new/list.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+{% block content %}
+
+{% for person in persons.all %}
+ - {{ person }}
+{% endfor %}
+
+{% endblock %}
diff --git a/route_template/.tmp/port/urls/person.py b/route_template/.tmp/port/urls/person.py
new file mode 100644
index 0000000..bebcae3
--- /dev/null
+++ b/route_template/.tmp/port/urls/person.py
@@ -0,0 +1,13 @@
+from django.urls import path
+
+from ..views.person import *
+
+app_name = 'person'
+urlpatterns = [
+ path('', index, name='index'),
+ path('list', list_persons, name='list'),
+ path('form', form_person, name='form'),
+ path('add', add_person, name='add'),
+
+]
+
diff --git a/route_template/.tmp/port/views/person.py b/route_template/.tmp/port/views/person.py
new file mode 100644
index 0000000..bc8101e
--- /dev/null
+++ b/route_template/.tmp/port/views/person.py
@@ -0,0 +1,22 @@
+from django.shortcuts import render
+from django.http import HttpResponse
+
+from pprint import pprint
+
+from ..models import *
+from ..forms import *
+
+def index(request):
+ return HttpResponse("Hello Person")
+
+def list_persons(request):
+# TO IMPLEMENT
+ pass
+
+def form_person(request):
+# TO IMPLEMENT
+ pass
+
+def add_person(request):
+# TO IMPLEMENT
+ pass
diff --git a/route_template/app/templates/new/add.html b/route_template/app/templates/new/add.html
new file mode 100644
index 0000000..acaece7
--- /dev/null
+++ b/route_template/app/templates/new/add.html
@@ -0,0 +1,12 @@
+{% extends "base.html" %}
+{% block content %}
+
+{% endblock %}
diff --git a/route_template/app/templates/new/list.html b/route_template/app/templates/new/list.html
new file mode 100644
index 0000000..b2119c6
--- /dev/null
+++ b/route_template/app/templates/new/list.html
@@ -0,0 +1,9 @@
+{% extends "base.html" %}
+{% block content %}
+
+
+{% for #NAME# in #NAME#s.all %}
+ - {{ #NAME# }}
+{% endfor %}
+
+{% endblock %}
diff --git a/route_template/app/urls/new.py b/route_template/app/urls/new.py
new file mode 100644
index 0000000..f71423b
--- /dev/null
+++ b/route_template/app/urls/new.py
@@ -0,0 +1,13 @@
+from django.urls import path
+
+from ..views.#NAME# import *
+
+app_name = '#NAME#'
+urlpatterns = [
+ path('', index, name='index'),
+ path('list', list_#NAME#s, name='list'),
+ path('form', form_#NAME#, name='form'),
+ path('add', add_#NAME#, name='add'),
+
+]
+
diff --git a/route_template/app/views/new.py b/route_template/app/views/new.py
new file mode 100644
index 0000000..ac2add6
--- /dev/null
+++ b/route_template/app/views/new.py
@@ -0,0 +1,22 @@
+from django.shortcuts import render
+from django.http import HttpResponse
+
+from pprint import pprint
+
+from ..models import *
+from ..forms import *
+
+def index(request):
+ return HttpResponse("Hello #NAME_UPPERFIRST#")
+
+def list_#NAME#s(request):
+# TO IMPLEMENT
+ pass
+
+def form_#NAME#(request):
+# TO IMPLEMENT
+ pass
+
+def add_#NAME#(request):
+# TO IMPLEMENT
+ pass
diff --git a/route_template/proj/urls.py b/route_template/proj/urls.py
new file mode 100644
index 0000000..e0b7360
--- /dev/null
+++ b/route_template/proj/urls.py
@@ -0,0 +1,25 @@
+"""gpp URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/2.2/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: path('', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
+Including another URLconf
+ 1. Import the include() function: from django.urls import include, path
+ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import include, path
+
+urlpatterns = [
+ #path('', include('port.urls', namespace='index')),
+ path('port/', include('port.urls.port', namespace='port')),
+ path('person/', include('port.urls.person', namespace='person')),
+ path('boat/', include('port.urls.boat', namespace='boat')),
+ path('admin/', admin.site.urls),
+]