diff --git a/osinaweb/addressbook/__pycache__/__init__.cpython-311.pyc b/osinaweb/addressbook/__pycache__/__init__.cpython-311.pyc
index 2c8f7eda..6b7a4f67 100644
Binary files a/osinaweb/addressbook/__pycache__/__init__.cpython-311.pyc and b/osinaweb/addressbook/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/__pycache__/admin.cpython-311.pyc b/osinaweb/addressbook/__pycache__/admin.cpython-311.pyc
index fa56be27..56c8a839 100644
Binary files a/osinaweb/addressbook/__pycache__/admin.cpython-311.pyc and b/osinaweb/addressbook/__pycache__/admin.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/__pycache__/apps.cpython-311.pyc b/osinaweb/addressbook/__pycache__/apps.cpython-311.pyc
index acbe1ea2..3271ac76 100644
Binary files a/osinaweb/addressbook/__pycache__/apps.cpython-311.pyc and b/osinaweb/addressbook/__pycache__/apps.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/__pycache__/models.cpython-311.pyc b/osinaweb/addressbook/__pycache__/models.cpython-311.pyc
index 2e3fad38..4a96ae58 100644
Binary files a/osinaweb/addressbook/__pycache__/models.cpython-311.pyc and b/osinaweb/addressbook/__pycache__/models.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-311.pyc b/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-311.pyc
index 0ff9b9d7..c30c706d 100644
Binary files a/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-311.pyc and b/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-311.pyc b/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-311.pyc
index e2641c4a..71dd5642 100644
Binary files a/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-311.pyc and b/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-311.pyc b/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-311.pyc
index b9429398..9a8d765b 100644
Binary files a/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-311.pyc and b/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-311.pyc b/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-311.pyc
index 67e0fda5..eff02d84 100644
Binary files a/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-311.pyc and b/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-311.pyc b/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-311.pyc
index 5be258f7..256ced49 100644
Binary files a/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-311.pyc and b/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-311.pyc differ
diff --git a/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-311.pyc b/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-311.pyc
index 378659f6..73c66128 100644
Binary files a/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-311.pyc and b/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/billing/__pycache__/__init__.cpython-311.pyc b/osinaweb/billing/__pycache__/__init__.cpython-311.pyc
index eb7fcf6b..b5853e55 100644
Binary files a/osinaweb/billing/__pycache__/__init__.cpython-311.pyc and b/osinaweb/billing/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/billing/__pycache__/admin.cpython-311.pyc b/osinaweb/billing/__pycache__/admin.cpython-311.pyc
index c4c2ab03..7f159552 100644
Binary files a/osinaweb/billing/__pycache__/admin.cpython-311.pyc and b/osinaweb/billing/__pycache__/admin.cpython-311.pyc differ
diff --git a/osinaweb/billing/__pycache__/apps.cpython-311.pyc b/osinaweb/billing/__pycache__/apps.cpython-311.pyc
index 23967614..8be5d8ce 100644
Binary files a/osinaweb/billing/__pycache__/apps.cpython-311.pyc and b/osinaweb/billing/__pycache__/apps.cpython-311.pyc differ
diff --git a/osinaweb/billing/__pycache__/models.cpython-311.pyc b/osinaweb/billing/__pycache__/models.cpython-311.pyc
index 452b8daf..d85ebca1 100644
Binary files a/osinaweb/billing/__pycache__/models.cpython-311.pyc and b/osinaweb/billing/__pycache__/models.cpython-311.pyc differ
diff --git a/osinaweb/billing/__pycache__/urls.cpython-311.pyc b/osinaweb/billing/__pycache__/urls.cpython-311.pyc
index 36a596ce..c14f4353 100644
Binary files a/osinaweb/billing/__pycache__/urls.cpython-311.pyc and b/osinaweb/billing/__pycache__/urls.cpython-311.pyc differ
diff --git a/osinaweb/billing/__pycache__/views.cpython-311.pyc b/osinaweb/billing/__pycache__/views.cpython-311.pyc
index cb41a5e9..c363c31f 100644
Binary files a/osinaweb/billing/__pycache__/views.cpython-311.pyc and b/osinaweb/billing/__pycache__/views.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-311.pyc
index 382a6d40..4df23bf3 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0002_service_active_service_cancelled_at_and_more.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0002_service_active_service_cancelled_at_and_more.cpython-311.pyc
index b4322eee..9c18dce0 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0002_service_active_service_cancelled_at_and_more.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0002_service_active_service_cancelled_at_and_more.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-311.pyc
index 8b71f5d5..192f27b3 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0004_rename_payment_paymenttype.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0004_rename_payment_paymenttype.cpython-311.pyc
index 263f79e2..85bd8236 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0004_rename_payment_paymenttype.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0004_rename_payment_paymenttype.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-311.pyc
index ff1f1160..997b66cb 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-311.pyc
index 220c6f4e..e731521d 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-311.pyc
index 93d21bb1..4c1ee81b 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-311.pyc
index 36bfce2d..a4bfaf12 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-311.pyc
index ec26a54e..3b45946b 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-311.pyc
index bb43163b..8b329eed 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0011_invoice.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0011_invoice.cpython-311.pyc
index f3b161bf..c3356e96 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0011_invoice.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0011_invoice.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-311.pyc
index 6ff119ee..43ed66cb 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-311.pyc
index 826400d7..84bde705 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-311.pyc
index a5c64421..3f1a13c0 100644
Binary files a/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-311.pyc differ
diff --git a/osinaweb/billing/migrations/__pycache__/__init__.cpython-311.pyc b/osinaweb/billing/migrations/__pycache__/__init__.cpython-311.pyc
index 3ca9a339..abfef07c 100644
Binary files a/osinaweb/billing/migrations/__pycache__/__init__.cpython-311.pyc and b/osinaweb/billing/migrations/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3
index 9a7133f5..4d75c10a 100644
Binary files a/osinaweb/db.sqlite3 and b/osinaweb/db.sqlite3 differ
diff --git a/osinaweb/input.css b/osinaweb/input.css
index 1ca6625e..81f3fbb7 100644
--- a/osinaweb/input.css
+++ b/osinaweb/input.css
@@ -6,7 +6,6 @@
::-webkit-scrollbar {
width: 5px;
/* Width of the entire scrollbar */
-
}
::-webkit-scrollbar-thumb {
@@ -20,6 +19,24 @@
}
+/* Website's font */
+@font-face {
+ font-family: 'Poppins';
+ src: url('../dist/fonts/Poppins-Regular.ttf');
+}
+
+@font-face {
+ font-family: 'Poppins ExtraBold';
+ src: url('../dist/fonts/Poppins-ExtraBold.ttf');
+}
+
+@font-face {
+ font-family: 'Poppins Bold';
+ src: url('../dist/fonts/Poppins-Bold.ttf');
+}
+
+
+
/* FOR THE IFRAME TO TAKE 95% OF WIDTH ON SMALL SCREEN SIZES */
@media screen and (max-width: 798px) {
#popupModalFrame {
diff --git a/osinaweb/osinacore/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinacore/__pycache__/__init__.cpython-311.pyc
index d0de633d..7d599bff 100644
Binary files a/osinaweb/osinacore/__pycache__/__init__.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc b/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc
index 92f12dcb..1a1661b9 100644
Binary files a/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc b/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc
index 87cb917c..df4304d3 100644
Binary files a/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-311.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-311.pyc
index e9cc800d..0d69db69 100644
Binary files a/osinaweb/osinacore/__pycache__/custom_context.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/custom_context.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc b/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc
index 4b1371a5..d04b1ed2 100644
Binary files a/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/models.cpython-311.pyc b/osinaweb/osinacore/__pycache__/models.cpython-311.pyc
index 52778902..eb7b35b4 100644
Binary files a/osinaweb/osinacore/__pycache__/models.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/models.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/urls.cpython-311.pyc b/osinaweb/osinacore/__pycache__/urls.cpython-311.pyc
index f701e047..c97b2a75 100644
Binary files a/osinaweb/osinacore/__pycache__/urls.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/urls.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/__pycache__/views.cpython-311.pyc b/osinaweb/osinacore/__pycache__/views.cpython-311.pyc
index 4356117a..85002fcd 100644
Binary files a/osinaweb/osinacore/__pycache__/views.cpython-311.pyc and b/osinaweb/osinacore/__pycache__/views.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc
index eb42e205..e1e627c1 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0002_projecttype_alter_business_options_staffprofile_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0002_projecttype_alter_business_options_staffprofile_and_more.cpython-311.pyc
index 8cf2a65e..b4f02fd0 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0002_projecttype_alter_business_options_staffprofile_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0002_projecttype_alter_business_options_staffprofile_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0003_milestone.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0003_milestone.cpython-311.pyc
index 8f8ba243..02286cd6 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0003_milestone.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0003_milestone.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0004_epic.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0004_epic.cpython-311.pyc
index 0e00821d..bd7b9bce 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0004_epic.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0004_epic.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0005_staffprofile_image.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0005_staffprofile_image.cpython-311.pyc
index d8f91b54..f04e9ba3 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0005_staffprofile_image.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0005_staffprofile_image.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-311.pyc
index 4258f23b..ba3d6127 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-311.pyc
index 9bdb517c..c52e3e20 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0008_alter_project_project_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0008_alter_project_project_id.cpython-311.pyc
index 8580fec3..09807425 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0008_alter_project_project_id.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0008_alter_project_project_id.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-311.pyc
index 9c6ae8f0..bde9042f 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0010_remove_note_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0010_remove_note_date.cpython-311.pyc
index 1a818b03..91fd8793 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0010_remove_note_date.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0010_remove_note_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0011_note_date_alter_note_color_alter_note_text_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0011_note_date_alter_note_color_alter_note_text_and_more.cpython-311.pyc
index aaa929f9..72199c58 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0011_note_date_alter_note_color_alter_note_text_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0011_note_date_alter_note_color_alter_note_text_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0012_projectrequirement.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0012_projectrequirement.cpython-311.pyc
index b59cd99f..9637b39c 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0012_projectrequirement.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0012_projectrequirement.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0013_projectfile.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0013_projectfile.cpython-311.pyc
index 81d9a06e..9478a8ce 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0013_projectfile.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0013_projectfile.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-311.pyc
index 9cb033e9..cda66895 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-311.pyc
index 316f2652..6e5350fc 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-311.pyc
index 63519aa4..6bb87faa 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-311.pyc
index 951729f7..38b30a81 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-311.pyc
index e1b56675..67791e8e 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-311.pyc
index 419aedf4..2117084c 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc
index 268808f9..4432886d 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0021_alter_customerprofile_business_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0021_alter_customerprofile_business_and_more.cpython-311.pyc
index ac8b2fe7..8e33169d 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0021_alter_customerprofile_business_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0021_alter_customerprofile_business_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-311.pyc
index e1a5658b..e400332c 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-311.pyc
index 52b7c1f1..e0b5ed33 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-311.pyc
index e75ea01c..aa9cc236 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-311.pyc
index 62acccb1..7fc9e8f5 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0026_remove_status_user_status_staff.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0026_remove_status_user_status_staff.cpython-311.pyc
index a5a64946..30eae1c7 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0026_remove_status_user_status_staff.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0026_remove_status_user_status_staff.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0027_alter_status_staff.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0027_alter_status_staff.cpython-311.pyc
index 309e2bc9..e976db3f 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0027_alter_status_staff.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0027_alter_status_staff.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-311.pyc
index a734d08b..719009e7 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-311.pyc
index 4c8e7bc5..53ff0ab2 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc
index 02f71014..fdc8eaf1 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-311.pyc
index 5cd8111b..00d99676 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-311.pyc
index 55a8f75e..4f9d7a9e 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-311.pyc
index 9dd816f9..71a95f30 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-311.pyc
index 1cd1ccb4..b924973a 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-311.pyc
index 4cf4fb4c..2cbbc0ad 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-311.pyc
index 42f1787f..3d0d1454 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0037_remove_staffprofile_position.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0037_remove_staffprofile_position.cpython-311.pyc
index 6efc9a69..057904df 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0037_remove_staffprofile_position.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0037_remove_staffprofile_position.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-311.pyc
index 5c9fd374..85c0021e 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0039_alter_staffprofile_staff_position.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0039_alter_staffprofile_staff_position.cpython-311.pyc
index f14c8e5f..faca079f 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0039_alter_staffprofile_staff_position.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0039_alter_staffprofile_staff_position.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-311.pyc
index 64efe35f..49d508cd 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-311.pyc
index fbaa4379..c1d4c1af 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0042_remove_customerprofile_email_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0042_remove_customerprofile_email_and_more.cpython-311.pyc
index 9cb665f8..326b5de0 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0042_remove_customerprofile_email_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0042_remove_customerprofile_email_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-311.pyc
index f8359049..f3b690c0 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-311.pyc
index 39d12045..031e0bdc 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0044_remove_business_business_type.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-311.pyc
index a4ff33c0..1be33614 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0045_business_type.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0046_task_requirement.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0046_task_requirement.cpython-311.pyc
index 4ff09b16..3bd36a37 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0046_task_requirement.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0046_task_requirement.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-311.pyc
index ff7c0714..32a1a841 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-311.pyc
index 4dec2a41..6d4def42 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-311.pyc
index fa045cc4..8211d6f6 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-311.pyc
index f844e00f..082593fc 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-311.pyc
index 70270b41..caa86f67 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0052_note_project.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0052_note_project.cpython-311.pyc
index d55c5c07..c396ed20 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0052_note_project.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0052_note_project.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-311.pyc
index 0346b85c..339e4638 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-311.pyc
index cffc1e89..88acb824 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0055_alter_point_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0055_alter_point_status.cpython-311.pyc
index b78c59f4..9a4322b5 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0055_alter_point_status.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0055_alter_point_status.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0056_alter_pointactivity_end_time.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0056_alter_pointactivity_end_time.cpython-311.pyc
index 1b169cb6..168c6e71 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0056_alter_pointactivity_end_time.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0056_alter_pointactivity_end_time.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-311.pyc
index d262ec7e..6dc78882 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0058_remove_point_total_time_hours_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0058_remove_point_total_time_hours_and_more.cpython-311.pyc
index ebd47d77..a5183b23 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/0058_remove_point_total_time_hours_and_more.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/0058_remove_point_total_time_hours_and_more.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0059_alter_task_requirement.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0059_alter_task_requirement.cpython-311.pyc
new file mode 100644
index 00000000..8e2f289f
Binary files /dev/null and b/osinaweb/osinacore/migrations/__pycache__/0059_alter_task_requirement.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0060_pointactivity_total_time.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0060_pointactivity_total_time.cpython-311.pyc
new file mode 100644
index 00000000..d5eda192
Binary files /dev/null and b/osinaweb/osinacore/migrations/__pycache__/0060_pointactivity_total_time.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/0061_alter_task_end_date_alter_task_start_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0061_alter_task_end_date_alter_task_start_date.cpython-311.pyc
new file mode 100644
index 00000000..792f297f
Binary files /dev/null and b/osinaweb/osinacore/migrations/__pycache__/0061_alter_task_end_date_alter_task_start_date.cpython-311.pyc differ
diff --git a/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc
index cb82d765..ae0b1f7d 100644
Binary files a/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc and b/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc
index 384d43ce..8c18cd56 100644
Binary files a/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc and b/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc differ
diff --git a/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc
index aebec598..906fb83a 100644
Binary files a/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc and b/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc differ
diff --git a/osinaweb/osinaweb/__pycache__/urls.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/urls.cpython-311.pyc
index 09097615..d47b92dd 100644
Binary files a/osinaweb/osinaweb/__pycache__/urls.cpython-311.pyc and b/osinaweb/osinaweb/__pycache__/urls.cpython-311.pyc differ
diff --git a/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc
index 3c8dcc8c..0a6c2750 100644
Binary files a/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc and b/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc differ
diff --git a/osinaweb/static/dist/fonts/Poppins-Bold.ttf b/osinaweb/static/dist/fonts/Poppins-Bold.ttf
new file mode 100644
index 00000000..89b46e7b
Binary files /dev/null and b/osinaweb/static/dist/fonts/Poppins-Bold.ttf differ
diff --git a/osinaweb/static/dist/fonts/Poppins-ExtraBold.ttf b/osinaweb/static/dist/fonts/Poppins-ExtraBold.ttf
new file mode 100644
index 00000000..320070de
Binary files /dev/null and b/osinaweb/static/dist/fonts/Poppins-ExtraBold.ttf differ
diff --git a/osinaweb/static/dist/fonts/Poppins-Regular.ttf b/osinaweb/static/dist/fonts/Poppins-Regular.ttf
new file mode 100644
index 00000000..e48144ef
Binary files /dev/null and b/osinaweb/static/dist/fonts/Poppins-Regular.ttf differ
diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css
index 4af91226..516679e9 100644
--- a/osinaweb/static/dist/output.css
+++ b/osinaweb/static/dist/output.css
@@ -1,5 +1,5 @@
/*
-! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
+! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
*/
/*
@@ -32,9 +32,11 @@
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
+7. Disable tap highlights on iOS
*/
-html {
+html,
+:host {
line-height: 1.5;
/* 1 */
-webkit-text-size-adjust: 100%;
@@ -44,12 +46,14 @@ html {
-o-tab-size: 4;
tab-size: 4;
/* 3 */
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
/* 4 */
font-feature-settings: normal;
/* 5 */
font-variation-settings: normal;
/* 6 */
+ -webkit-tap-highlight-color: transparent;
+ /* 7 */
}
/*
@@ -121,8 +125,10 @@ strong {
}
/*
-1. Use the user's configured `mono` font family by default.
-2. Correct the odd `em` font sizing in all browsers.
+1. Use the user's configured `mono` font-family by default.
+2. Use the user's configured `mono` font-feature-settings by default.
+3. Use the user's configured `mono` font-variation-settings by default.
+4. Correct the odd `em` font sizing in all browsers.
*/
code,
@@ -131,8 +137,12 @@ samp,
pre {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
/* 1 */
- font-size: 1em;
+ font-feature-settings: normal;
/* 2 */
+ font-variation-settings: normal;
+ /* 3 */
+ font-size: 1em;
+ /* 4 */
}
/*
@@ -628,6 +638,10 @@ video {
}
}
+.pointer-events-none {
+ pointer-events: none;
+}
+
.visible {
visibility: visible;
}
@@ -670,6 +684,10 @@ video {
bottom: 0px;
}
+.-right-40 {
+ right: -10rem;
+}
+
.bottom-0 {
bottom: 0px;
}
@@ -694,6 +712,14 @@ video {
left: 0px;
}
+.left-10 {
+ left: 2.5rem;
+}
+
+.left-32 {
+ left: 8rem;
+}
+
.right-0 {
right: 0px;
}
@@ -714,6 +740,10 @@ video {
right: 0.75rem;
}
+.right-36 {
+ right: 9rem;
+}
+
.right-5 {
right: 1.25rem;
}
@@ -726,10 +756,6 @@ video {
top: 0.25rem;
}
-.top-1\/2 {
- top: 50%;
-}
-
.top-10 {
top: 2.5rem;
}
@@ -738,10 +764,22 @@ video {
top: 0.5rem;
}
+.top-20 {
+ top: 5rem;
+}
+
.top-3 {
top: 0.75rem;
}
+.top-\[14px\] {
+ top: 14px;
+}
+
+.z-0 {
+ z-index: 0;
+}
+
.z-10 {
z-index: 10;
}
@@ -750,10 +788,18 @@ video {
z-index: 20;
}
+.z-30 {
+ z-index: 30;
+}
+
.z-50 {
z-index: 50;
}
+.m-auto {
+ margin: auto;
+}
+
.mx-auto {
margin-left: auto;
margin-right: auto;
@@ -799,6 +845,10 @@ video {
margin-left: 300px;
}
+.mt-0 {
+ margin-top: 0px;
+}
+
.mt-1 {
margin-top: 0.25rem;
}
@@ -831,6 +881,10 @@ video {
margin-top: 0.75rem;
}
+.mt-32 {
+ margin-top: 8rem;
+}
+
.mt-4 {
margin-top: 1rem;
}
@@ -951,10 +1005,18 @@ video {
height: 30px;
}
+.h-\[33px\] {
+ height: 33px;
+}
+
.h-\[35px\] {
height: 35px;
}
+.h-\[3px\] {
+ height: 3px;
+}
+
.h-\[400px\] {
height: 400px;
}
@@ -1048,6 +1110,10 @@ video {
width: 220px;
}
+.w-\[22px\] {
+ width: 22px;
+}
+
.w-\[25\%\] {
width: 25%;
}
@@ -1060,6 +1126,10 @@ video {
width: 25px;
}
+.w-\[28px\] {
+ width: 28px;
+}
+
.w-\[2px\] {
width: 2px;
}
@@ -1076,6 +1146,10 @@ video {
width: 30px;
}
+.w-\[34px\] {
+ width: 34px;
+}
+
.w-\[35px\] {
width: 35px;
}
@@ -1084,6 +1158,10 @@ video {
width: 380px;
}
+.w-\[400px\] {
+ width: 400px;
+}
+
.w-\[40px\] {
width: 40px;
}
@@ -1120,6 +1198,10 @@ video {
width: 80%;
}
+.w-\[85\%\] {
+ width: 85%;
+}
+
.w-\[90\%\] {
width: 90%;
}
@@ -1142,7 +1224,7 @@ video {
}
.max-w-0 {
- max-width: 0rem;
+ max-width: 0px;
}
.max-w-2xl {
@@ -1186,13 +1268,46 @@ video {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.-translate-y-1\/2 {
- --tw-translate-y: -50%;
+.transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.transform {
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+@keyframes blob {
+ 0% {
+ transform: translate(0px, 0px) scale(1);
+ }
+
+ 33% {
+ transform: translate(30px, -50px) scale(1.1);
+ }
+
+ 66% {
+ transform: translate(-20px, 20px) scale(0.9);
+ }
+
+ 100% {
+ transform: tranlate(0px, 0px) scale(1);
+ }
+}
+
+.animate-blob {
+ animation: blob 7s infinite;
+}
+
+@keyframes bounceX {
+ 0%, 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ transform: scale(0.95);
+ opacity: 1;
+ }
+}
+
+.animate-bouncePop {
+ animation: bounceX 4s infinite;
}
.cursor-default {
@@ -1638,6 +1753,11 @@ video {
background-color: rgb(30 64 175 / var(--tw-bg-opacity));
}
+.bg-blue-900 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(30 58 138 / var(--tw-bg-opacity));
+}
+
.bg-fifthosiblue {
--tw-bg-opacity: 1;
background-color: rgb(146 156 183 / var(--tw-bg-opacity));
@@ -1778,6 +1898,11 @@ video {
background-color: rgb(148 163 184 / var(--tw-bg-opacity));
}
+.bg-slate-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(248 250 252 / var(--tw-bg-opacity));
+}
+
.bg-slate-500 {
--tw-bg-opacity: 1;
background-color: rgb(100 116 139 / var(--tw-bg-opacity));
@@ -1851,6 +1976,10 @@ video {
--tw-bg-opacity: 0.7;
}
+.bg-opacity-80 {
+ --tw-bg-opacity: 0.8;
+}
+
.bg-gradient-to-b {
background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
@@ -1867,6 +1996,12 @@ video {
background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
+.from-gray-100 {
+ --tw-gradient-from: #f3f4f6 var(--tw-gradient-from-position);
+ --tw-gradient-to: rgb(243 244 246 / 0) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
+}
+
.from-green-400 {
--tw-gradient-from: #4ade80 var(--tw-gradient-from-position);
--tw-gradient-to: rgb(74 222 128 / 0) var(--tw-gradient-to-position);
@@ -1917,6 +2052,10 @@ video {
--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}
+.to-blue-950 {
+ --tw-gradient-to: #172554 var(--tw-gradient-to-position);
+}
+
.to-green-700 {
--tw-gradient-to: #15803d var(--tw-gradient-to-position);
}
@@ -1962,6 +2101,11 @@ video {
padding: 2.25rem;
}
+.px-0 {
+ padding-left: 0px;
+ padding-right: 0px;
+}
+
.px-1 {
padding-left: 0.25rem;
padding-right: 0.25rem;
@@ -1972,6 +2116,11 @@ video {
padding-right: 2.5rem;
}
+.px-14 {
+ padding-left: 3.5rem;
+ padding-right: 3.5rem;
+}
+
.px-2 {
padding-left: 0.5rem;
padding-right: 0.5rem;
@@ -2077,6 +2226,14 @@ video {
text-align: center;
}
+.font-poppinsBold {
+ font-family: Poppins Bold, sans-serif;
+}
+
+.font-poppinsLight {
+ font-family: Poppins, sans-serif;
+}
+
.text-2xl {
font-size: 1.5rem;
line-height: 2rem;
@@ -2092,6 +2249,10 @@ video {
line-height: 2.5rem;
}
+.text-\[12px\] {
+ font-size: 12px;
+}
+
.text-\[15px\] {
font-size: 15px;
}
@@ -2100,6 +2261,10 @@ video {
font-size: 16px;
}
+.text-\[17px\] {
+ font-size: 17px;
+}
+
.text-\[18px\] {
font-size: 18px;
}
@@ -2148,6 +2313,10 @@ video {
font-weight: 700;
}
+.font-extrabold {
+ font-weight: 800;
+}
+
.font-extralight {
font-weight: 200;
}
@@ -2319,6 +2488,14 @@ video {
opacity: 0.5;
}
+.opacity-70 {
+ opacity: 0.7;
+}
+
+.mix-blend-multiply {
+ mix-blend-mode: multiply;
+}
+
.shadow-lg {
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -2352,6 +2529,16 @@ video {
outline-style: solid;
}
+.blur {
+ --tw-blur: blur(8px);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+
+.blur-xl {
+ --tw-blur: blur(24px);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+
.filter {
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
@@ -2409,6 +2596,26 @@ video {
/* Color of the scrollbar track */
}
+/* Website's font */
+
+@font-face {
+ font-family: 'Poppins';
+
+ src: url('../dist/fonts/Poppins-Regular.ttf');
+}
+
+@font-face {
+ font-family: 'Poppins ExtraBold';
+
+ src: url('../dist/fonts/Poppins-ExtraBold.ttf');
+}
+
+@font-face {
+ font-family: 'Poppins Bold';
+
+ src: url('../dist/fonts/Poppins-Bold.ttf');
+}
+
/* FOR THE IFRAME TO TAKE 95% OF WIDTH ON SMALL SCREEN SIZES */
@media screen and (max-width: 798px) {
@@ -2593,11 +2800,20 @@ video {
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}
+.hover\:bg-osiblue:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(32 51 107 / var(--tw-bg-opacity));
+}
+
.hover\:bg-red-500:hover {
--tw-bg-opacity: 1;
background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}
+.hover\:bg-transparent:hover {
+ background-color: transparent;
+}
+
.hover\:bg-white:hover {
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
@@ -2617,6 +2833,11 @@ video {
color: rgb(59 130 246 / var(--tw-text-opacity));
}
+.hover\:text-gray-500:hover {
+ --tw-text-opacity: 1;
+ color: rgb(107 114 128 / var(--tw-text-opacity));
+}
+
.hover\:text-gray-700:hover {
--tw-text-opacity: 1;
color: rgb(55 65 81 / var(--tw-text-opacity));
@@ -2637,6 +2858,11 @@ video {
color: rgb(239 68 68 / var(--tw-text-opacity));
}
+.hover\:text-secondosiblue:hover {
+ --tw-text-opacity: 1;
+ color: rgb(55 74 122 / var(--tw-text-opacity));
+}
+
.hover\:text-slate-700:hover {
--tw-text-opacity: 1;
color: rgb(51 65 85 / var(--tw-text-opacity));
@@ -2686,6 +2912,10 @@ video {
height: 55px;
}
+ .s\:h-\[90px\] {
+ height: 90px;
+ }
+
.s\:w-\[100px\] {
width: 100px;
}
@@ -2706,6 +2936,14 @@ video {
width: 50px;
}
+ .s\:w-\[550px\] {
+ width: 550px;
+ }
+
+ .s\:w-\[90px\] {
+ width: 90px;
+ }
+
.s\:w-fit {
width: -moz-fit-content;
width: fit-content;
@@ -2727,14 +2965,42 @@ video {
gap: 0px;
}
+ .s\:p-9 {
+ padding: 2.25rem;
+ }
+
+ .s\:px-0 {
+ padding-left: 0px;
+ padding-right: 0px;
+ }
+
+ .s\:px-14 {
+ padding-left: 3.5rem;
+ padding-right: 3.5rem;
+ }
+
+ .s\:px-5 {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
+
.s\:px-9 {
padding-left: 2.25rem;
padding-right: 2.25rem;
}
- .s\:text-3xl {
- font-size: 1.875rem;
- line-height: 2.25rem;
+ .s\:text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+ }
+
+ .s\:text-\[20px\] {
+ font-size: 20px;
+ }
+
+ .s\:text-base {
+ font-size: 1rem;
+ line-height: 1.5rem;
}
.s\:text-xl {
@@ -2793,6 +3059,34 @@ video {
}
@media (min-width: 960px) {
+ .l\:relative {
+ position: relative;
+ }
+
+ .l\:z-0 {
+ z-index: 0;
+ }
+
+ .l\:ml-\[40\%\] {
+ margin-left: 40%;
+ }
+
+ .l\:mt-0 {
+ margin-top: 0px;
+ }
+
+ .l\:block {
+ display: block;
+ }
+
+ .l\:flex {
+ display: flex;
+ }
+
+ .l\:hidden {
+ display: none;
+ }
+
.l\:w-\[160px\] {
width: 160px;
}
@@ -2801,6 +3095,10 @@ video {
width: 300px;
}
+ .l\:w-\[40\%\] {
+ width: 40%;
+ }
+
.l\:w-fit {
width: -moz-fit-content;
width: fit-content;
@@ -2824,9 +3122,21 @@ video {
display: none;
}
+ .lg\:w-\[480px\] {
+ width: 480px;
+ }
+
.lg\:grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
+
+ .lg\:gap-0 {
+ gap: 0px;
+ }
+
+ .lg\:text-\[45px\] {
+ font-size: 45px;
+ }
}
@media (min-width: 1200px) {
@@ -2834,8 +3144,8 @@ video {
position: fixed;
}
- .xlg1\:mb-0 {
- margin-bottom: 0px;
+ .xlg1\:ml-\[50\%\] {
+ margin-left: 50%;
}
.xlg1\:hidden {
@@ -2845,6 +3155,10 @@ video {
.xlg1\:w-\[300px\] {
width: 300px;
}
+
+ .xlg1\:w-\[50\%\] {
+ width: 50%;
+ }
}
@media (min-width: 1300px) {
@@ -2892,9 +3206,17 @@ video {
}
@media (min-width: 1536px) {
+ .xl\:w-\[550px\] {
+ width: 550px;
+ }
+
.xl\:grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
+
+ .xl\:text-\[70px\] {
+ font-size: 70px;
+ }
}
@media (min-width: 1600px) {
diff --git a/osinaweb/static/images/banner-logo.png b/osinaweb/static/images/banner-logo.png
new file mode 100644
index 00000000..3de529e2
Binary files /dev/null and b/osinaweb/static/images/banner-logo.png differ
diff --git a/osinaweb/static/images/icons/activity.png b/osinaweb/static/images/icons/activity.png
new file mode 100644
index 00000000..c8114ebd
Binary files /dev/null and b/osinaweb/static/images/icons/activity.png differ
diff --git a/osinaweb/static/images/icons/activity2.png b/osinaweb/static/images/icons/activity2.png
new file mode 100644
index 00000000..e544a80f
Binary files /dev/null and b/osinaweb/static/images/icons/activity2.png differ
diff --git a/osinaweb/static/images/icons/billing.png b/osinaweb/static/images/icons/billing.png
new file mode 100644
index 00000000..58cd5919
Binary files /dev/null and b/osinaweb/static/images/icons/billing.png differ
diff --git a/osinaweb/static/images/icons/logout.png b/osinaweb/static/images/icons/logout.png
new file mode 100644
index 00000000..8ea62900
Binary files /dev/null and b/osinaweb/static/images/icons/logout.png differ
diff --git a/osinaweb/static/images/icons/reactionicon.png b/osinaweb/static/images/icons/reactionicon.png
new file mode 100644
index 00000000..addc9f39
Binary files /dev/null and b/osinaweb/static/images/icons/reactionicon.png differ
diff --git a/osinaweb/static/images/icons/support.png b/osinaweb/static/images/icons/support.png
new file mode 100644
index 00000000..93a0fcaa
Binary files /dev/null and b/osinaweb/static/images/icons/support.png differ
diff --git a/osinaweb/static/images/icons/users.png b/osinaweb/static/images/icons/users.png
new file mode 100644
index 00000000..97d85d20
Binary files /dev/null and b/osinaweb/static/images/icons/users.png differ
diff --git a/osinaweb/static/images/icons/utilities.png b/osinaweb/static/images/icons/utilities.png
new file mode 100644
index 00000000..d1084de3
Binary files /dev/null and b/osinaweb/static/images/icons/utilities.png differ
diff --git a/osinaweb/static/images/icons/work.png b/osinaweb/static/images/icons/work.png
new file mode 100644
index 00000000..0342345b
Binary files /dev/null and b/osinaweb/static/images/icons/work.png differ
diff --git a/osinaweb/static/images/ositcom.png b/osinaweb/static/images/ositcom.png
new file mode 100644
index 00000000..00702dea
Binary files /dev/null and b/osinaweb/static/images/ositcom.png differ
diff --git a/osinaweb/static/js/international-mobile-input-tag.js b/osinaweb/static/js/international-mobile-input-tag.js
new file mode 100644
index 00000000..eab37e07
--- /dev/null
+++ b/osinaweb/static/js/international-mobile-input-tag.js
@@ -0,0 +1,14 @@
+document.addEventListener("DOMContentLoaded", function () {
+ var input = document.querySelector("#phone");
+
+ var iti = window.intlTelInput(input, {
+ initialCountry: 'lb', // Set the default country
+ separateDialCode: true, // Display the country code separately
+ });
+
+ // Listen for changes
+ input.addEventListener("input", function () {
+ var phoneNumber = iti.getNumber();
+ console.log(phoneNumber);
+ });
+});
\ No newline at end of file
diff --git a/osinaweb/static/js/login-register.js b/osinaweb/static/js/login-register.js
new file mode 100644
index 00000000..c9d2cdb4
--- /dev/null
+++ b/osinaweb/static/js/login-register.js
@@ -0,0 +1,51 @@
+//TO SWITCH BETWEEN THE REGISTER FORM AND LOGIN FORM
+const loginToRegisterButton = document.getElementById('loginToRegisterButton');
+const registerToLoginButton = document.getElementById('registerToLoginButton');
+const loginForm = document.getElementById('loginForm');
+const registerForm = document.getElementById('registerForm');
+
+loginToRegisterButton.addEventListener('click', showRegisterForm);
+registerToLoginButton.addEventListener('click', showLoginForm);
+
+
+function showRegisterForm() {
+ loginForm.style.display = 'none';
+ registerForm.style.display = 'flex';
+}
+
+function showLoginForm() {
+ loginForm.style.display = 'flex';
+ registerForm.style.display = 'none';
+}
+
+
+//TO SHOW PASSWORD INPUT
+const showPasswordButton = document.getElementById('showPasswordButton');
+const passwordInput = document.getElementById('passwordInput');
+
+showPasswordButton.addEventListener('click', togglePasswordVisibility);
+
+function togglePasswordVisibility() {
+ if (passwordInput.type === 'password') {
+ passwordInput.type = 'text';
+ } else {
+ passwordInput.type = 'password';
+ }
+}
+
+//FUNCTION TO SHOW AN ERROR MESSAGE WITH AND MAKE IT DISAPPEAR AFTER 10 SECONDS
+function showError() {
+ const errorMessage = document.getElementById('error-message');
+ errorMessage.classList.add("show-message");
+
+ // Automatically hide the message container after 10 seconds
+ setTimeout(() => {
+ errorMessage.classList.add("hide-message");
+ }, 10000);
+}
+
+// Check if error messages are present in the rendered HTML
+const errorMessages = document.querySelectorAll('.messages p');
+if (errorMessages.length > 0) {
+ showError();
+}
diff --git a/osinaweb/static/js/registration.js b/osinaweb/static/js/registration.js
new file mode 100644
index 00000000..9fe0a6b8
--- /dev/null
+++ b/osinaweb/static/js/registration.js
@@ -0,0 +1,105 @@
+// VALIDATE THE EMAIL FORMAT
+function validateEmail() {
+ const emailInput = document.getElementById("emailAddressInput");
+ const emailError = document.getElementById("emailError");
+
+ emailInput.addEventListener("input", function () {
+ const email = emailInput.value.trim();
+ const emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
+
+ if (!emailPattern.test(email)) {
+ emailError.textContent = "Please enter a valid email address.";
+ } else {
+ // Check email availability on the server
+ fetch("/check-email-availability/?email=" + email)
+ .then((response) => response.json())
+ .then((data) => {
+ if (data.exists) {
+ // Email already exists
+ emailError.textContent = "A user with this email already exists.";
+ } else {
+ // Email is unique
+ emailError.textContent = "";
+ }
+ })
+ .catch((error) => {
+ console.error("Error checking email availability:", error);
+ });
+ }
+ });
+}
+
+
+
+// VALIDATE THE PASSWORD STRENGTH AND PASSWORD CONFIRMATION
+function validatePasswords() {
+ const password1Input = document.querySelector('input[name="password1"]');
+ const password2Input = document.querySelector('input[name="password2"]');
+ const passwordMatchingError = document.getElementById('passwordError');
+
+ const password1 = password1Input.value;
+ const password2 = password2Input.value;
+
+ // Password strength requirements
+ const isLengthValid = password1.length >= 8;
+
+ // Clear all error messages
+ passwordMatchingError.textContent = '';
+ passwordMatchingError.style.display = 'none';
+
+ if (password1 && password2) {
+ // Check for password match
+ if (password1 === password2) {
+ let errorMessage = '';
+
+ // Check for password strength
+ if (!isLengthValid) {
+ errorMessage += '- At least 8 characters\n';
+ errorMessage += '
'
+ }
+
+ if (errorMessage) {
+ passwordMatchingError.innerHTML = errorMessage;
+ passwordMatchingError.style.display = 'block';
+ }
+ } else {
+ // Passwords do not match
+ passwordMatchingError.textContent = 'Passwords do not match';
+ passwordMatchingError.style.display = 'block';
+ }
+ }
+}
+
+
+document.addEventListener("DOMContentLoaded", function () {
+ validateEmail();
+
+ // Add event listeners to both password inputs to trigger validation
+ const password1Input = document.querySelector('input[name="password1"]');
+ const password2Input = document.querySelector('input[name="password2"]');
+
+ password1Input.addEventListener('input', validatePasswords);
+ password2Input.addEventListener('input', validatePasswords);
+
+
+ // PREVENT THE FORM FROM SUBMITTING IF THE VALIDATIONS FAILS
+ const myForm = document.getElementById("registerForm");
+
+ myForm.addEventListener("submit", function (event) {
+ const emailError = document.getElementById("emailError");
+ const passwordMatchingError = document.getElementById('passwordError');
+ const message = document.getElementById("register-error-message");
+
+ const emailValid = emailError.textContent === "";
+ const passwordValid = passwordMatchingError.textContent === "";
+
+ if (!emailValid || !passwordValid) {
+ event.preventDefault();
+ message.classList.add("show-message");
+ setTimeout(function () {
+ message.classList.add("hide-message");
+ }, 3000);
+ }
+ });
+});
+
diff --git a/osinaweb/tailwind.config.js b/osinaweb/tailwind.config.js
index 2a1aca23..677c6cae 100644
--- a/osinaweb/tailwind.config.js
+++ b/osinaweb/tailwind.config.js
@@ -24,12 +24,52 @@ module.exports = {
xxl: '1750px',
k: '2400px',
},
+ fontFamily: {
+ 'poppinsLight': ['Poppins', 'sans-serif'],
+ 'poppinsExtraBold': ['Poppins ExtraBold', 'sans-serif'],
+ 'poppinsBold': ['Poppins Bold', 'sans-serif']
+ },
extend: {
colors: {
osiblue: '#20336b',
secondosiblue: '#374a7a',
fifthosiblue: '#929cb7',
},
+ keyframes: {
+ bounce: {
+ '0%, 100%': { transform: 'translateY(-0.5rem)' },
+ '50%': { transform: 'translateY(0.5rem)' },
+ },
+ bounceX: {
+ '0%, 100%': {
+ transform: 'scale(1)',
+ opacity: 1,
+ },
+ '50%': {
+ transform: 'scale(0.95)',
+ opacity: 1,
+ },
+ },
+ blob: {
+ "0%": {
+ transform: "translate(0px, 0px) scale(1)",
+ },
+ "33%": {
+ transform: "translate(30px, -50px) scale(1.1)",
+ },
+ "66%": {
+ transform: "translate(-20px, 20px) scale(0.9)",
+ },
+ "100%": {
+ transform: "tranlate(0px, 0px) scale(1)",
+ },
+ },
+ },
+ animation: {
+ bounce: 'bounce 3s infinite',
+ bouncePop: 'bounceX 4s infinite',
+ blob: "blob 7s infinite",
+ },
},
},
plugins: [],
diff --git a/osinaweb/templates/add_pages/add-business.html b/osinaweb/templates/add_pages/add-business.html
index 9f83fc79..3b27f5b3 100644
--- a/osinaweb/templates/add_pages/add-business.html
+++ b/osinaweb/templates/add_pages/add-business.html
@@ -2,14 +2,12 @@
{%load static%}
{% block content %}
-