diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f5119b25..92d08b1c 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -63,6 +63,11 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) { $routes->get("list/(:any)", "ClientController::editClientOnboarding/$1"); + $routes->group("notification", ["filter" => "authMVC"], function ($routes) { + $routes->post("create", "NotificationController::createNotification"); + $routes->post("update_enable", "NotificationController::update_enable"); + $routes->get("getMailTemplateData/(:any)/(:any)", "NotificationController::getMailTemplateData/$1/$2"); + }); $routes->group("general", ["filter" => "authMVC"], function ($routes) { $routes->post("create", "ClientController::createClientGeneralInfo"); @@ -245,6 +250,8 @@ $routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfi $routes->post("/calculatePremium", "EmployeeRestController::calculatePremium"); +$routes->post("employeeUpload", "EmployeeRestController::employeeUpload"); + $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 773eb420..da023bbd 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -30,6 +30,7 @@ use App\Models\PolicyPremium1Model; use App\Models\PolicyPremium2Model; use App\Models\EmployeeModel; use App\Models\EmployeePolicyModel; +use App\Models\NotificationModel; @@ -60,6 +61,7 @@ class ClientController extends AdminController protected $clientDepositModel; protected $employeeModel; protected $employeePolicyModel; + protected $notificationModel; public function __construct() { @@ -87,6 +89,7 @@ class ClientController extends AdminController $this->policyPremium2Model = new PolicyPremium2Model(); $this->employeeModel = new EmployeeModel(); $this->employeePolicyModel = new EmployeePolicyModel(); + $this->notificationModel = new NotificationModel(); @@ -276,6 +279,9 @@ class ClientController extends AdminController $editData['client_policy'] = $clientPoliceData; + $editData['notification'] =$this->notificationModel->select('template_name,enabled')->where('client_id',$id)->findAll(); + $editData['placeHolders'] = ['user_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'ecard_link', 'app_link', 'member_summary']; + // echo "
";
         // dd($editData); die;
 
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index e2e50f9f..a061f32d 100644
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -20,6 +20,7 @@ use App\Models\BatchListModel;
 use App\Models\BatchFileModel;
 use App\Models\EmpEndorsementModel;
 use App\Models\ClientDepositModel;
+use App\Models\NotificationModel;
 
 use App\Controllers\Jobs;
 use PhpOffice\PhpSpreadsheet\Spreadsheet;
@@ -42,6 +43,7 @@ class EmpDataServiceController extends BaseController
     protected $batchFileModel;
     protected $empEndorsementModel;
     protected $clientDepositModel;
+    protected $notificationModel;
 
     public function __construct()
     {
@@ -57,9 +59,10 @@ class EmpDataServiceController extends BaseController
         $this->batchFileModel    = new BatchFileModel();
         $this->empEndorsementModel    = new EmpEndorsementModel();
         $this->clientDepositModel    = new ClientDepositModel();
+        $this->notificationModel    = new NotificationModel();
     }
 
-
+    
     /**
      * The below function are Inserts batch files and corresponding batch list entries into the database.
      *
@@ -481,10 +484,13 @@ class EmpDataServiceController extends BaseController
     public function importExcelDataForInception($import_data)
     {
 
+
         $client_id = $import_data['client_id'];
         $client_policy_id = $import_data['client_policy_id'];
         $file = $import_data['file'];
 
+        $get_client_policy_type = $this->clientPolicyModel->where('id', $client_policy_id)->first();
+
         $data = $this->readExcelToArray($file);
 
         if (!$data) {
@@ -647,8 +653,11 @@ class EmpDataServiceController extends BaseController
             $this->cashDepositCalculationForInception($depositeData);
 
 
-            $this->sendMailForDownloadingECard($empty_emp_tpa_uh_ids);
+            if($get_client_policy_type['policy_type_id'] != 1){
 
+                $this->sendMailForDownloadingECard($empty_emp_tpa_uh_ids);
+
+            }
         }
 
 
@@ -1595,10 +1604,12 @@ class EmpDataServiceController extends BaseController
     public function sendMailForDownloadingECard(array $ids)
     {
         try {
+            $count = 0;
+            
             foreach ($ids as $key => $id) {
     
                 $get_emp_email_and_other_details = $this->employeePolicyModel
-                    ->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
+                    ->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate,employees.client_id as client_id, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
                     ->join('employees', 'employees.id = employee_polices.employee_id')
                     ->where('employees.emp_status', 'active')
                     ->where('employees.is_active', '1')
@@ -1606,46 +1617,52 @@ class EmpDataServiceController extends BaseController
                     ->where('employee_polices.is_active', '1')
                     ->where('employee_polices.id', $id)->first();
     
-                if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "") {
-    
-                    $name =  $get_emp_email_and_other_details['name'];
-                    $email =  $get_emp_email_and_other_details['email_corporate'];
+                    // echo "
";
+                    // print_r($notification);
+                    // die;
+                $client_data = $this->clientModel->where('id',$get_emp_email_and_other_details['client_id'])->first();
+                $notification = $this->notificationModel->where('client_id',$get_emp_email_and_other_details['client_id'])->where('template_name','member_ecard_mail')->first();
+                if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "" && $notification['enabled'] == 1) {
                     $rand_string =  $get_emp_email_and_other_details['rand_string'];
                     $tpa_id =  $get_emp_email_and_other_details['tpa_id'];
+                    
+
+                    $mail_content = $notification['mail_content'];
+
+                    $mail = $get_emp_email_and_other_details['email_corporate'];
+
+                    $subject = $notification['subject'];
+
                     $link = generate_download_link($rand_string);
-                    $subject = 'Download E-Card';
-    
-                    $html = '
-                            

Dear ' .$name .',

-

Your Policy( ' .$tpa_id .' ) has been successfully created. Please click the link below to download the insurance card:

-

Download Insurance Card

-

Thank you,

- '; - - if ($email != null && $email != "") { - - $mail_data = [ - 'mail' => $email, - 'subject' => $subject, - 'message' => $html - ]; - // dd($mail_data); - - $result = Mailhelper::send_email($mail_data); - $decoded_result = (array) json_decode($result); + $app_link = $_ENV['App_Url']; + $name = $get_emp_email_and_other_details['name']; - $data = [ - 'status' => $decoded_result['status'], - 'message'=>$decoded_result['message'] ?? 'Internal Server Error', - 'email' => $decoded_result['data'] - ]; - - // dd($data); - $this->myLogger->logme('error', 'status : {status}, message : {message}, email : {email}', $data); - } + $mail_content = $notification['mail_content']; + + $nhance_logo = $_ENV['NHANCE_LOGO']; + + + $mail_content = str_replace("[[nhance_logo]]", "Nhance Logo", $mail_content); + + $mail_content = str_replace("[[user_name]]", $name, $mail_content); + $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content); + $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content); + $mail_content = str_replace("[[ecard_download_link]]", "Download Insurance Card", $mail_content); + + $message = $mail_content; + $count++; + + $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $message,'cc'=> $client_data['common_mails']]; + + if($count == 20 || $count == count($ids)-1){ + $job_details = new Jobs(); + $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]); + $wholeData = []; + $count = 0; + } } } return true; // Email(s) sent successfully diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index f562ef09..f1486087 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -20,6 +20,7 @@ use App\Models\ClientPolicyModel; use App\Models\PolicyPremium1Model; use App\Models\PolicyPremium2Model; use App\Models\PolicyTypeModel; +use App\Models\NotificationModel; use App\Controllers\Jobs ; use App\Controllers\JobWorker ; @@ -49,7 +50,8 @@ class EmployeeRestController extends AdminController protected $policyPremium1Model; protected $policyPremium2Model; protected $policyTypeModel; - + protected $notificationModel; + public function __construct() { // helper('utility'); @@ -65,9 +67,10 @@ class EmployeeRestController extends AdminController $this->policyPremium1Model = new PolicyPremium1Model(); $this->policyPremium2Model = new PolicyPremium2Model(); $this->policyTypeModel = new PolicyTypeModel(); + $this->notificationModel = new NotificationModel(); } - + public function getEmployeeProfile() { try { @@ -594,14 +597,26 @@ class EmployeeRestController extends AdminController // Upload the Employee Detail in DB by Sheet Data public function employeeUpload() { + + + + try { + // echo $this->request->getPost('client_id'); + // die; $file = $this->request->getFile('file'); $client_id = $this->request->getPost('client_id'); $policy_id = $this->request->getPost('policy_id'); + $client_data = $this->clientModel->where('id', $client_id)->first(); + + $notification = $this->notificationModel->where('client_id',$client_id)->where('template_name','member_welcome_mail')->first(); + $jwt = $this->request->getHeader('Authorization'); $jwtParts = explode(' ', $jwt); + // print_r($jwtParts);die; $token = $jwtParts[2]; + // return "hello"; $decodedPayload = json_decode(base64_decode(explode('.', $token)[1]), true); @@ -611,7 +626,6 @@ class EmployeeRestController extends AdminController $client_policy = $this->clientPolicyModel->where('id', $policy_id)->where('client_id', $client_id)->first(); - if ($client_policy) { $policy = $this->policesModel->where('id', $client_policy['policy_id'])->first(); $policy_permium_1 = $this->policyPremium1Model->where(['client_id' => $client_id , 'client_policy_id' => $policy_id,'is_active' =>1])-> first(); @@ -787,105 +801,120 @@ class EmployeeRestController extends AdminController $count = 0; for ($a=0; $a employeeModel->checkExistingEmployee($dataToInsert[$a]); - $emp_id =0; - - $data_after_gpa_or_gmc =[]; - if ($policy['policy_type_id'] == 1) { - if (strtolower($dataToInsert[$a]['relationship']) == 'self') { - $data_after_gpa_or_gmc = $dataToInsert[$a]; - } - }else{ - $data_after_gpa_or_gmc = $dataToInsert[$a]; - } - date_default_timezone_set('Asia/Kolkata'); - $current_timestamp = time(); - $formatted_date_time = date('Y-m-d H:i:s', $current_timestamp); - - if ($employee) { - - - $emp_id =$employee['id']; - $id =$emp_id; - $data_after_gpa_or_gmc['id'] = $id; - $data_after_gpa_or_gmc['updated_by'] = $employee_id; - $data_after_gpa_or_gmc['updated_at'] = $formatted_date_time; - $result = $this->employeeModel->save($data_after_gpa_or_gmc); - if ($result) { - $log_message = 'Update Employee - '.$employee['name'].'('.$employee['emp_code'].') with PK '.$employee['id']; - $this->myLogger->logme('error',('Update - ' . $employee['id'].' - '. $employee['emp_code'] .' - '.$employee['name'])); - } - }else{ - if ($dataToInsert[$a]['emp_code'] != 0) { - $result =false; - if (count($data_after_gpa_or_gmc) != 0) { - $data_after_gpa_or_gmc['created_by'] = $employee_id; - $result = $this->employeeModel->insert($data_after_gpa_or_gmc); - } - $emp_id =$result; - if ($result) { - $emp = $this->employeeModel->where('id', $result)->get()->getResult(); - - $policy_name = $this->employeePolicyModel->where('employee_id', $result)->get()->getResult();; - - - $log_message = 'Insert Employee- '.$dataToInsert[$a]['name'] .'('.$dataToInsert[$a]['emp_code'] .') with PK '; - $this->myLogger->logme('error',('Insert - ' . $dataToInsert[$a]['emp_code'] .' - '. $dataToInsert[$a]['name'])); - } - } - } - $emp_policy_data =[ - 'employee_id'=>$emp_id, - 'client_policy_id'=>$policy_id, - 'status'=> 'draft', - 'basic_cover_si'=>isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null - ]; - - $employee_policy = $this->employeePolicyModel->checkExistingEmpPolicy(['employee_id' => $emp_id,'client_policy_id' => $policy_id]); - if ($employee_policy) { - foreach ($employee_policy as $existing_policy) { - $emp_policy_data['id']= $existing_policy['id']; - $emp_policy_data['updated_at'] = $formatted_date_time; - $this->employeePolicyModel->save($emp_policy_data); - } - } else { - $emp_policy = $this->employeePolicyModel->insert($emp_policy_data); - } - - - //trigger - $mail = $dataToInsert[$a]['email_corporate']; - $subject = 'Welcome, Employee Benefit Program Enrolment'; - // $message = 'Dear ' . $dataToInsert[$a]['name'] . ",
We are glad to welcome you to the employee benefit program ," .$policy_name['name'] ."offered by your employer,


Click on the link below to review your personal and family details:
Review Details" ; - $data['employee_name']=$dataToInsert[$a]['name']; - $data['policy_name']=$policy['name']; - $data['App_Url'] = $_ENV['App_Url']; + $employee = $this->employeeModel->checkExistingEmployee($dataToInsert[$a]); + $emp_id =0; - $message = view('mail_welcome', $data); + $data_after_gpa_or_gmc =[]; + if ($policy['policy_type_id'] == 1) { + if (strtolower($dataToInsert[$a]['relationship']) == 'self') { + $data_after_gpa_or_gmc = $dataToInsert[$a]; + } + }else{ + $data_after_gpa_or_gmc = $dataToInsert[$a]; + } + date_default_timezone_set('Asia/Kolkata'); + $current_timestamp = time(); + $formatted_date_time = date('Y-m-d H:i:s', $current_timestamp); - if ($dataToInsert[$a]['relationship'] == 'Self' && $mail != null || $mail != '') { - $count++; - $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $message]; + if ($employee) { + + + $emp_id =$employee['id']; + $id =$emp_id; + $data_after_gpa_or_gmc['id'] = $id; + $data_after_gpa_or_gmc['updated_by'] = $employee_id; + $data_after_gpa_or_gmc['updated_at'] = $formatted_date_time; + $result = $this->employeeModel->save($data_after_gpa_or_gmc); + if ($result) { + $log_message = 'Update Employee - '.$employee['name'].'('.$employee['emp_code'].') with PK '.$employee['id']; + $this->myLogger->logme('error',('Update - ' . $employee['id'].' - '. $employee['emp_code'] .' - '.$employee['name'])); + } + }else{ + if ($dataToInsert[$a]['emp_code'] != 0) { + $result =false; + if (count($data_after_gpa_or_gmc) != 0) { + $data_after_gpa_or_gmc['created_by'] = $employee_id; + $result = $this->employeeModel->insert($data_after_gpa_or_gmc); + } + $emp_id =$result; + if ($result) { + $emp = $this->employeeModel->where('id', $result)->get()->getResult(); + + $policy_name = $this->employeePolicyModel->where('employee_id', $result)->get()->getResult();; + + + $log_message = 'Insert Employee- '.$dataToInsert[$a]['name'] .'('.$dataToInsert[$a]['emp_code'] .') with PK '; + $this->myLogger->logme('error',('Insert - ' . $dataToInsert[$a]['emp_code'] .' - '. $dataToInsert[$a]['name'])); + } + } + } + $emp_policy_data =[ + 'employee_id'=>$emp_id, + 'client_policy_id'=>$policy_id, + 'status'=> 'draft', + 'basic_cover_si'=>isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null + ]; + + $employee_policy = $this->employeePolicyModel->checkExistingEmpPolicy(['employee_id' => $emp_id,'client_policy_id' => $policy_id]); + if ($employee_policy) { + foreach ($employee_policy as $existing_policy) { + $emp_policy_data['id']= $existing_policy['id']; + $emp_policy_data['updated_at'] = $formatted_date_time; + $this->employeePolicyModel->save($emp_policy_data); + } + } else { + $emp_policy = $this->employeePolicyModel->insert($emp_policy_data); } - // print_r($wholeData); - // if ($dataToInsert[$a]['email_corporate'] != null || $dataToInsert[$a]['email_corporate'] != '' && $dataToInsert[$a]['relationship'] == 'Self') { - if($count == 20 || $a == count($dataToInsert)-1){ - $job_details = new Jobs(); - $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]); - // $wholeData[]= $r; - // Mailhelper::bulk_mail($wholeData); - $wholeData = []; - $count = 0; + if ($notification['enabled'] == 1) { + //trigger + if ($dataToInsert[$a]['relationship'] == 'Self') { + $mail = $dataToInsert[$a]['email_corporate']; + + + $subject = $notification['subject']; + // $subject = 'Welcome, Employee Benefit Program Enrolment'; + // $message = 'Dear ' . $dataToInsert[$a]['name'] . ",
We are glad to welcome you to the employee benefit program ," .$policy_name['name'] ."offered by your employer,


Click on the link below to review your personal and family details:
Review Details" ; + // $data['employee_name']=$dataToInsert[$a]['name']; + $data['policy_name']=$policy['name']; + // $data['App_Url'] = $_ENV['App_Url']; + + $app_link = $_ENV['App_Url']; + $employee_name =$dataToInsert[$a]['name']; + + + $mail_content = $notification['mail_content']; + + $nhance_logo = $_ENV['NHANCE_LOGO']; + + + $mail_content = str_replace("[[nhance_logo]]", "Nhance Logo", $mail_content); + $mail_content = str_replace("[[user_name]]", $employee_name, $mail_content); + $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content); + + $message = $mail_content; + if ($dataToInsert[$a]['relationship'] == 'Self' && $mail != null || $mail != '') { + $count++; + $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $message,'cc'=> $client_data['common_mails']]; + } + } + + if($count == 20 || $a == count($dataToInsert)-1){ + $job_details = new Jobs(); + $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]); + // $wholeData[]= $r; + + // Mailhelper::bulk_mail($wholeData); + $wholeData = []; + $count = 0; + } + + + // if ($dataToInsert[$a]['email_corporate'] != null || $dataToInsert[$a]['email_corporate'] != '' && $dataToInsert[$a]['relationship'] == 'Self') { + } - // print_r($r);//die(); - // $jobWorker = new JobWorker(); - //JobWorker::processJob($r); - // $return_log = MailHelper::send_email($mail,$subject, $message); - // $return_log = json_decode($return_log); - // $this->myLogger->logme('info', "Email Status : {mail_status}, Sender Email:{email}", ['mail_status' => $return_log->status, 'email'=> $return_log->data]); } return $this->respond(['status' => 'success', 'code' => 200, 'message' => "Success" ], 200); }else{ diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php index 00b060ae..89bfce4e 100644 --- a/app/Controllers/JobWorker.php +++ b/app/Controllers/JobWorker.php @@ -66,6 +66,7 @@ class JobWorker extends AdminController */ public static function processJob(array $jobdata = []) { + // print_r($jobdata); // echo 'listen'; // die(); diff --git a/app/Controllers/NotificationController.php b/app/Controllers/NotificationController.php new file mode 100644 index 00000000..09938242 --- /dev/null +++ b/app/Controllers/NotificationController.php @@ -0,0 +1,129 @@ +myLogger = \Config\Services::mylogger(); + + $this->notificationModel = new NotificationModel(); + } + + public function index() + { + + } + + public function camelCaseToSnakeCase($input) { + $input = preg_replace('/(?request->getPost()); + + $data['template_name'] = $this->camelCaseToSnakeCase($this->request->getPost('template_name')); + $data['subject'] = $this->request->getPost('subject'); + $data['mail_content'] = $this->request->getPost('editorContent'); + $data['client_id'] = $this->request->getPost('client_id'); + $notificationModel = new NotificationModel(); + + $find = $notificationModel->where('client_id',$data['client_id'])->where('template_name',$data['template_name'])->first(); + if ($find) { + // print_r($find['id']); + $id = $find['id']; + $notificationModel->update($id,$data); + $complete = "Update"; + }else{ + $notificationModel->insert($data); + $complete = "Inserted"; + } + return json_encode($complete); + + } + + + public function update_enable(){ + + + // print_r();die; + + $checkboxNames = [ + 'member_welcome_mail_btn', + 'member_remider_mail_btn', + 'member_ecard_mail_btn', + 'member_review_and_summary_mail_btn', + 'account_maneger_summary_mail_btn', + 'client_hr_summary_mail_btn' + ]; + + $data = []; + + foreach ($checkboxNames as $checkboxName) { + $data[str_replace('_btn', '', $checkboxName)] = ($this->request->getPost($checkboxName) === "true") ? 1 : 0; + } + + $notificationModel = new NotificationModel(); + $clientModel = new ClientModel(); + + $id =$this->request->getPost('client_id'); + + $clientData['common_mails'] = $this->request->getPost('recipient_mail_ids'); + $clientModel->update($id,$clientData); + + foreach ($data as $key => $value) { + + $find = $notificationModel->where('client_id',$this->request->getPost('client_id'))->where('template_name', $key)->first(); + + if ($find) { + $id = $find['id']; + $changeData['enabled']= $value; + $update = $notificationModel->update($id, $changeData); + } + + } + + return json_encode("true"); + } + + public function getMailTemplateData($template_name,$client_id){ + + $notificationModel = new NotificationModel(); + + $value = $notificationModel->where('client_id',$client_id)->where('template_name',$template_name)->first(); + + // print_r($value);die; + return json_encode($value); + } + + + + + +} \ No newline at end of file diff --git a/app/Helpers/MailHelper.php b/app/Helpers/MailHelper.php index 212d78d9..8b053a7b 100644 --- a/app/Helpers/MailHelper.php +++ b/app/Helpers/MailHelper.php @@ -16,9 +16,11 @@ class MailHelper { public static function send_email($params) { + $emaill = $params['mail']; $subject = $params['subject']; $message = $params['message']; + $cc = $params['cc']; try { $email = \Config\Services::email(); @@ -27,7 +29,14 @@ class MailHelper $email->setTo($emaill); + $ccList = explode(',', $cc); + + // if (empty($cc)) { + $email->setCC($cc); + // } + $email->setSubject($subject); + $email->setMessage($message); if ($email->send()) { @@ -44,6 +53,7 @@ class MailHelper public static function bulk_mail(array $mails = []) { + // print_r();die; $model = new JobModel(); $start = microtime(true); $runtime= 0; diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php index af579498..e71c8348 100644 --- a/app/Models/ClientModel.php +++ b/app/Models/ClientModel.php @@ -26,6 +26,7 @@ class ClientModel extends Model "created_by", "updated_by", "is_active", + "common_mails" ]; diff --git a/app/Models/NotificationModel.php b/app/Models/NotificationModel.php new file mode 100644 index 00000000..d78d2a69 --- /dev/null +++ b/app/Models/NotificationModel.php @@ -0,0 +1,12 @@ +Branch & Contacts +
+ +
+
+ + +     + Edit +
+
+ +
+
+ +
+
+ + +     + Edit +
+
+ +
+
+ +
+
+ + +     + Edit +
+
+ +
+
+ +
+
+ + +     + Edit +
+
+ +
+
+ +
+
+ + +     + Edit +
+
+ +
+
+
+
+ Submit +
+
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/image-solid.svg b/public/assets/images/image-solid.svg new file mode 100644 index 00000000..ed607290 --- /dev/null +++ b/public/assets/images/image-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/logo.jpg b/public/logo.jpg new file mode 100644 index 00000000..a281e4b7 --- /dev/null +++ b/public/logo.jpg @@ -0,0 +1,5 @@ + + + + +