diff --git a/estate/__init__.py b/estate/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/estate/__manifest__.py b/estate/__manifest__.py
new file mode 100644
index 0000000000..0401ac624e
--- /dev/null
+++ b/estate/__manifest__.py
@@ -0,0 +1,41 @@
+{
+ 'name': 'estate',
+ 'depends': [
+ 'website',
+ ],
+ 'data': [
+ 'models/estate_models.xml',
+
+ 'models/fields/estate_property_type.xml',
+ 'models/fields/estate_property_tag.xml',
+ 'models/fields/estate_property_offer.xml',
+ 'models/fields/estate_property.xml',
+
+ 'models/estate_server_actions.xml',
+
+ 'views/estate_property_type_views.xml',
+ 'views/estate_property_tag_views.xml',
+ 'views/estate_property_offer_views.xml',
+ 'views/estate_property_views.xml',
+
+ 'views/estate_menus.xml',
+ 'security/ir.model.access.csv',
+ 'security/estate.security.xml',
+
+ 'data/estate_tour.xml',
+
+ ],
+
+ 'demo': [
+ 'demo/x_estate.property.type.csv',
+ 'demo/x_estate.property.tag.csv',
+ 'demo/x_estate.property.xml',
+ ],
+
+ "assets": {
+ "web.assets_backend": [
+ "estate/static/src/js/tour.js",
+ ],
+ },
+ 'license': 'LGPL-3',
+}
diff --git a/estate/data/estate_tour.xml b/estate/data/estate_tour.xml
new file mode 100644
index 0000000000..f892091d12
--- /dev/null
+++ b/estate/data/estate_tour.xml
@@ -0,0 +1,8 @@
+
+
+
+ estate_tour
+ 2
+ Welcome! Happy exploring.
+
+
\ No newline at end of file
diff --git a/estate/demo/x_estate.property.tag.csv b/estate/demo/x_estate.property.tag.csv
new file mode 100644
index 0000000000..aa5e85c9b9
--- /dev/null
+++ b/estate/demo/x_estate.property.tag.csv
@@ -0,0 +1,6 @@
+"id","x_name"
+"tag_1","Luxury"
+"tag_2","Modern"
+"tag_3","Eco-Friendly"
+"tag_4","Cozy"
+"tag_5","Spacious"
diff --git a/estate/demo/x_estate.property.type.csv b/estate/demo/x_estate.property.type.csv
new file mode 100644
index 0000000000..7a6821f124
--- /dev/null
+++ b/estate/demo/x_estate.property.type.csv
@@ -0,0 +1,5 @@
+"id","x_name"
+"type_1","Residential"
+"type_2","Commercial"
+"type_3","Industrial"
+"type_4","Land"
diff --git a/estate/demo/x_estate.property.xml b/estate/demo/x_estate.property.xml
new file mode 100644
index 0000000000..29bcfb88d7
--- /dev/null
+++ b/estate/demo/x_estate.property.xml
@@ -0,0 +1,33 @@
+
+
+
+ Big Villa
+ A nice and big villa
+ 12345
+
+ 1600000
+ 6
+ 100
+ 4
+ True
+ True
+ 100000
+ south
+
+ True
+
+
+
+ Trailer home
+ Home in a trailer park
+ 54321
+
+ 100000
+ 1
+ 10
+ 4
+ False
+
+
+
+
diff --git a/estate/models/estate_models.xml b/estate/models/estate_models.xml
new file mode 100644
index 0000000000..d7e4bc67dd
--- /dev/null
+++ b/estate/models/estate_models.xml
@@ -0,0 +1,24 @@
+
+
+
+ Real Estate Property
+ x_estate.property
+
+
+
+ Property Type
+ x_estate.property.type
+
+
+
+ Property Tag
+ x_estate.property.tag
+
+
+
+
+ Property Offer
+ x_estate.property.offer
+
+
+
diff --git a/estate/models/estate_server_actions.xml b/estate/models/estate_server_actions.xml
new file mode 100644
index 0000000000..9e85188008
--- /dev/null
+++ b/estate/models/estate_server_actions.xml
@@ -0,0 +1,31 @@
+
+
+
+ Accept Offer
+
+ code
+
+
+
+
+ Estate List
+
+ True
+ estate
+ code
+ Properties
'
+for property in request.env['x_estate.property'].search([]):
+ html += f'- {property.x_name}
'
+html += '