diff --git a/s_license/s_license_module/__init__.py b/s_license/s_license_module/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c6678dcc7269f7b19d9b7d4a7bad1cb7bff7aea
--- /dev/null
+++ b/s_license/s_license_module/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+from . import models
+from . import controller
+from . import wizard
diff --git a/s_license/s_license_module/__manifest__.py b/s_license/s_license_module/__manifest__.py
new file mode 100644
index 0000000000000000000000000000000000000000..980bd930ac0f01a387dbab8b5625c773ac05b5a8
--- /dev/null
+++ b/s_license/s_license_module/__manifest__.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+{
+    'name': "License",
+    'summary': "License",
+    'category': 'Services',
+    'version': '0.1',
+    'depends': ['base','mail', 'web'],
+    'data': [
+        'security/ir.model.access.csv',
+        'views/s_license_view/s_license_view.xml',
+        'views/s_license_view/s_license_register.xml',
+        'views/s_license_view/susscess.xml',
+        'views/s_license_view/menu_item.xml',
+        'wizard/s_license_wizard_view.xml',
+        ],
+    'installable': True,
+    'application': True,
+}
diff --git a/s_license/s_license_module/controller/__init__.py b/s_license/s_license_module/controller/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e9b01988d5742109830d90b3c5608a653b37220
--- /dev/null
+++ b/s_license/s_license_module/controller/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import license_controller
diff --git a/s_license/s_license_module/controller/license_controller.py b/s_license/s_license_module/controller/license_controller.py
new file mode 100644
index 0000000000000000000000000000000000000000..d8006e2c65568b81ba83d0af01791507f11215d4
--- /dev/null
+++ b/s_license/s_license_module/controller/license_controller.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+from odoo import http
+from odoo.http import request
+
+
+class license_controller(http.Controller):
+    @http.route('/license', type='http', auth='public', website=True)
+    def home_license(self):
+        licenses = request.env['license.manager'].search([])
+        return request.render('s_license_module.view_license_register',
+                              {"data": licenses})
+
+    @http.route('/submit_license', type='http', auth='public', methods=['POST'], website=True, csrf=False)
+    def submit_license(self, **kwargs):
+        request.env['license.manager'].create(kwargs)
+        return request.render('s_license_module.license_success_id')
diff --git a/s_license/s_license_module/models/__init__.py b/s_license/s_license_module/models/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9f74564a9a8a9ac95b83a15405eba831052d2e6
--- /dev/null
+++ b/s_license/s_license_module/models/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import s_license
diff --git a/s_license/s_license_module/models/s_license.py b/s_license/s_license_module/models/s_license.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3c4253e83ca323102313f7eeaa4c41fa4d9fea3
--- /dev/null
+++ b/s_license/s_license_module/models/s_license.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api
+
+
+class LicenseManager(models.Model):
+    _name = 'license.manager'
+    _description = 'License'
+    _inherit = ['mail.thread', 'mail.activity.mixin']
+
+    name = fields.Char("Name", tracking=True)
+    start_date = fields.Date('Start Date', tracking=True)
+    end_date = fields.Date('Start End', tracking=True)
+    key = fields.Char("Key", tracking=True)
+    note = fields.Text("Note", tracking=True)
+    status = fields.Selection([
+        ('active', 'Active'),
+        ('inactive', 'Inactive'),
+        ('pending', 'Pending'),
+        ('cancel', 'Cancel')
+    ], string='Status', default='pending', tracking=True)
+
+    def popup_note(self):
+        form_view_id = self.env.ref('s_license_module.form_pop_input_note_id').id
+        return {
+            'name': ('Note'),
+            'res_model': 'license.popup',
+            'view_mode': 'form',
+            'target': 'new',
+            'type': 'ir.actions.act_window',
+            'views': [(form_view_id, 'form')]}
+
+    @api.constrains('name', 'start_date', 'end_date', 'key')
+    def update_status(self):
+        status = "pending"
+        self.status = status
+        self.env["license.manager"].write(self)
diff --git a/s_license/s_license_module/security/ir.model.access.csv b/s_license/s_license_module/security/ir.model.access.csv
new file mode 100644
index 0000000000000000000000000000000000000000..56df68e9f5821cc695c81cc98009fb257e229420
--- /dev/null
+++ b/s_license/s_license_module/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_abc_manager,abc manager,model_license_manager,,1,1,1,1
diff --git a/s_license/s_license_module/static/src/css/license_css.css b/s_license/s_license_module/static/src/css/license_css.css
new file mode 100644
index 0000000000000000000000000000000000000000..e0900ed1093edd5b167c887047da5368a76703c5
--- /dev/null
+++ b/s_license/s_license_module/static/src/css/license_css.css
@@ -0,0 +1,36 @@
+.table-container {
+    width: 100%;
+    margin: 20px 0;
+    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+}
+
+.license-table {
+    width: 100%;
+    border-collapse: collapse;
+    margin-top: 20px;
+}
+
+.license-table thead {
+    background-color: #343a40;
+    color: #ffffff;
+}
+
+.license-table th,
+.license-table td {
+    padding: 12px 15px;
+    text-align: left;
+    border-bottom: 1px solid #dddddd;
+}
+
+.license-table tr:nth-child(even) {
+    background-color: #f2f2f2;
+}
+
+.license-table tr:hover {
+    background-color: #f1f1f1;
+}
+
+.license-table th {
+    background-color: #007bff;
+    color: white;
+}
diff --git a/s_license/s_license_module/static/src/css/s_license_view.css b/s_license/s_license_module/static/src/css/s_license_view.css
new file mode 100644
index 0000000000000000000000000000000000000000..9715cc16b15334cb52a3b4a4a8e1e9281fbe7346
--- /dev/null
+++ b/s_license/s_license_module/static/src/css/s_license_view.css
@@ -0,0 +1,3 @@
+.custome_button_license{
+    background-color: red;
+}
diff --git a/s_license/s_license_module/views/s_license_view/menu_item.xml b/s_license/s_license_module/views/s_license_view/menu_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eea465c9cfd31212e02f2e2538029760b3c6521b
--- /dev/null
+++ b/s_license/s_license_module/views/s_license_view/menu_item.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+    <menuitem id="menu_license_root" name="license" sequence="10"/>
+    <menuitem id="menu_license" name="license" parent="menu_license_root" action="action_license" sequence="10"/>
+</odoo>
diff --git a/s_license/s_license_module/views/s_license_view/s_license_register.xml b/s_license/s_license_module/views/s_license_view/s_license_register.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c65db94a24e9bcbc2107828b05ee4a55b8f05e80
--- /dev/null
+++ b/s_license/s_license_module/views/s_license_view/s_license_register.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <odoo>
+    <template id="view_license_register">
+        <div class="container">
+            <h1>REGISTER LICENSE</h1>
+            <form action = "/submit_license" method = "POST">
+                <div class="form-group">
+                    <label for="lastName">Start date</label>
+                    <input type="date" id="start_date" name="start_date" placeholder="Enter start date" required="True"/>
+                </div>
+                <div class="form-group">
+                    <label for="company">End date</label>
+                    <input type="date" id="end_date" name="end_date" placeholder="Enter End date" required="True"/>
+                </div>
+                <div class="form-group">
+                    <label for="email">UUID</label>
+                    <input type="text" id="key" name="key" placeholder="Enter UUID" required="True"/>
+                </div>
+                <button type="submit" class="submit-btn">Register</button>
+            </form>
+        </div>
+    </template>
+    <data>
+        <template id="assets_backend" name="My Styles" inherit_id = 'view_license_register'>
+            <xpath expr="." position="inside">
+                <link href="/s_license_module/static/src/css/license_css.css" rel="stylesheet" type="text/css"/>
+            </xpath>
+        </template>
+    </data>
+ </odoo>
diff --git a/s_license/s_license_module/views/s_license_view/s_license_view.xml b/s_license/s_license_module/views/s_license_view/s_license_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..10a85639f099c580d5671ee79a6b895b7df97ea5
--- /dev/null
+++ b/s_license/s_license_module/views/s_license_view/s_license_view.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+    <record id="view_form_license" model="ir.ui.view">
+        <field name="name">license.manager.form</field>
+        <field name="model">license.manager</field>
+        <field name="arch" type="xml">
+            <form string="license Form">
+                <header attrs="{'invisible': [('id', '=', False)]}">
+                    <button name="popup_note" string="Active" type="object" class="oe_button oe_highlight"
+                            context="{'button_info': 'active', 'id_license' : active_id}"
+                            attrs="{'invisible' : [('status', '!=', 'pending')]}"/>
+                    <button name="popup_note" string="Cancel" type="object" class="oe_button oe_highlight"
+                            context="{'button_info': 'cancel', 'id_license' : active_id}"
+                            attrs="{'invisible' : [('status', '!=', 'pending')]}"/>
+                    <button name="popup_note" string="inactive" type="object" class="oe_button oe_highlight"
+                            context="{'button_info': 'inactive', 'id_license' : active_id}"
+                            attrs="{'invisible' : [('status', '!=', 'active')]}"/>
+                    <field name="status" widget='statusbar'/>
+                </header>
+                <sheet>
+                    <group>
+                        <group>
+                            <field name="name"/>
+                            <field name="key"/>
+                        </group>
+                        <group>
+                            <field name="start_date"/>
+                            <field name="end_date"/>
+                        </group>
+                    </group>
+                    <div class="oe_chatter">
+                        <field name="message_follower_ids" groups="base.group_user"
+                               options="{'post_refresh': 'recipients'}"/>
+                        <field name="activity_ids"/>
+                        <field name="message_ids"/>
+                    </div>
+                </sheet>
+            </form>
+        </field>
+    </record>
+
+    <record id="view_tree_license" model="ir.ui.view">
+        <field name="name">license.manager.tree</field>
+        <field name="model">license.manager</field>
+        <field name="arch" type="xml">
+            <tree>
+                <field name="name"/>
+                <field name="start_date"/>
+                <field name="end_date"/>
+                <field name="key"/>
+                <field name="note"/>
+                <field name="status"/>
+            </tree>
+        </field>
+    </record>
+
+    <record id="view_license_manager_search" model="ir.ui.view">
+        <field name="name">license.manager.search</field>
+        <field name="model">license.manager</field>
+        <field name="arch" type="xml">
+             <search>
+                <filter string="Active" name="filter_name" domain="[('status', '=', 'active')]"/>
+                <filter string="Inactive" name="filter_inactive" domain="[('status', '=', 'inactive')]"/>
+                <filter string="Pending" name="filter_pending" domain="[('status', '=', 'pending')]"/>
+                <filter string="Cancel" name="filter_cancel" domain="[('status', '=', 'cancel')]"/>
+            </search>
+            <search>
+                <field name="name" string="Name"/>
+                <field name="key" string="Key"/>
+                <field name="start_date" string="Start date"/>
+            </search>
+        </field>
+    </record>
+
+    <record id="view_my_model_kanban" model="ir.ui.view">
+        <field name="name">my.model.kanban</field>
+        <field name="model">license.manager</field>
+        <field name="arch" type="xml">
+            <kanban>
+                <templates>
+                    <t t-name="kanban-box">
+                        <div class="oe_kanban_card">
+                            <strong>Name:
+                                <field name="name"/>
+                            </strong>
+                            <div>Start date:
+                                <field name="start_date"/>
+                            </div>
+                            <div>End date:
+                                <field name="end_date"/>
+                            </div>
+                            <div>Key:
+                                <field name="key"/>
+                            </div>
+                            <div>Note:
+                                <field name="note"/>
+                            </div>
+                            <div>Status:
+                                <field name="status"/>
+                            </div>
+                        </div>
+                    </t>
+                </templates>
+            </kanban>
+        </field>
+    </record>
+
+    <record id="action_license" model="ir.actions.act_window">
+        <field name="name">license.manager</field>
+        <field name="res_model">license.manager</field>
+        <field name="view_mode">tree,form,kanban</field>
+    </record>
+    </odoo>
diff --git a/s_license/s_license_module/views/s_license_view/susscess.xml b/s_license/s_license_module/views/s_license_view/susscess.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca2cf69b0312f0566715fbddb502721c5cdeb643
--- /dev/null
+++ b/s_license/s_license_module/views/s_license_view/susscess.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+        <template id="license_success_id">
+                <div class="container">
+                    <h1>License Registration Successful</h1>
+                    <p>Your license has been registered successfully.</p>
+                </div>
+        </template>
+</odoo>
diff --git a/s_license/s_license_module/wizard/__init__.py b/s_license/s_license_module/wizard/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f7cd57e268a5990f487a6a1069a3f8042dddd21
--- /dev/null
+++ b/s_license/s_license_module/wizard/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import s_license_popup
diff --git a/s_license/s_license_module/wizard/s_license_popup.py b/s_license/s_license_module/wizard/s_license_popup.py
new file mode 100644
index 0000000000000000000000000000000000000000..fff7153b8155c76c60489aa53cf0ebe44495b61e
--- /dev/null
+++ b/s_license/s_license_module/wizard/s_license_popup.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api
+
+
+class LicensePopup(models.TransientModel):
+    _name = 'license.popup'
+    _description = 'License Popup'
+
+    note = fields.Char('Note')
+
+    def confirm_action(self):
+        value_button = self.env.context.get("button_info")
+        id_license = self.env.context.get("id_license")
+        license_update = self.env["license.manager"].browse(id_license)
+        license_update.status = value_button
+        note = self.create_date.strftime('%d/%m/%y') + " - " + self.note
+        if not license_update.note:
+            license_update.note = f"""{note}"""
+        else:
+            license_update.note = f"""{license_update.note}
+{note}"""
+        self.env["license.manager"].write(license_update)
+        return True
diff --git a/s_license/s_license_module/wizard/s_license_wizard_view.xml b/s_license/s_license_module/wizard/s_license_wizard_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1241ce206b8fa8a3c9bd4fa3e97c41ab3b1b6fc2
--- /dev/null
+++ b/s_license/s_license_module/wizard/s_license_wizard_view.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+    <record id="form_pop_input_note_id" model="ir.ui.view">
+        <field name="name">license.manager.form_popup</field>
+        <field name="model">license.popup</field>
+        <field name="arch" type="xml">
+            <form string="">
+                <sheet>
+                    <group>
+                        <field name="note" string="Note" placeholder="Enter note"/>
+                    </group>
+                    <footer>
+                        <button string="Confim" type="object" name="confirm_action" class="btn-primary"/>
+                        <button string="Cancel" class="btn-secondary" special="cancel"/>
+                    </footer>
+                </sheet>
+            </form>
+        </field>
+    </record>
+</odoo>