From 966ed115b2e656540cf36e896237b76918f80048 Mon Sep 17 00:00:00 2001 From: sulthan Date: Tue, 23 Jun 2026 13:28:38 +0700 Subject: [PATCH] initial commit --- .dockerignore | 8 + .editorconfig | 18 + .env.example | 58 + .eslintrc-auto-import.json | 320 + .eslintrc.js | 230 + .gitattributes | 11 + .gitignore | 43 + .htaccess | 15 + CONTRIBUTING.md | 62 + README.md | 66 + _ide_helper.php | 22053 ++++++++++++++++ app/Console/Commands/PublishToTopic.php | 37 + app/Console/Commands/SubscribeToTopic.php | 49 + app/Console/Kernel.php | 32 + app/Exceptions/Handler.php | 61 + app/Helpers/customHelper.php | 15 + app/Http/Controllers/AdminController.php | 158 + app/Http/Controllers/AuthController.php | 83 + app/Http/Controllers/Controller.php | 13 + app/Http/Controllers/DashboardController.php | 262 + app/Http/Controllers/DiagnoseController.php | 419 + app/Http/Controllers/DoctorController.php | 227 + app/Http/Controllers/HeartwaveController.php | 86 + app/Http/Controllers/PatientController.php | 215 + app/Http/Kernel.php | 95 + app/Http/Middleware/Authenticate.php | 33 + app/Http/Middleware/EncryptCookies.php | 17 + .../PreventRequestsDuringMaintenance.php | 17 + .../Middleware/RedirectIfAuthenticated.php | 34 + app/Http/Middleware/TrimStrings.php | 19 + app/Http/Middleware/TrustHosts.php | 20 + app/Http/Middleware/TrustProxies.php | 28 + app/Http/Middleware/ValidateSignature.php | 22 + app/Http/Middleware/VerifyCsrfToken.php | 17 + app/Http/Requests/BaseFormRequest.php | 82 + app/Http/Requests/DiagnoseRequest.php | 52 + app/Http/Requests/DoctorRequest.php | 56 + app/Http/Requests/LoginRequest.php | 31 + app/Http/Requests/PatientRequest.php | 58 + .../DiagnoseRepositoryInterface.php | 13 + app/Interfaces/DoctorRepositoryInterface.php | 12 + app/Interfaces/PatientRepositoryInterface.php | 15 + app/Interfaces/UserRepositoryInterface.php | 12 + app/Models/Diagnose.php | 28 + app/Models/Doctor.php | 46 + app/Models/DoctorPatient.php | 23 + app/Models/Heartwave.php | 11 + app/Models/Patient.php | 57 + app/Models/User.php | 76 + app/Providers/AppServiceProvider.php | 29 + app/Providers/AuthServiceProvider.php | 34 + app/Providers/BroadcastServiceProvider.php | 21 + app/Providers/EventServiceProvider.php | 42 + app/Providers/RepositoryServiceProvider.php | 39 + app/Providers/RouteServiceProvider.php | 52 + app/Repositories/DiagnoseRepository.php | 41 + app/Repositories/DoctorRepository.php | 37 + app/Repositories/PatientRepository.php | 55 + app/Repositories/UserRepository.php | 36 + app/Traits/UUID.php | 36 + artisan | 53 + auto-imports.d.ts | 937 + bootstrap/app.php | 55 + bootstrap/cache/.gitignore | 2 + components.d.ts | 64 + composer.json | 78 + composer.lock | 10616 ++++++++ config/app.php | 220 + config/auth.php | 115 + config/broadcasting.php | 70 + config/cache.php | 110 + config/cors.php | 34 + config/database.php | 151 + config/filesystems.php | 76 + config/hashing.php | 52 + config/logging.php | 122 + config/mail.php | 118 + config/mqtt-client.php | 130 + config/passport.php | 62 + config/permission.php | 161 + config/queue.php | 93 + config/sanctum.php | 67 + config/services.php | 34 + config/session.php | 201 + config/view.php | 36 + database/.gitignore | 1 + database/factories/UserFactory.php | 41 + .../2014_10_12_000000_create_users_table.php | 36 + ...12_100000_create_password_resets_table.php | 32 + ...1_000001_create_oauth_auth_codes_table.php | 31 + ...00002_create_oauth_access_tokens_table.php | 33 + ...0003_create_oauth_refresh_tokens_table.php | 29 + ...6_01_000004_create_oauth_clients_table.php | 35 + ...te_oauth_personal_access_clients_table.php | 28 + ..._08_19_000000_create_failed_jobs_table.php | 36 + ...01_create_personal_access_tokens_table.php | 37 + ...023_08_10_032309_create_patients_table.php | 44 + ...2023_08_11_064403_create_doctors_table.php | 40 + ...23_08_11_065056_create_diagnoses_table.php | 40 + ...3_08_11_065201_create_heartwaves_table.php | 35 + ...18_034608_create_doctor_patients_table.php | 33 + ..._08_19_135728_create_permission_tables.php | 141 + database/seeders/DatabaseSeeder.php | 31 + database/seeders/DiagnoseSeeder.php | 38 + database/seeders/DoctorSeeder.php | 47 + database/seeders/PatientSeeder.php | 53 + database/seeders/RoleSeeder.php | 33 + database/seeders/UserSeeder.php | 25 + docker-compose.yml | 59 + docker/Dockerfile | 41 + docker/humicpro_myocardial.sql | 615 + docker/mariadb.Dockerfile | 3 + docker/nginx.Dockerfile | 11 + docker/nginx.conf | 38 + docker/opcache.ini | 8 + jsconfig.json | 61 + lang/en/auth.php | 20 + lang/en/pagination.php | 19 + lang/en/passwords.php | 22 + lang/en/validation.php | 184 + package-lock.json | 9985 +++++++ package.json | 85 + phpunit.xml | 31 + public/.htaccess | 32 + public/css/animate.css | 3623 +++ public/css/bootstrap.min.css | 9273 +++++++ public/css/flaticon.css | 36 + public/css/font-awesome.min.css | 4 + public/css/gijgo.css | 2704 ++ public/css/magnific-popup.css | 351 + public/css/nice-select.css | 140 + public/css/owl.carousel.min.css | 6 + public/css/slicknav.css | 252 + public/css/style.css | 6275 +++++ public/css/theme-default.css | 358 + public/css/themify-icons.css | 1081 + public/favicon.ico | Bin 0 -> 15406 bytes public/fonts/Flaticon.eot | Bin 0 -> 2922 bytes public/fonts/Flaticon.svg | 69 + public/fonts/Flaticon.ttf | Bin 0 -> 2744 bytes public/fonts/Flaticon.woff | Bin 0 -> 1964 bytes public/fonts/Flaticon.woff2 | Bin 0 -> 1452 bytes public/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes public/fonts/fa-brands-400.eot | Bin 0 -> 98620 bytes public/fonts/fa-brands-400.svg | 1008 + public/fonts/fa-brands-400.ttf | Bin 0 -> 98384 bytes public/fonts/fa-brands-400.woff | Bin 0 -> 63712 bytes public/fonts/fa-brands-400.woff2 | Bin 0 -> 54420 bytes public/fonts/fa-regular-400.eot | Bin 0 -> 31156 bytes public/fonts/fa-regular-400.svg | 366 + public/fonts/fa-regular-400.ttf | Bin 0 -> 30928 bytes public/fonts/fa-regular-400.woff | Bin 0 -> 14712 bytes public/fonts/fa-regular-400.woff2 | Bin 0 -> 12220 bytes public/fonts/fa-solid-900.eot | Bin 0 -> 102152 bytes public/fonts/fa-solid-900.svg | 1467 + public/fonts/fa-solid-900.ttf | Bin 0 -> 101932 bytes public/fonts/fa-solid-900.woff | Bin 0 -> 48704 bytes public/fonts/fa-solid-900.woff2 | Bin 0 -> 38784 bytes public/fonts/flaticon.css | 35 + public/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes public/fonts/fontawesome-webfont.svg | 2671 ++ public/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes public/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes public/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes public/fonts/gijgo-material.eot | Bin 0 -> 6828 bytes public/fonts/gijgo-material.svg | 91 + public/fonts/gijgo-material.ttf | Bin 0 -> 6636 bytes public/fonts/gijgo-material.woff | Bin 0 -> 6716 bytes public/fonts/themify.eot | Bin 0 -> 78748 bytes public/fonts/themify.svg | 362 + public/fonts/themify.ttf | Bin 0 -> 78584 bytes public/fonts/themify.woff | Bin 0 -> 56108 bytes public/img/about/1.png | Bin 0 -> 77238 bytes public/img/about/2.png | Bin 0 -> 76873 bytes public/img/about/3.png | Bin 0 -> 43275 bytes public/img/about/business.png | Bin 0 -> 91118 bytes public/img/app/mobile-1.jpg | Bin 0 -> 122083 bytes public/img/app/mobile-2.jpg | Bin 0 -> 55751 bytes public/img/app/mobile-3.jpg | Bin 0 -> 46409 bytes public/img/app/mobile-4.jpg | Bin 0 -> 143887 bytes public/img/app/webapp-1.png | Bin 0 -> 41215 bytes public/img/app/webapp-2.png | Bin 0 -> 64599 bytes public/img/banner/banner4.png | Bin 0 -> 457162 bytes public/img/blog/author.png | Bin 0 -> 17489 bytes public/img/blog/blog_1.png | Bin 0 -> 204220 bytes public/img/blog/blog_2.png | Bin 0 -> 237485 bytes public/img/blog/blog_3.png | Bin 0 -> 238569 bytes public/img/blog/blog_4.png | Bin 0 -> 163377 bytes public/img/blog/learn_about_bg.png | Bin 0 -> 2054934 bytes public/img/blog/single_blog_1.png | Bin 0 -> 453240 bytes public/img/blog/single_blog_2.png | Bin 0 -> 382831 bytes public/img/blog/single_blog_3.png | Bin 0 -> 452936 bytes public/img/blog/single_blog_4.png | Bin 0 -> 346773 bytes public/img/blog/single_blog_5.png | Bin 0 -> 485273 bytes public/img/blog/slide_thumb_1.png | Bin 0 -> 91092 bytes public/img/experts/1.png | Bin 0 -> 90362 bytes public/img/experts/2.png | Bin 0 -> 84086 bytes public/img/experts/3.png | Bin 0 -> 69802 bytes public/img/experts/4.png | Bin 0 -> 93190 bytes public/img/experts/5.png | Bin 0 -> 93190 bytes public/img/experts/6.png | Bin 0 -> 106807 bytes public/img/experts/7.png | Bin 0 -> 99074 bytes public/img/experts/8.png | Bin 0 -> 98763 bytes public/img/experts/9.png | Bin 0 -> 87909 bytes public/img/favicon.ico | Bin 0 -> 15406 bytes public/img/logo.png | Bin 0 -> 133460 bytes public/img/sponsors/ad_medika.png | Bin 0 -> 54782 bytes public/img/sponsors/bank_indonesia.png | Bin 0 -> 145978 bytes public/img/sponsors/fakultas_informatika.png | Bin 0 -> 50165 bytes .../sponsors/fakultas_rekayasa_industri.webp | Bin 0 -> 24650 bytes .../img/sponsors/fakultas_teknik_elektro.png | Bin 0 -> 44067 bytes public/img/sponsors/telkom_indonesia.png | Bin 0 -> 186146 bytes public/img/sponsors/telkom_university.webp | Bin 0 -> 20592 bytes public/img/sponsors/telkomsel.png | Bin 0 -> 26743 bytes public/img/sponsors/yayasan_FCTG.png | Bin 0 -> 206729 bytes public/img/testmonial/1.png | Bin 0 -> 456061 bytes public/img/testmonial/2.png | Bin 0 -> 455142 bytes public/img/testmonial/3.png | Bin 0 -> 32667 bytes public/index.php | 55 + public/js/ajax-form.js | 48 + public/js/bootstrap.min.js | 7 + public/js/contact.js | 85 + public/js/gijgo.min.js | 1 + public/js/imagesloaded.pkgd.min.js | 7 + public/js/isotope.pkgd.min.js | 12 + public/js/jquery.ajaxchimp.min.js | 120 + public/js/jquery.counterup.min.js | 8 + public/js/jquery.form.js | 1174 + public/js/jquery.magnific-popup.min.js | 4 + public/js/jquery.scrollUp.min.js | 7 + public/js/jquery.slicknav.min.js | 6 + public/js/jquery.validate.min.js | 2 + public/js/mail-script.js | 31 + public/js/main.js | 368 + public/js/nice-select.min.js | 4 + public/js/owl.carousel.min.js | 7 + public/js/plugins.js | 24 + public/js/popper.min.js | 5 + public/js/scrollIt.js | 129 + public/js/vendor/jquery-1.12.4.min.js | 5 + public/js/vendor/modernizr-3.5.0.min.js | 3 + public/js/waypoints.min.js | 8 + public/js/wow.min.js | 2 + public/loader.css | 83 + public/robots.txt | 2 + resources/images/.DS_Store | Bin 0 -> 8196 bytes resources/images/avatars/avatar-1.png | Bin 0 -> 13543 bytes resources/images/avatars/avatar-10.png | Bin 0 -> 17112 bytes resources/images/avatars/avatar-11.png | Bin 0 -> 13944 bytes resources/images/avatars/avatar-12.png | Bin 0 -> 16153 bytes resources/images/avatars/avatar-13.png | Bin 0 -> 16040 bytes resources/images/avatars/avatar-14.png | Bin 0 -> 15773 bytes resources/images/avatars/avatar-15.png | Bin 0 -> 15852 bytes resources/images/avatars/avatar-2.png | Bin 0 -> 15715 bytes resources/images/avatars/avatar-3.png | Bin 0 -> 14590 bytes resources/images/avatars/avatar-4.png | Bin 0 -> 15490 bytes resources/images/avatars/avatar-5.png | Bin 0 -> 14799 bytes resources/images/avatars/avatar-6.png | Bin 0 -> 16277 bytes resources/images/avatars/avatar-7.png | Bin 0 -> 13815 bytes resources/images/avatars/avatar-8.png | Bin 0 -> 16376 bytes resources/images/avatars/avatar-9.png | Bin 0 -> 18005 bytes resources/images/iconify-svg/Card.svg | 8 + resources/images/iconify-svg/Check.svg | 8 + resources/images/iconify-svg/Diamond.svg | 10 + resources/images/iconify-svg/Suitcase.svg | 8 + resources/images/iconify-svg/Wallet.svg | 10 + resources/images/iconify-svg/address.svg | 25 + resources/images/iconify-svg/cart.svg | 5 + resources/images/iconify-svg/check-circle.svg | 1 + .../images/iconify-svg/checked-checkbox.svg | 4 + .../images/iconify-svg/checked-radio.svg | 6 + resources/images/iconify-svg/home.svg | 8 + .../iconify-svg/indeterminate-checkbox.svg | 4 + resources/images/iconify-svg/javascript.svg | 1 + resources/images/iconify-svg/office.svg | 8 + resources/images/iconify-svg/payment.svg | 21 + resources/images/iconify-svg/star-empty.svg | 3 + resources/images/iconify-svg/star-fill.svg | 3 + resources/images/iconify-svg/star-half.svg | 3 + resources/images/iconify-svg/trending.svg | 14 + resources/images/iconify-svg/typescript.svg | 1 + .../images/iconify-svg/unchecked-checkbox.svg | 4 + .../images/iconify-svg/unchecked-radio.svg | 6 + .../illustrations/congo-illustration.png | Bin 0 -> 17621 bytes .../images/illustrations/laptop-girl.png | Bin 0 -> 44793 bytes .../register-multistep-illustration-dark.png | Bin 0 -> 33109 bytes .../register-multistep-illustration-light.png | Bin 0 -> 34024 bytes .../images/illustrations/sidebar-pic-1.png | Bin 0 -> 24539 bytes .../images/illustrations/sidebar-pic-2.png | Bin 0 -> 37015 bytes .../images/illustrations/sidebar-pic-3.png | Bin 0 -> 26761 bytes .../sitting-girl-with-laptop.png | Bin 0 -> 28370 bytes .../images/illustrations/standingGirlImg.png | Bin 0 -> 35961 bytes resources/images/login_illustration.png | Bin 0 -> 574485 bytes resources/images/logo.png | Bin 0 -> 133460 bytes resources/images/logo.svg | 6 + .../3d-safe-box-with-golden-dollar-coins.png | Bin 0 -> 14271 bytes .../misc/3d-space-rocket-with-smoke.png | Bin 0 -> 11290 bytes .../dollar-coins-flying-pink-piggy-bank.png | Bin 0 -> 10287 bytes resources/images/pages/1.png | Bin 0 -> 88584 bytes resources/images/pages/2.png | Bin 0 -> 46099 bytes resources/images/pages/3.png | Bin 0 -> 58413 bytes resources/images/pages/401.png | Bin 0 -> 29837 bytes resources/images/pages/404.png | Bin 0 -> 34389 bytes resources/images/pages/5.jpg | Bin 0 -> 6790 bytes resources/images/pages/6.jpg | Bin 0 -> 55890 bytes .../images/pages/DealTypeBackground-dark.png | Bin 0 -> 2891 bytes .../images/pages/DealTypeBackground-light.png | Bin 0 -> 2344 bytes .../images/pages/app-search-header-bg.png | Bin 0 -> 31097 bytes ...h-v2-forgot-password-illustration-dark.png | Bin 0 -> 49766 bytes ...-v2-forgot-password-illustration-light.png | Bin 0 -> 51832 bytes ...th-v2-login-illustration-bordered-dark.png | Bin 0 -> 49856 bytes ...h-v2-login-illustration-bordered-light.png | Bin 0 -> 50313 bytes .../pages/auth-v2-login-illustration-dark.png | Bin 0 -> 57468 bytes .../auth-v2-login-illustration-light.png | Bin 0 -> 55970 bytes ...v2-register-illustration-bordered-dark.png | Bin 0 -> 82301 bytes ...2-register-illustration-bordered-light.png | Bin 0 -> 84302 bytes .../auth-v2-register-illustration-dark.png | Bin 0 -> 89766 bytes .../auth-v2-register-illustration-light.png | Bin 0 -> 89106 bytes ...th-v2-reset-password-illustration-dark.png | Bin 0 -> 44552 bytes ...h-v2-reset-password-illustration-light.png | Bin 0 -> 45516 bytes .../auth-v2-two-step-illustration-dark.png | Bin 0 -> 50593 bytes .../auth-v2-two-step-illustration-light.png | Bin 0 -> 51438 bytes ...auth-v2-verify-email-illustration-dark.png | Bin 0 -> 59730 bytes ...uth-v2-verify-email-illustration-light.png | Bin 0 -> 59743 bytes resources/images/pages/background-1.jpg | Bin 0 -> 36820 bytes resources/images/pages/background-2.jpg | Bin 0 -> 74443 bytes resources/images/pages/background-3.jpg | Bin 0 -> 88783 bytes .../pages/create-deal-review-complete.png | Bin 0 -> 28336 bytes .../images/pages/custom-checkbox-img-1.png | Bin 0 -> 25799 bytes .../images/pages/custom-checkbox-img-2.png | Bin 0 -> 35280 bytes .../images/pages/custom-checkbox-img-3.png | Bin 0 -> 27827 bytes resources/images/pages/custom-radio-img-1.png | Bin 0 -> 44592 bytes resources/images/pages/custom-radio-img-2.png | Bin 0 -> 30000 bytes resources/images/pages/custom-radio-img-3.png | Bin 0 -> 38806 bytes resources/images/pages/girl-using-mobile.png | Bin 0 -> 12662 bytes resources/images/pages/google-home.png | Bin 0 -> 9814 bytes resources/images/pages/illustration-john.png | Bin 0 -> 21171 bytes resources/images/pages/iphone-11.png | Bin 0 -> 11681 bytes resources/images/pages/misc-coming-soon.png | Bin 0 -> 33557 bytes resources/images/pages/misc-mask-dark.png | Bin 0 -> 1902 bytes resources/images/pages/misc-mask-light.png | Bin 0 -> 1756 bytes .../images/pages/misc-under-maintenance.png | Bin 0 -> 96366 bytes resources/images/pages/puma-shoes.jpeg | Bin 0 -> 13191 bytes .../pages/register-multistep-bg-dark.png | Bin 0 -> 3147 bytes .../pages/register-multistep-bg-light.png | Bin 0 -> 2771 bytes resources/images/pages/themeselection-qr.png | Bin 0 -> 3637 bytes .../images/pages/user-profile-header-bg.png | Bin 0 -> 67090 bytes resources/images/svg/auth-v1-bottom-shape.svg | 4 + resources/images/svg/auth-v1-top-shape.svg | 4 + resources/images/svg/discord.svg | 10 + resources/images/svg/gift.svg | 8 + resources/images/svg/keyboard.svg | 8 + resources/images/svg/laptop.svg | 8 + resources/images/svg/lightbulb.svg | 8 + resources/images/svg/paypal.svg | 19 + resources/images/svg/rocket.svg | 8 + resources/js/.DS_Store | Bin 0 -> 8196 bytes resources/js/@core/.DS_Store | Bin 0 -> 6148 bytes .../js/@core/components/AppBarSearch.vue | 396 + .../components/AppDrawerHeaderSection.vue | 28 + resources/js/@core/components/AppStepper.vue | 290 + resources/js/@core/components/BuyNow.vue | 41 + .../CardStatisticsVerticalSimple.vue | 41 + .../js/@core/components/CustomizerSection.vue | 25 + .../js/@core/components/DialogCloseBtn.vue | 26 + resources/js/@core/components/I18n.vue | 56 + resources/js/@core/components/MoreBtn.vue | 31 + .../js/@core/components/Notifications.vue | 220 + resources/js/@core/components/ScrollToTop.vue | 40 + resources/js/@core/components/Shortcuts.vue | 81 + .../js/@core/components/TheCustomizer.vue | 367 + .../js/@core/components/ThemeSwitcher.vue | 43 + .../app-form-elements/AppAutocomplete.vue | 56 + .../app-form-elements/AppCombobox.vue | 57 + .../app-form-elements/AppDateTimePicker.vue | 502 + .../app-form-elements/AppOtpInput.vue | 78 + .../app-form-elements/AppSelect.vue | 49 + .../app-form-elements/AppTextField.vue | 48 + .../app-form-elements/AppTextarea.vue | 49 + .../app-form-elements/CustomCheckboxes.vue | 82 + .../CustomCheckboxesWithIcon.vue | 96 + .../CustomCheckboxesWithImage.vue | 83 + .../app-form-elements/CustomRadios.vue | 81 + .../CustomRadiosWithIcon.vue | 92 + .../CustomRadiosWithImage.vue | 68 + .../@core/components/cards/AppCardActions.vue | 162 + .../js/@core/components/cards/AppCardCode.vue | 128 + .../cards/CardStatisticsHorizontal.vue | 41 + .../cards/CardStatisticsVertical.vue | 61 + .../composable/useGenerateImageVariant.js | 24 + .../@core/composable/useResponsiveSidebar.js | 23 + resources/js/@core/composable/useSkins.js | 36 + .../js/@core/composable/useThemeConfig.js | 157 + resources/js/@core/enums.js | 13 + resources/js/@core/index.js | 93 + .../@core/libs/apex-chart/apexCharConfig.js | 683 + .../js/@core/libs/chartjs/chartjsConfig.js | 373 + .../@core/libs/chartjs/components/BarChart.js | 54 + .../libs/chartjs/components/BubbleChart.js | 54 + .../libs/chartjs/components/DoughnutChart.js | 54 + .../libs/chartjs/components/LineChart.js | 54 + .../libs/chartjs/components/PolarAreaChart.js | 54 + .../libs/chartjs/components/RadarChart.js | 54 + .../libs/chartjs/components/ScatterChart.js | 54 + resources/js/@core/utils/formatters.js | 46 + resources/js/@core/utils/index.js | 31 + resources/js/@core/utils/validators.js | 98 + resources/js/@core/utils/vuetify.js | 12 + resources/js/@iconify/build-icons.js | 232 + resources/js/@iconify/icons-bundle.js | 5 + resources/js/@iconify/tsconfig.json | 17 + resources/js/@layouts/.DS_Store | Bin 0 -> 6148 bytes resources/js/@layouts/components.js | 13 + .../js/@layouts/components/HorizontalNav.vue | 40 + .../components/HorizontalNavGroup.vue | 109 + .../components/HorizontalNavLayout.vue | 176 + .../@layouts/components/HorizontalNavLink.vue | 62 + .../components/HorizontalNavPopper.vue | 166 + .../js/@layouts/components/TopNavLayout.vue | 148 + .../@layouts/components/TransitionExpand.vue | 87 + .../js/@layouts/components/VNodeRenderer.jsx | 12 + .../js/@layouts/components/VerticalNav.vue | 226 + .../@layouts/components/VerticalNavGroup.vue | 180 + .../@layouts/components/VerticalNavLayout.vue | 211 + .../@layouts/components/VerticalNavLink.vue | 74 + .../components/VerticalNavSectionTitle.vue | 40 + .../composable/useDynamicVhCssProperty.js | 14 + .../js/@layouts/composable/useLayouts.js | 204 + resources/js/@layouts/config.js | 36 + resources/js/@layouts/enums.js | 18 + resources/js/@layouts/index.js | 52 + resources/js/@layouts/plugins/casl.js | 39 + resources/js/@layouts/styles/_classes.scss | 3 + .../js/@layouts/styles/_default-layout.scss | 35 + resources/js/@layouts/styles/_global.scss | 10 + resources/js/@layouts/styles/_mixins.scss | 28 + .../js/@layouts/styles/_placeholders.scss | 53 + resources/js/@layouts/styles/_rtl.scss | 7 + resources/js/@layouts/styles/_variables.scss | 28 + resources/js/@layouts/styles/index.scss | 3 + resources/js/@layouts/utils.js | 100 + resources/js/App.vue | 43 + resources/js/components/AppPricing.vue | 259 + resources/js/components/AppSearchHeader.vue | 82 + resources/js/components/ErrorHeader.vue | 37 + resources/js/components/Waveform.vue | 84 + .../dialogs/AddAuthenticatorAppDialog.vue | 110 + .../dialogs/AddEditAddressDialog.vue | 231 + .../dialogs/AddEditPermissionDialog.vue | 97 + .../components/dialogs/AddEditRoleDialog.vue | 287 + .../components/dialogs/CardAddEditDialog.vue | 140 + .../js/components/dialogs/ConfirmDialog.vue | 164 + .../js/components/dialogs/CreateAppDialog.vue | 437 + .../dialogs/EnableOneTimePasswordDialog.vue | 93 + .../components/dialogs/PricingPlanDialog.vue | 34 + .../components/dialogs/ReferAndEarnDialog.vue | 182 + .../components/dialogs/ShareProjectDialog.vue | 185 + .../dialogs/TwoFactorAuthDialog.vue | 166 + .../components/dialogs/UserInfoEditDialog.vue | 204 + .../dialogs/UserUpgradePlanDialog.vue | 118 + resources/js/layouts/blank.vue | 22 + .../DefaultLayoutWithHorizontalNav.vue | 54 + .../DefaultLayoutWithVerticalNav.vue | 119 + resources/js/layouts/components/Footer.vue | 3 + .../js/layouts/components/LandingNav.vue | 49 + .../js/layouts/components/NavBarI18n.vue | 32 + .../components/NavBarNotifications.vue | 90 + .../js/layouts/components/NavSearchBar.vue | 231 + .../js/layouts/components/NavbarShortcuts.vue | 47 + .../components/NavbarThemeSwitcher.vue | 20 + .../js/layouts/components/UserProfile.vue | 100 + resources/js/layouts/default.vue | 33 + resources/js/layouts/landing.vue | 18 + resources/js/main.js | 29 + resources/js/navigation/horizontal/index.js | 12 + resources/js/navigation/vertical/index.js | 12 + resources/js/pages/[...all].vue | 52 + resources/js/pages/admin/doctor/[id].vue | 301 + resources/js/pages/admin/doctor/index.vue | 383 + resources/js/pages/admin/index.vue | 19 + resources/js/pages/admin/patient/[id].vue | 207 + resources/js/pages/admin/patient/index.vue | 414 + resources/js/pages/dashboard.vue | 84 + resources/js/pages/doctor/patient/[id].vue | 480 + resources/js/pages/doctor/patient/index.vue | 89 + resources/js/pages/login.vue | 189 + resources/js/pages/patient/diagnoses.vue | 321 + resources/js/pages/profile.vue | 43 + resources/js/plugins/.DS_Store | Bin 0 -> 6148 bytes resources/js/plugins/axios.js | 52 + resources/js/plugins/casl/AppAbility.js | 3 + resources/js/plugins/casl/ability.js | 16 + resources/js/plugins/casl/useAppAbility.js | 3 + resources/js/plugins/i18n/index.js | 12 + resources/js/plugins/i18n/locales/ar.json | 157 + resources/js/plugins/i18n/locales/en.json | 158 + resources/js/plugins/i18n/locales/fr.json | 159 + resources/js/plugins/layouts.js | 6 + resources/js/plugins/toast.js | 42 + resources/js/plugins/vuetify/defaults.js | 177 + resources/js/plugins/vuetify/icons.js | 51 + resources/js/plugins/vuetify/index.js | 18 + resources/js/plugins/vuetify/theme.js | 125 + resources/js/plugins/webfontloader.js | 14 + resources/js/router/index.js | 32 + resources/js/stores/auth.js | 72 + resources/js/utils/diagnose.js | 18 + resources/js/views/.DS_Store | Bin 0 -> 6148 bytes .../pages/authentication/AuthProvider.vue | 39 + .../js/views/pages/dashboard/admin-chart.vue | 104 + resources/js/views/pages/dashboard/admin.vue | 146 + resources/js/views/pages/dashboard/doctor.vue | 237 + .../js/views/pages/dashboard/patient.vue | 171 + resources/styles/@core/base/_components.scss | 148 + resources/styles/@core/base/_dark.scss | 16 + .../_default-layout-w-horizontal-nav.scss | 45 + .../base/_default-layout-w-vertical-nav.scss | 103 + .../styles/@core/base/_default-layout.scss | 16 + .../styles/@core/base/_horizontal-nav.scss | 195 + resources/styles/@core/base/_index.scss | 48 + resources/styles/@core/base/_layouts.scss | 63 + resources/styles/@core/base/_misc.scss | 20 + resources/styles/@core/base/_mixins.scss | 78 + .../styles/@core/base/_route-transitions.scss | 70 + resources/styles/@core/base/_utilities.scss | 175 + resources/styles/@core/base/_utils.scss | 90 + resources/styles/@core/base/_variables.scss | 197 + .../styles/@core/base/_vertical-nav.scss | 246 + .../@core/base/libs/_perfect-scrollbar.scss | 35 + .../@core/base/libs/vuetify/_index.scss | 1 + .../@core/base/libs/vuetify/_overrides.scss | 294 + .../@core/base/libs/vuetify/_variables.scss | 48 + .../_default-layout-horizontal-nav.scss | 27 + .../_default-layout-vertical-nav.scss | 46 + .../base/placeholders/_default-layout.scss | 3 + .../base/placeholders/_horizontal-nav.scss | 94 + .../@core/base/placeholders/_index.scss | 7 + .../styles/@core/base/placeholders/_misc.scss | 7 + .../styles/@core/base/placeholders/_nav.scss | 33 + .../base/placeholders/_vertical-nav.scss | 81 + .../styles/@core/base/skins/_bordered.scss | 51 + resources/styles/@core/base/skins/_index.scss | 1 + .../styles/@core/template/_components.scss | 1032 + .../_default-layout-w-horizontal-nav.scss | 9 + .../_default-layout-w-vertical-nav.scss | 20 + .../@core/template/_horizontal-nav.scss | 35 + .../styles/@core/template/_utilities.scss | 20 + .../styles/@core/template/_variables.scss | 62 + .../styles/@core/template/_vertical-nav.scss | 41 + resources/styles/@core/template/index.scss | 17 + .../@core/template/libs/apex-chart.scss | 99 + .../@core/template/libs/full-calendar.scss | 301 + .../styles/@core/template/libs/shepherd.scss | 86 + .../template/libs/vuetify/_variables.scss | 281 + .../@core/template/libs/vuetify/index.scss | 1 + .../styles/@core/template/pages/misc.scss | 20 + .../@core/template/pages/page-auth.scss | 44 + .../_default-layout-horizontal-nav.scss | 5 + .../_default-layout-vertical-nav.scss | 8 + .../placeholders/_horizontal-nav.scss | 33 + .../@core/template/placeholders/_index.scss | 5 + .../@core/template/placeholders/_nav.scss | 16 + .../template/placeholders/_vertical-nav.scss | 18 + .../@core/template/skins/_bordered.scss | 36 + .../styles/@core/template/skins/_index.scss | 1 + resources/styles/styles.scss | 1 + resources/styles/variables/_template.scss | 6 + resources/styles/variables/_vuetify.scss | 7 + resources/views/app.blade.php | 53 + resources/views/welcome.blade.php | 707 + routes/api.php | 152 + routes/channels.php | 18 + routes/console.php | 19 + routes/web.php | 22 + storage/app/.gitignore | 3 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 9 + storage/framework/cache/.gitignore | 3 + storage/framework/cache/data/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + tests/CreatesApplication.php | 23 + tests/Feature/ExampleTest.php | 21 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 18 + themeConfig.js | 46 + vite.config.js | 119 + yarn.lock | 5474 ++++ 590 files changed, 111412 insertions(+) create mode 100644 .dockerignore create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .eslintrc-auto-import.json create mode 100644 .eslintrc.js create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 CONTRIBUTING.md create mode 100644 README.md create mode 100644 _ide_helper.php create mode 100644 app/Console/Commands/PublishToTopic.php create mode 100644 app/Console/Commands/SubscribeToTopic.php create mode 100644 app/Console/Kernel.php create mode 100644 app/Exceptions/Handler.php create mode 100644 app/Helpers/customHelper.php create mode 100644 app/Http/Controllers/AdminController.php create mode 100644 app/Http/Controllers/AuthController.php create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Http/Controllers/DashboardController.php create mode 100644 app/Http/Controllers/DiagnoseController.php create mode 100644 app/Http/Controllers/DoctorController.php create mode 100644 app/Http/Controllers/HeartwaveController.php create mode 100644 app/Http/Controllers/PatientController.php create mode 100644 app/Http/Kernel.php create mode 100644 app/Http/Middleware/Authenticate.php create mode 100644 app/Http/Middleware/EncryptCookies.php create mode 100644 app/Http/Middleware/PreventRequestsDuringMaintenance.php create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php create mode 100644 app/Http/Middleware/TrimStrings.php create mode 100644 app/Http/Middleware/TrustHosts.php create mode 100644 app/Http/Middleware/TrustProxies.php create mode 100644 app/Http/Middleware/ValidateSignature.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php create mode 100644 app/Http/Requests/BaseFormRequest.php create mode 100644 app/Http/Requests/DiagnoseRequest.php create mode 100644 app/Http/Requests/DoctorRequest.php create mode 100644 app/Http/Requests/LoginRequest.php create mode 100644 app/Http/Requests/PatientRequest.php create mode 100644 app/Interfaces/DiagnoseRepositoryInterface.php create mode 100644 app/Interfaces/DoctorRepositoryInterface.php create mode 100644 app/Interfaces/PatientRepositoryInterface.php create mode 100644 app/Interfaces/UserRepositoryInterface.php create mode 100644 app/Models/Diagnose.php create mode 100644 app/Models/Doctor.php create mode 100644 app/Models/DoctorPatient.php create mode 100644 app/Models/Heartwave.php create mode 100644 app/Models/Patient.php create mode 100644 app/Models/User.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/AuthServiceProvider.php create mode 100644 app/Providers/BroadcastServiceProvider.php create mode 100644 app/Providers/EventServiceProvider.php create mode 100644 app/Providers/RepositoryServiceProvider.php create mode 100644 app/Providers/RouteServiceProvider.php create mode 100644 app/Repositories/DiagnoseRepository.php create mode 100644 app/Repositories/DoctorRepository.php create mode 100644 app/Repositories/PatientRepository.php create mode 100644 app/Repositories/UserRepository.php create mode 100644 app/Traits/UUID.php create mode 100644 artisan create mode 100644 auto-imports.d.ts create mode 100644 bootstrap/app.php create mode 100644 bootstrap/cache/.gitignore create mode 100644 components.d.ts create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/broadcasting.php create mode 100644 config/cache.php create mode 100644 config/cors.php create mode 100644 config/database.php create mode 100644 config/filesystems.php create mode 100644 config/hashing.php create mode 100644 config/logging.php create mode 100644 config/mail.php create mode 100644 config/mqtt-client.php create mode 100644 config/passport.php create mode 100644 config/permission.php create mode 100644 config/queue.php create mode 100644 config/sanctum.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 config/view.php create mode 100644 database/.gitignore create mode 100644 database/factories/UserFactory.php create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php create mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php create mode 100644 database/migrations/2016_06_01_000001_create_oauth_auth_codes_table.php create mode 100644 database/migrations/2016_06_01_000002_create_oauth_access_tokens_table.php create mode 100644 database/migrations/2016_06_01_000003_create_oauth_refresh_tokens_table.php create mode 100644 database/migrations/2016_06_01_000004_create_oauth_clients_table.php create mode 100644 database/migrations/2016_06_01_000005_create_oauth_personal_access_clients_table.php create mode 100644 database/migrations/2019_08_19_000000_create_failed_jobs_table.php create mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php create mode 100644 database/migrations/2023_08_10_032309_create_patients_table.php create mode 100644 database/migrations/2023_08_11_064403_create_doctors_table.php create mode 100644 database/migrations/2023_08_11_065056_create_diagnoses_table.php create mode 100644 database/migrations/2023_08_11_065201_create_heartwaves_table.php create mode 100644 database/migrations/2023_08_18_034608_create_doctor_patients_table.php create mode 100644 database/migrations/2023_08_19_135728_create_permission_tables.php create mode 100644 database/seeders/DatabaseSeeder.php create mode 100644 database/seeders/DiagnoseSeeder.php create mode 100644 database/seeders/DoctorSeeder.php create mode 100644 database/seeders/PatientSeeder.php create mode 100644 database/seeders/RoleSeeder.php create mode 100644 database/seeders/UserSeeder.php create mode 100644 docker-compose.yml create mode 100644 docker/Dockerfile create mode 100644 docker/humicpro_myocardial.sql create mode 100644 docker/mariadb.Dockerfile create mode 100644 docker/nginx.Dockerfile create mode 100644 docker/nginx.conf create mode 100644 docker/opcache.ini create mode 100644 jsconfig.json create mode 100644 lang/en/auth.php create mode 100644 lang/en/pagination.php create mode 100644 lang/en/passwords.php create mode 100644 lang/en/validation.php create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 public/.htaccess create mode 100644 public/css/animate.css create mode 100644 public/css/bootstrap.min.css create mode 100644 public/css/flaticon.css create mode 100644 public/css/font-awesome.min.css create mode 100644 public/css/gijgo.css create mode 100644 public/css/magnific-popup.css create mode 100644 public/css/nice-select.css create mode 100644 public/css/owl.carousel.min.css create mode 100644 public/css/slicknav.css create mode 100644 public/css/style.css create mode 100644 public/css/theme-default.css create mode 100644 public/css/themify-icons.css create mode 100644 public/favicon.ico create mode 100644 public/fonts/Flaticon.eot create mode 100644 public/fonts/Flaticon.svg create mode 100644 public/fonts/Flaticon.ttf create mode 100644 public/fonts/Flaticon.woff create mode 100644 public/fonts/Flaticon.woff2 create mode 100644 public/fonts/FontAwesome.otf create mode 100644 public/fonts/fa-brands-400.eot create mode 100644 public/fonts/fa-brands-400.svg create mode 100644 public/fonts/fa-brands-400.ttf create mode 100644 public/fonts/fa-brands-400.woff create mode 100644 public/fonts/fa-brands-400.woff2 create mode 100644 public/fonts/fa-regular-400.eot create mode 100644 public/fonts/fa-regular-400.svg create mode 100644 public/fonts/fa-regular-400.ttf create mode 100644 public/fonts/fa-regular-400.woff create mode 100644 public/fonts/fa-regular-400.woff2 create mode 100644 public/fonts/fa-solid-900.eot create mode 100644 public/fonts/fa-solid-900.svg create mode 100644 public/fonts/fa-solid-900.ttf create mode 100644 public/fonts/fa-solid-900.woff create mode 100644 public/fonts/fa-solid-900.woff2 create mode 100644 public/fonts/flaticon.css create mode 100644 public/fonts/fontawesome-webfont.eot create mode 100644 public/fonts/fontawesome-webfont.svg create mode 100644 public/fonts/fontawesome-webfont.ttf create mode 100644 public/fonts/fontawesome-webfont.woff create mode 100644 public/fonts/fontawesome-webfont.woff2 create mode 100644 public/fonts/gijgo-material.eot create mode 100644 public/fonts/gijgo-material.svg create mode 100644 public/fonts/gijgo-material.ttf create mode 100644 public/fonts/gijgo-material.woff create mode 100644 public/fonts/themify.eot create mode 100644 public/fonts/themify.svg create mode 100644 public/fonts/themify.ttf create mode 100644 public/fonts/themify.woff create mode 100644 public/img/about/1.png create mode 100644 public/img/about/2.png create mode 100644 public/img/about/3.png create mode 100644 public/img/about/business.png create mode 100644 public/img/app/mobile-1.jpg create mode 100644 public/img/app/mobile-2.jpg create mode 100644 public/img/app/mobile-3.jpg create mode 100644 public/img/app/mobile-4.jpg create mode 100644 public/img/app/webapp-1.png create mode 100644 public/img/app/webapp-2.png create mode 100644 public/img/banner/banner4.png create mode 100644 public/img/blog/author.png create mode 100644 public/img/blog/blog_1.png create mode 100644 public/img/blog/blog_2.png create mode 100644 public/img/blog/blog_3.png create mode 100644 public/img/blog/blog_4.png create mode 100644 public/img/blog/learn_about_bg.png create mode 100644 public/img/blog/single_blog_1.png create mode 100644 public/img/blog/single_blog_2.png create mode 100644 public/img/blog/single_blog_3.png create mode 100644 public/img/blog/single_blog_4.png create mode 100644 public/img/blog/single_blog_5.png create mode 100644 public/img/blog/slide_thumb_1.png create mode 100644 public/img/experts/1.png create mode 100644 public/img/experts/2.png create mode 100644 public/img/experts/3.png create mode 100644 public/img/experts/4.png create mode 100644 public/img/experts/5.png create mode 100644 public/img/experts/6.png create mode 100644 public/img/experts/7.png create mode 100644 public/img/experts/8.png create mode 100644 public/img/experts/9.png create mode 100644 public/img/favicon.ico create mode 100644 public/img/logo.png create mode 100644 public/img/sponsors/ad_medika.png create mode 100644 public/img/sponsors/bank_indonesia.png create mode 100644 public/img/sponsors/fakultas_informatika.png create mode 100644 public/img/sponsors/fakultas_rekayasa_industri.webp create mode 100644 public/img/sponsors/fakultas_teknik_elektro.png create mode 100644 public/img/sponsors/telkom_indonesia.png create mode 100644 public/img/sponsors/telkom_university.webp create mode 100644 public/img/sponsors/telkomsel.png create mode 100644 public/img/sponsors/yayasan_FCTG.png create mode 100644 public/img/testmonial/1.png create mode 100644 public/img/testmonial/2.png create mode 100644 public/img/testmonial/3.png create mode 100644 public/index.php create mode 100644 public/js/ajax-form.js create mode 100644 public/js/bootstrap.min.js create mode 100644 public/js/contact.js create mode 100644 public/js/gijgo.min.js create mode 100644 public/js/imagesloaded.pkgd.min.js create mode 100644 public/js/isotope.pkgd.min.js create mode 100644 public/js/jquery.ajaxchimp.min.js create mode 100644 public/js/jquery.counterup.min.js create mode 100644 public/js/jquery.form.js create mode 100644 public/js/jquery.magnific-popup.min.js create mode 100644 public/js/jquery.scrollUp.min.js create mode 100644 public/js/jquery.slicknav.min.js create mode 100644 public/js/jquery.validate.min.js create mode 100644 public/js/mail-script.js create mode 100644 public/js/main.js create mode 100644 public/js/nice-select.min.js create mode 100644 public/js/owl.carousel.min.js create mode 100644 public/js/plugins.js create mode 100644 public/js/popper.min.js create mode 100644 public/js/scrollIt.js create mode 100644 public/js/vendor/jquery-1.12.4.min.js create mode 100644 public/js/vendor/modernizr-3.5.0.min.js create mode 100644 public/js/waypoints.min.js create mode 100644 public/js/wow.min.js create mode 100644 public/loader.css create mode 100644 public/robots.txt create mode 100644 resources/images/.DS_Store create mode 100644 resources/images/avatars/avatar-1.png create mode 100644 resources/images/avatars/avatar-10.png create mode 100644 resources/images/avatars/avatar-11.png create mode 100644 resources/images/avatars/avatar-12.png create mode 100644 resources/images/avatars/avatar-13.png create mode 100644 resources/images/avatars/avatar-14.png create mode 100644 resources/images/avatars/avatar-15.png create mode 100644 resources/images/avatars/avatar-2.png create mode 100644 resources/images/avatars/avatar-3.png create mode 100644 resources/images/avatars/avatar-4.png create mode 100644 resources/images/avatars/avatar-5.png create mode 100644 resources/images/avatars/avatar-6.png create mode 100644 resources/images/avatars/avatar-7.png create mode 100644 resources/images/avatars/avatar-8.png create mode 100644 resources/images/avatars/avatar-9.png create mode 100644 resources/images/iconify-svg/Card.svg create mode 100644 resources/images/iconify-svg/Check.svg create mode 100644 resources/images/iconify-svg/Diamond.svg create mode 100644 resources/images/iconify-svg/Suitcase.svg create mode 100644 resources/images/iconify-svg/Wallet.svg create mode 100644 resources/images/iconify-svg/address.svg create mode 100644 resources/images/iconify-svg/cart.svg create mode 100644 resources/images/iconify-svg/check-circle.svg create mode 100644 resources/images/iconify-svg/checked-checkbox.svg create mode 100644 resources/images/iconify-svg/checked-radio.svg create mode 100644 resources/images/iconify-svg/home.svg create mode 100644 resources/images/iconify-svg/indeterminate-checkbox.svg create mode 100644 resources/images/iconify-svg/javascript.svg create mode 100644 resources/images/iconify-svg/office.svg create mode 100644 resources/images/iconify-svg/payment.svg create mode 100644 resources/images/iconify-svg/star-empty.svg create mode 100644 resources/images/iconify-svg/star-fill.svg create mode 100644 resources/images/iconify-svg/star-half.svg create mode 100644 resources/images/iconify-svg/trending.svg create mode 100644 resources/images/iconify-svg/typescript.svg create mode 100644 resources/images/iconify-svg/unchecked-checkbox.svg create mode 100644 resources/images/iconify-svg/unchecked-radio.svg create mode 100644 resources/images/illustrations/congo-illustration.png create mode 100644 resources/images/illustrations/laptop-girl.png create mode 100644 resources/images/illustrations/register-multistep-illustration-dark.png create mode 100644 resources/images/illustrations/register-multistep-illustration-light.png create mode 100644 resources/images/illustrations/sidebar-pic-1.png create mode 100644 resources/images/illustrations/sidebar-pic-2.png create mode 100644 resources/images/illustrations/sidebar-pic-3.png create mode 100644 resources/images/illustrations/sitting-girl-with-laptop.png create mode 100644 resources/images/illustrations/standingGirlImg.png create mode 100644 resources/images/login_illustration.png create mode 100644 resources/images/logo.png create mode 100644 resources/images/logo.svg create mode 100644 resources/images/misc/3d-safe-box-with-golden-dollar-coins.png create mode 100644 resources/images/misc/3d-space-rocket-with-smoke.png create mode 100644 resources/images/misc/dollar-coins-flying-pink-piggy-bank.png create mode 100644 resources/images/pages/1.png create mode 100644 resources/images/pages/2.png create mode 100644 resources/images/pages/3.png create mode 100644 resources/images/pages/401.png create mode 100644 resources/images/pages/404.png create mode 100644 resources/images/pages/5.jpg create mode 100644 resources/images/pages/6.jpg create mode 100644 resources/images/pages/DealTypeBackground-dark.png create mode 100644 resources/images/pages/DealTypeBackground-light.png create mode 100644 resources/images/pages/app-search-header-bg.png create mode 100644 resources/images/pages/auth-v2-forgot-password-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-forgot-password-illustration-light.png create mode 100644 resources/images/pages/auth-v2-login-illustration-bordered-dark.png create mode 100644 resources/images/pages/auth-v2-login-illustration-bordered-light.png create mode 100644 resources/images/pages/auth-v2-login-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-login-illustration-light.png create mode 100644 resources/images/pages/auth-v2-register-illustration-bordered-dark.png create mode 100644 resources/images/pages/auth-v2-register-illustration-bordered-light.png create mode 100644 resources/images/pages/auth-v2-register-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-register-illustration-light.png create mode 100644 resources/images/pages/auth-v2-reset-password-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-reset-password-illustration-light.png create mode 100644 resources/images/pages/auth-v2-two-step-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-two-step-illustration-light.png create mode 100644 resources/images/pages/auth-v2-verify-email-illustration-dark.png create mode 100644 resources/images/pages/auth-v2-verify-email-illustration-light.png create mode 100644 resources/images/pages/background-1.jpg create mode 100644 resources/images/pages/background-2.jpg create mode 100644 resources/images/pages/background-3.jpg create mode 100644 resources/images/pages/create-deal-review-complete.png create mode 100644 resources/images/pages/custom-checkbox-img-1.png create mode 100644 resources/images/pages/custom-checkbox-img-2.png create mode 100644 resources/images/pages/custom-checkbox-img-3.png create mode 100644 resources/images/pages/custom-radio-img-1.png create mode 100644 resources/images/pages/custom-radio-img-2.png create mode 100644 resources/images/pages/custom-radio-img-3.png create mode 100644 resources/images/pages/girl-using-mobile.png create mode 100644 resources/images/pages/google-home.png create mode 100644 resources/images/pages/illustration-john.png create mode 100644 resources/images/pages/iphone-11.png create mode 100644 resources/images/pages/misc-coming-soon.png create mode 100644 resources/images/pages/misc-mask-dark.png create mode 100644 resources/images/pages/misc-mask-light.png create mode 100644 resources/images/pages/misc-under-maintenance.png create mode 100644 resources/images/pages/puma-shoes.jpeg create mode 100644 resources/images/pages/register-multistep-bg-dark.png create mode 100644 resources/images/pages/register-multistep-bg-light.png create mode 100644 resources/images/pages/themeselection-qr.png create mode 100644 resources/images/pages/user-profile-header-bg.png create mode 100644 resources/images/svg/auth-v1-bottom-shape.svg create mode 100644 resources/images/svg/auth-v1-top-shape.svg create mode 100644 resources/images/svg/discord.svg create mode 100644 resources/images/svg/gift.svg create mode 100644 resources/images/svg/keyboard.svg create mode 100644 resources/images/svg/laptop.svg create mode 100644 resources/images/svg/lightbulb.svg create mode 100644 resources/images/svg/paypal.svg create mode 100644 resources/images/svg/rocket.svg create mode 100644 resources/js/.DS_Store create mode 100644 resources/js/@core/.DS_Store create mode 100644 resources/js/@core/components/AppBarSearch.vue create mode 100644 resources/js/@core/components/AppDrawerHeaderSection.vue create mode 100644 resources/js/@core/components/AppStepper.vue create mode 100644 resources/js/@core/components/BuyNow.vue create mode 100644 resources/js/@core/components/CardStatisticsVerticalSimple.vue create mode 100644 resources/js/@core/components/CustomizerSection.vue create mode 100644 resources/js/@core/components/DialogCloseBtn.vue create mode 100644 resources/js/@core/components/I18n.vue create mode 100644 resources/js/@core/components/MoreBtn.vue create mode 100644 resources/js/@core/components/Notifications.vue create mode 100644 resources/js/@core/components/ScrollToTop.vue create mode 100644 resources/js/@core/components/Shortcuts.vue create mode 100644 resources/js/@core/components/TheCustomizer.vue create mode 100644 resources/js/@core/components/ThemeSwitcher.vue create mode 100644 resources/js/@core/components/app-form-elements/AppAutocomplete.vue create mode 100644 resources/js/@core/components/app-form-elements/AppCombobox.vue create mode 100644 resources/js/@core/components/app-form-elements/AppDateTimePicker.vue create mode 100644 resources/js/@core/components/app-form-elements/AppOtpInput.vue create mode 100644 resources/js/@core/components/app-form-elements/AppSelect.vue create mode 100644 resources/js/@core/components/app-form-elements/AppTextField.vue create mode 100644 resources/js/@core/components/app-form-elements/AppTextarea.vue create mode 100644 resources/js/@core/components/app-form-elements/CustomCheckboxes.vue create mode 100644 resources/js/@core/components/app-form-elements/CustomCheckboxesWithIcon.vue create mode 100644 resources/js/@core/components/app-form-elements/CustomCheckboxesWithImage.vue create mode 100644 resources/js/@core/components/app-form-elements/CustomRadios.vue create mode 100644 resources/js/@core/components/app-form-elements/CustomRadiosWithIcon.vue create mode 100644 resources/js/@core/components/app-form-elements/CustomRadiosWithImage.vue create mode 100644 resources/js/@core/components/cards/AppCardActions.vue create mode 100644 resources/js/@core/components/cards/AppCardCode.vue create mode 100644 resources/js/@core/components/cards/CardStatisticsHorizontal.vue create mode 100644 resources/js/@core/components/cards/CardStatisticsVertical.vue create mode 100644 resources/js/@core/composable/useGenerateImageVariant.js create mode 100644 resources/js/@core/composable/useResponsiveSidebar.js create mode 100644 resources/js/@core/composable/useSkins.js create mode 100644 resources/js/@core/composable/useThemeConfig.js create mode 100644 resources/js/@core/enums.js create mode 100644 resources/js/@core/index.js create mode 100644 resources/js/@core/libs/apex-chart/apexCharConfig.js create mode 100644 resources/js/@core/libs/chartjs/chartjsConfig.js create mode 100644 resources/js/@core/libs/chartjs/components/BarChart.js create mode 100644 resources/js/@core/libs/chartjs/components/BubbleChart.js create mode 100644 resources/js/@core/libs/chartjs/components/DoughnutChart.js create mode 100644 resources/js/@core/libs/chartjs/components/LineChart.js create mode 100644 resources/js/@core/libs/chartjs/components/PolarAreaChart.js create mode 100644 resources/js/@core/libs/chartjs/components/RadarChart.js create mode 100644 resources/js/@core/libs/chartjs/components/ScatterChart.js create mode 100644 resources/js/@core/utils/formatters.js create mode 100644 resources/js/@core/utils/index.js create mode 100644 resources/js/@core/utils/validators.js create mode 100644 resources/js/@core/utils/vuetify.js create mode 100644 resources/js/@iconify/build-icons.js create mode 100644 resources/js/@iconify/icons-bundle.js create mode 100644 resources/js/@iconify/tsconfig.json create mode 100644 resources/js/@layouts/.DS_Store create mode 100644 resources/js/@layouts/components.js create mode 100644 resources/js/@layouts/components/HorizontalNav.vue create mode 100644 resources/js/@layouts/components/HorizontalNavGroup.vue create mode 100644 resources/js/@layouts/components/HorizontalNavLayout.vue create mode 100644 resources/js/@layouts/components/HorizontalNavLink.vue create mode 100644 resources/js/@layouts/components/HorizontalNavPopper.vue create mode 100644 resources/js/@layouts/components/TopNavLayout.vue create mode 100644 resources/js/@layouts/components/TransitionExpand.vue create mode 100644 resources/js/@layouts/components/VNodeRenderer.jsx create mode 100644 resources/js/@layouts/components/VerticalNav.vue create mode 100644 resources/js/@layouts/components/VerticalNavGroup.vue create mode 100644 resources/js/@layouts/components/VerticalNavLayout.vue create mode 100644 resources/js/@layouts/components/VerticalNavLink.vue create mode 100644 resources/js/@layouts/components/VerticalNavSectionTitle.vue create mode 100644 resources/js/@layouts/composable/useDynamicVhCssProperty.js create mode 100644 resources/js/@layouts/composable/useLayouts.js create mode 100644 resources/js/@layouts/config.js create mode 100644 resources/js/@layouts/enums.js create mode 100644 resources/js/@layouts/index.js create mode 100644 resources/js/@layouts/plugins/casl.js create mode 100644 resources/js/@layouts/styles/_classes.scss create mode 100644 resources/js/@layouts/styles/_default-layout.scss create mode 100644 resources/js/@layouts/styles/_global.scss create mode 100644 resources/js/@layouts/styles/_mixins.scss create mode 100644 resources/js/@layouts/styles/_placeholders.scss create mode 100644 resources/js/@layouts/styles/_rtl.scss create mode 100644 resources/js/@layouts/styles/_variables.scss create mode 100644 resources/js/@layouts/styles/index.scss create mode 100644 resources/js/@layouts/utils.js create mode 100644 resources/js/App.vue create mode 100644 resources/js/components/AppPricing.vue create mode 100644 resources/js/components/AppSearchHeader.vue create mode 100644 resources/js/components/ErrorHeader.vue create mode 100644 resources/js/components/Waveform.vue create mode 100644 resources/js/components/dialogs/AddAuthenticatorAppDialog.vue create mode 100644 resources/js/components/dialogs/AddEditAddressDialog.vue create mode 100644 resources/js/components/dialogs/AddEditPermissionDialog.vue create mode 100644 resources/js/components/dialogs/AddEditRoleDialog.vue create mode 100644 resources/js/components/dialogs/CardAddEditDialog.vue create mode 100644 resources/js/components/dialogs/ConfirmDialog.vue create mode 100644 resources/js/components/dialogs/CreateAppDialog.vue create mode 100644 resources/js/components/dialogs/EnableOneTimePasswordDialog.vue create mode 100644 resources/js/components/dialogs/PricingPlanDialog.vue create mode 100644 resources/js/components/dialogs/ReferAndEarnDialog.vue create mode 100644 resources/js/components/dialogs/ShareProjectDialog.vue create mode 100644 resources/js/components/dialogs/TwoFactorAuthDialog.vue create mode 100644 resources/js/components/dialogs/UserInfoEditDialog.vue create mode 100644 resources/js/components/dialogs/UserUpgradePlanDialog.vue create mode 100644 resources/js/layouts/blank.vue create mode 100644 resources/js/layouts/components/DefaultLayoutWithHorizontalNav.vue create mode 100644 resources/js/layouts/components/DefaultLayoutWithVerticalNav.vue create mode 100644 resources/js/layouts/components/Footer.vue create mode 100644 resources/js/layouts/components/LandingNav.vue create mode 100644 resources/js/layouts/components/NavBarI18n.vue create mode 100644 resources/js/layouts/components/NavBarNotifications.vue create mode 100644 resources/js/layouts/components/NavSearchBar.vue create mode 100644 resources/js/layouts/components/NavbarShortcuts.vue create mode 100644 resources/js/layouts/components/NavbarThemeSwitcher.vue create mode 100644 resources/js/layouts/components/UserProfile.vue create mode 100644 resources/js/layouts/default.vue create mode 100644 resources/js/layouts/landing.vue create mode 100644 resources/js/main.js create mode 100644 resources/js/navigation/horizontal/index.js create mode 100644 resources/js/navigation/vertical/index.js create mode 100644 resources/js/pages/[...all].vue create mode 100644 resources/js/pages/admin/doctor/[id].vue create mode 100644 resources/js/pages/admin/doctor/index.vue create mode 100644 resources/js/pages/admin/index.vue create mode 100644 resources/js/pages/admin/patient/[id].vue create mode 100644 resources/js/pages/admin/patient/index.vue create mode 100644 resources/js/pages/dashboard.vue create mode 100644 resources/js/pages/doctor/patient/[id].vue create mode 100644 resources/js/pages/doctor/patient/index.vue create mode 100644 resources/js/pages/login.vue create mode 100644 resources/js/pages/patient/diagnoses.vue create mode 100644 resources/js/pages/profile.vue create mode 100644 resources/js/plugins/.DS_Store create mode 100644 resources/js/plugins/axios.js create mode 100644 resources/js/plugins/casl/AppAbility.js create mode 100644 resources/js/plugins/casl/ability.js create mode 100644 resources/js/plugins/casl/useAppAbility.js create mode 100644 resources/js/plugins/i18n/index.js create mode 100644 resources/js/plugins/i18n/locales/ar.json create mode 100644 resources/js/plugins/i18n/locales/en.json create mode 100644 resources/js/plugins/i18n/locales/fr.json create mode 100644 resources/js/plugins/layouts.js create mode 100644 resources/js/plugins/toast.js create mode 100644 resources/js/plugins/vuetify/defaults.js create mode 100644 resources/js/plugins/vuetify/icons.js create mode 100644 resources/js/plugins/vuetify/index.js create mode 100644 resources/js/plugins/vuetify/theme.js create mode 100644 resources/js/plugins/webfontloader.js create mode 100644 resources/js/router/index.js create mode 100644 resources/js/stores/auth.js create mode 100644 resources/js/utils/diagnose.js create mode 100644 resources/js/views/.DS_Store create mode 100644 resources/js/views/pages/authentication/AuthProvider.vue create mode 100644 resources/js/views/pages/dashboard/admin-chart.vue create mode 100644 resources/js/views/pages/dashboard/admin.vue create mode 100644 resources/js/views/pages/dashboard/doctor.vue create mode 100644 resources/js/views/pages/dashboard/patient.vue create mode 100644 resources/styles/@core/base/_components.scss create mode 100644 resources/styles/@core/base/_dark.scss create mode 100644 resources/styles/@core/base/_default-layout-w-horizontal-nav.scss create mode 100644 resources/styles/@core/base/_default-layout-w-vertical-nav.scss create mode 100644 resources/styles/@core/base/_default-layout.scss create mode 100644 resources/styles/@core/base/_horizontal-nav.scss create mode 100644 resources/styles/@core/base/_index.scss create mode 100644 resources/styles/@core/base/_layouts.scss create mode 100644 resources/styles/@core/base/_misc.scss create mode 100644 resources/styles/@core/base/_mixins.scss create mode 100644 resources/styles/@core/base/_route-transitions.scss create mode 100644 resources/styles/@core/base/_utilities.scss create mode 100644 resources/styles/@core/base/_utils.scss create mode 100644 resources/styles/@core/base/_variables.scss create mode 100644 resources/styles/@core/base/_vertical-nav.scss create mode 100644 resources/styles/@core/base/libs/_perfect-scrollbar.scss create mode 100644 resources/styles/@core/base/libs/vuetify/_index.scss create mode 100644 resources/styles/@core/base/libs/vuetify/_overrides.scss create mode 100644 resources/styles/@core/base/libs/vuetify/_variables.scss create mode 100644 resources/styles/@core/base/placeholders/_default-layout-horizontal-nav.scss create mode 100644 resources/styles/@core/base/placeholders/_default-layout-vertical-nav.scss create mode 100644 resources/styles/@core/base/placeholders/_default-layout.scss create mode 100644 resources/styles/@core/base/placeholders/_horizontal-nav.scss create mode 100644 resources/styles/@core/base/placeholders/_index.scss create mode 100644 resources/styles/@core/base/placeholders/_misc.scss create mode 100644 resources/styles/@core/base/placeholders/_nav.scss create mode 100644 resources/styles/@core/base/placeholders/_vertical-nav.scss create mode 100644 resources/styles/@core/base/skins/_bordered.scss create mode 100644 resources/styles/@core/base/skins/_index.scss create mode 100644 resources/styles/@core/template/_components.scss create mode 100644 resources/styles/@core/template/_default-layout-w-horizontal-nav.scss create mode 100644 resources/styles/@core/template/_default-layout-w-vertical-nav.scss create mode 100644 resources/styles/@core/template/_horizontal-nav.scss create mode 100644 resources/styles/@core/template/_utilities.scss create mode 100644 resources/styles/@core/template/_variables.scss create mode 100644 resources/styles/@core/template/_vertical-nav.scss create mode 100644 resources/styles/@core/template/index.scss create mode 100644 resources/styles/@core/template/libs/apex-chart.scss create mode 100644 resources/styles/@core/template/libs/full-calendar.scss create mode 100644 resources/styles/@core/template/libs/shepherd.scss create mode 100644 resources/styles/@core/template/libs/vuetify/_variables.scss create mode 100644 resources/styles/@core/template/libs/vuetify/index.scss create mode 100644 resources/styles/@core/template/pages/misc.scss create mode 100644 resources/styles/@core/template/pages/page-auth.scss create mode 100644 resources/styles/@core/template/placeholders/_default-layout-horizontal-nav.scss create mode 100644 resources/styles/@core/template/placeholders/_default-layout-vertical-nav.scss create mode 100644 resources/styles/@core/template/placeholders/_horizontal-nav.scss create mode 100644 resources/styles/@core/template/placeholders/_index.scss create mode 100644 resources/styles/@core/template/placeholders/_nav.scss create mode 100644 resources/styles/@core/template/placeholders/_vertical-nav.scss create mode 100644 resources/styles/@core/template/skins/_bordered.scss create mode 100644 resources/styles/@core/template/skins/_index.scss create mode 100644 resources/styles/styles.scss create mode 100644 resources/styles/variables/_template.scss create mode 100644 resources/styles/variables/_vuetify.scss create mode 100644 resources/views/app.blade.php create mode 100644 resources/views/welcome.blade.php create mode 100644 routes/api.php create mode 100644 routes/channels.php create mode 100644 routes/console.php create mode 100644 routes/web.php create mode 100644 storage/app/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/cache/data/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 storage/logs/.gitignore create mode 100644 tests/CreatesApplication.php create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 themeConfig.js create mode 100644 vite.config.js create mode 100644 yarn.lock diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e599283 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.git +.github +node_modules +vendor +storage/*.key +.env +.phpunit.result.cache +Docker/Dockerfile diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..56bf5c2 --- /dev/null +++ b/.env.example @@ -0,0 +1,58 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=apicta_api +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DISK=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailpit +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json new file mode 100644 index 0000000..41e6390 --- /dev/null +++ b/.eslintrc-auto-import.json @@ -0,0 +1,320 @@ +{ + "globals": { + "Component": true, + "ComponentPublicInstance": true, + "ComputedRef": true, + "EffectScope": true, + "ExtractDefaultPropTypes": true, + "ExtractPropTypes": true, + "ExtractPublicPropTypes": true, + "InjectionKey": true, + "PropType": true, + "Ref": true, + "VNode": true, + "WritableComputedRef": true, + "acceptHMRUpdate": true, + "asyncComputed": true, + "autoResetRef": true, + "computed": true, + "computedAsync": true, + "computedEager": true, + "computedInject": true, + "computedWithControl": true, + "controlledComputed": true, + "controlledRef": true, + "createApp": true, + "createEventHook": true, + "createGenericProjection": true, + "createGlobalState": true, + "createInjectionState": true, + "createPinia": true, + "createProjection": true, + "createReactiveFn": true, + "createReusableTemplate": true, + "createSharedComposable": true, + "createTemplatePromise": true, + "createUnrefFn": true, + "customRef": true, + "debouncedRef": true, + "debouncedWatch": true, + "defineAsyncComponent": true, + "defineComponent": true, + "defineStore": true, + "eagerComputed": true, + "effectScope": true, + "extendRef": true, + "getActivePinia": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "ignorableWatch": true, + "inject": true, + "isDefined": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "logicAnd": true, + "logicNot": true, + "logicOr": true, + "makeDestructurable": true, + "mapActions": true, + "mapGetters": true, + "mapState": true, + "mapStores": true, + "mapWritableState": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeRouteLeave": true, + "onBeforeRouteUpdate": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onClickOutside": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onKeyStroke": true, + "onLongPress": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onStartTyping": true, + "onUnmounted": true, + "onUpdated": true, + "pausableWatch": true, + "provide": true, + "reactify": true, + "reactifyObject": true, + "reactive": true, + "reactiveComputed": true, + "reactiveOmit": true, + "reactivePick": true, + "readonly": true, + "ref": true, + "refAutoReset": true, + "refDebounced": true, + "refDefault": true, + "refThrottled": true, + "refWithControl": true, + "resolveComponent": true, + "resolveRef": true, + "resolveUnref": true, + "setActivePinia": true, + "setMapStoreSuffix": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "storeToRefs": true, + "syncRef": true, + "syncRefs": true, + "templateRef": true, + "throttledRef": true, + "throttledWatch": true, + "toRaw": true, + "toReactive": true, + "toRef": true, + "toRefs": true, + "toValue": true, + "triggerRef": true, + "tryOnBeforeMount": true, + "tryOnBeforeUnmount": true, + "tryOnMounted": true, + "tryOnScopeDispose": true, + "tryOnUnmounted": true, + "unref": true, + "unrefElement": true, + "until": true, + "useAbs": true, + "useActiveElement": true, + "useAnimate": true, + "useArrayDifference": true, + "useArrayEvery": true, + "useArrayFilter": true, + "useArrayFind": true, + "useArrayFindIndex": true, + "useArrayFindLast": true, + "useArrayIncludes": true, + "useArrayJoin": true, + "useArrayMap": true, + "useArrayReduce": true, + "useArraySome": true, + "useArrayUnique": true, + "useAsyncQueue": true, + "useAsyncState": true, + "useAttrs": true, + "useAverage": true, + "useBase64": true, + "useBattery": true, + "useBluetooth": true, + "useBreakpoints": true, + "useBroadcastChannel": true, + "useBrowserLocation": true, + "useCached": true, + "useCeil": true, + "useClamp": true, + "useClipboard": true, + "useCloned": true, + "useColorMode": true, + "useConfirmDialog": true, + "useCounter": true, + "useCssModule": true, + "useCssVar": true, + "useCssVars": true, + "useCurrentElement": true, + "useCycleList": true, + "useDark": true, + "useDateFormat": true, + "useDebounce": true, + "useDebounceFn": true, + "useDebouncedRefHistory": true, + "useDeviceMotion": true, + "useDeviceOrientation": true, + "useDevicePixelRatio": true, + "useDevicesList": true, + "useDisplayMedia": true, + "useDocumentVisibility": true, + "useDraggable": true, + "useDropZone": true, + "useElementBounding": true, + "useElementByPoint": true, + "useElementHover": true, + "useElementSize": true, + "useElementVisibility": true, + "useEventBus": true, + "useEventListener": true, + "useEventSource": true, + "useEyeDropper": true, + "useFavicon": true, + "useFetch": true, + "useFileDialog": true, + "useFileSystemAccess": true, + "useFloor": true, + "useFocus": true, + "useFocusWithin": true, + "useFps": true, + "useFullscreen": true, + "useGamepad": true, + "useGeolocation": true, + "useIdle": true, + "useImage": true, + "useInfiniteScroll": true, + "useIntersectionObserver": true, + "useInterval": true, + "useIntervalFn": true, + "useKeyModifier": true, + "useLastChanged": true, + "useLink": true, + "useLocalStorage": true, + "useMagicKeys": true, + "useManualRefHistory": true, + "useMath": true, + "useMax": true, + "useMediaControls": true, + "useMediaQuery": true, + "useMemoize": true, + "useMemory": true, + "useMin": true, + "useMounted": true, + "useMouse": true, + "useMouseInElement": true, + "useMousePressed": true, + "useMutationObserver": true, + "useNavigatorLanguage": true, + "useNetwork": true, + "useNow": true, + "useObjectUrl": true, + "useOffsetPagination": true, + "useOnline": true, + "usePageLeave": true, + "useParallax": true, + "useParentElement": true, + "usePerformanceObserver": true, + "usePermission": true, + "usePointer": true, + "usePointerLock": true, + "usePointerSwipe": true, + "usePrecision": true, + "usePreferredColorScheme": true, + "usePreferredContrast": true, + "usePreferredDark": true, + "usePreferredLanguages": true, + "usePreferredReducedMotion": true, + "usePrevious": true, + "useProjection": true, + "useRafFn": true, + "useRefHistory": true, + "useResizeObserver": true, + "useRound": true, + "useRoute": true, + "useRouter": true, + "useScreenOrientation": true, + "useScreenSafeArea": true, + "useScriptTag": true, + "useScroll": true, + "useScrollLock": true, + "useSessionStorage": true, + "useShare": true, + "useSlots": true, + "useSorted": true, + "useSpeechRecognition": true, + "useSpeechSynthesis": true, + "useStepper": true, + "useStorage": true, + "useStorageAsync": true, + "useStyleTag": true, + "useSum": true, + "useSupported": true, + "useSwipe": true, + "useTemplateRefsList": true, + "useTextDirection": true, + "useTextSelection": true, + "useTextareaAutosize": true, + "useThrottle": true, + "useThrottleFn": true, + "useThrottledRefHistory": true, + "useTimeAgo": true, + "useTimeout": true, + "useTimeoutFn": true, + "useTimeoutPoll": true, + "useTimestamp": true, + "useTitle": true, + "useToNumber": true, + "useToString": true, + "useToggle": true, + "useTransition": true, + "useTrunc": true, + "useUrlSearchParams": true, + "useUserMedia": true, + "useVModel": true, + "useVModels": true, + "useVibrate": true, + "useVirtualList": true, + "useWakeLock": true, + "useWebNotification": true, + "useWebSocket": true, + "useWebWorker": true, + "useWebWorkerFn": true, + "useWindowFocus": true, + "useWindowScroll": true, + "useWindowSize": true, + "watch": true, + "watchArray": true, + "watchAtMost": true, + "watchDebounced": true, + "watchDeep": true, + "watchEffect": true, + "watchIgnorable": true, + "watchImmediate": true, + "watchOnce": true, + "watchPausable": true, + "watchPostEffect": true, + "watchSyncEffect": true, + "watchThrottled": true, + "watchTriggerable": true, + "watchWithFilter": true, + "whenever": true + } +} \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..945aef4 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,230 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + extends: [ + '.eslintrc-auto-import.json', + 'plugin:vue/vue3-recommended', + 'plugin:import/recommended', + 'plugin:promise/recommended', + 'plugin:sonarjs/recommended', + + // 'plugin:unicorn/recommended', + ], + parser: 'vue-eslint-parser', + parserOptions: { + ecmaVersion: 13, + sourceType: 'module', + }, + plugins: [ + 'vue', + 'regex', + ], + ignorePatterns: ['resources/js/@iconify/*.js', 'node_modules', 'dist'], + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + + // indentation (Already present in TypeScript) + 'comma-spacing': ['error', { before: false, after: true }], + 'key-spacing': ['error', { afterColon: true }], + + 'vue/first-attribute-linebreak': ['error', { + singleline: 'beside', + multiline: 'below', + }], + + + // indentation (Already present in TypeScript) + 'indent': ['error', 2], + + // Enforce trailing comma (Already present in TypeScript) + 'comma-dangle': ['error', 'always-multiline'], + + // Enforce consistent spacing inside braces of object (Already present in TypeScript) + 'object-curly-spacing': ['error', 'always'], + + // Disable max-len + 'max-len': 'off', + + // we don't want it + 'semi': ['error', 'never'], + + // add parens ony when required in arrow function + 'arrow-parens': ['error', 'as-needed'], + + // add new line above comment + 'newline-before-return': 'error', + + // add new line above comment + 'lines-around-comment': [ + 'error', + { + beforeBlockComment: true, + beforeLineComment: true, + allowBlockStart: true, + allowClassStart: true, + allowObjectStart: true, + allowArrayStart: true, + }, + ], + + // Ignore _ as unused variable + + 'array-element-newline': ['error', 'consistent'], + 'array-bracket-newline': ['error', 'consistent'], + + 'vue/multi-word-component-names': 'off', + + 'padding-line-between-statements': [ + 'error', + { blankLine: 'always', prev: 'expression', next: 'const' }, + { blankLine: 'always', prev: 'const', next: 'expression' }, + { blankLine: 'always', prev: 'multiline-const', next: '*' }, + { blankLine: 'always', prev: '*', next: 'multiline-const' }, + ], + + // Plugin: eslint-plugin-import + 'import/prefer-default-export': 'off', + 'import/newline-after-import': ['error', { count: 1 }], + 'no-restricted-imports': ['error', 'vuetify/components'], + + // For omitting extension for ts files + 'import/extensions': [ + 'error', + 'ignorePackages', + { + js: 'never', + jsx: 'never', + ts: 'never', + tsx: 'never', + }, + ], + + // ignore virtual files + 'import/no-unresolved': [2, { + ignore: [ + '~pages$', + 'virtual:generated-layouts', + + // Ignore vite's ?raw imports + '.*\?raw', + ], + }], + + // Thanks: https://stackoverflow.com/a/63961972/10796681 + 'no-shadow': 'off', + + + // Plugin: eslint-plugin-promise + 'promise/always-return': 'off', + 'promise/catch-or-return': 'off', + + // ESLint plugin vue + 'vue/block-tag-newline': 'error', + 'vue/component-api-style': 'error', + 'vue/component-name-in-template-casing': ['error', 'PascalCase', { registeredComponentsOnly: false }], + 'vue/custom-event-name-casing': ['error', 'camelCase', { + ignores: [ + '/^(click):[a-z]+((\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?/', + ], + }], + 'vue/define-macros-order': 'error', + 'vue/html-comment-content-newline': 'error', + 'vue/html-comment-content-spacing': 'error', + 'vue/html-comment-indent': 'error', + 'vue/match-component-file-name': 'error', + 'vue/no-child-content': 'error', + 'vue/require-default-prop': 'off', + + // NOTE this rule only supported in SFC, Users of the unplugin-vue-define-options should disable that rule: https://github.com/vuejs/eslint-plugin-vue/issues/1886 + // 'vue/no-duplicate-attr-inheritance': 'error', + 'vue/no-empty-component-block': 'error', + 'vue/no-multiple-objects-in-class': 'error', + 'vue/no-reserved-component-names': 'error', + 'vue/no-template-target-blank': 'error', + 'vue/no-useless-mustaches': 'error', + 'vue/no-useless-v-bind': 'error', + 'vue/padding-line-between-blocks': 'error', + 'vue/prefer-separate-static-class': 'error', + 'vue/prefer-true-attribute-shorthand': 'error', + 'vue/v-on-function-call': 'error', + 'vue/no-restricted-class': ['error', '/^(p|m)(l|r)-/'], + 'vue/valid-v-slot': ['error', { + allowModifiers: true, + }], + + // -- Extension Rules + 'vue/no-irregular-whitespace': 'error', + 'vue/template-curly-spacing': 'error', + + // -- Sonarlint + 'sonarjs/no-duplicate-string': 'off', + 'sonarjs/no-nested-template-literals': 'off', + + // -- Unicorn + // 'unicorn/filename-case': 'off', + // 'unicorn/prevent-abbreviations': ['error', { + // replacements: { + // props: false, + // }, + // }], + + // https://github.com/gmullerb/eslint-plugin-regex + 'regex/invalid': [ + 'error', + [ + { + regex: '@/assets/images', + replacement: '@images', + message: 'Use \'@images\' path alias for image imports', + }, + { + regex: '@/styles', + replacement: '@styles', + message: 'Use \'@styles\' path alias for importing styles from \'resources/js/styles\'', + }, + + // { + // id: 'Disallow icon of icon library', + // regex: 'tabler-\\w', + // message: 'Only \'mdi\' icons are allowed', + // }, + + { + regex: '@core/\\w', + message: 'You can\'t use @core when you are in @layouts module', + files: { + inspect: '@layouts/.*', + }, + }, + { + regex: 'useLayouts\\(', + message: '`useLayouts` composable is only allowed in @layouts & @core directory. Please use `useThemeConfig` composable instead.', + files: { + inspect: '^(?!.*(@core|@layouts)).*', + }, + }, + { + regex: 'import axios from \'axios\'', + replacement: 'import axios from \'@axios\'', + message: 'Use axios instances created in \'resources/js/plugin/axios.js\' instead of unconfigured axios', + files: { + ignore: '^.*plugins/axios.js.*', + }, + }, + ], + + // Ignore files + '\.eslintrc\.js', + ], + }, + settings: { + 'import/resolver': { + node: { + extensions: ['.js', '.js', '.jsx', '.jsx', '.mjs', '.png', '.jpg'], + }, alias: { 'extensions': ['.ts', '.js', '.tsx', '.jsx', '.mjs'], 'map': [["@", "./resources/js"], ["@themeConfig", "./themeConfig.js"], ["@core", "./resources/js/@core"], ["@layouts", "./resources/js/@layouts"], ["@images", "./resources/images/"], ["@styles", "./resources/styles/"], ["@configured-variables", "./resources/styles/variables/_template.scss"], ["@axios", "./resources/js/plugins/axios"], ["@validators", "./resources/js/@core/utils/validators"], ["apexcharts", "node_modules/apexcharts-clevision"]] }, + }, + }, +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7dbbf41 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d4fd33 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +/node_modules +/vendor +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/framework/cache/data/* +/storage/framework/sessions/* +/storage/framework/views/* +/storage/framework/testing/* +/storage/logs/* +!/storage/framework/.gitignore +!/storage/framework/cache/.gitignore +!/storage/framework/cache/data/.gitignore +!/storage/framework/sessions/.gitignore +!/storage/framework/testing/.gitignore +!/storage/framework/views/.gitignore +!/storage/logs/.gitignore +!/storage/app/.gitignore +!/storage/app/public/.gitignore + +.env +.env.backup +.env.production + +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json + +npm-debug.log +yarn-error.log + +# IDE +/.fleet +/.idea +/.vscode + +# cPanel artifacts +.ftpquota +.rnd +cgi-bin/ +.well-known/ diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..fe72652 --- /dev/null +++ b/.htaccess @@ -0,0 +1,15 @@ + +RewriteEngine On +RewriteRule ^(.*)$ public/$1 [L] + + + AddOutputFilterByType DEFLATE text/plain + AddOutputFilterByType DEFLATE text/html + AddOutputFilterByType DEFLATE text/xml + AddOutputFilterByType DEFLATE text/css + AddOutputFilterByType DEFLATE application/xml + AddOutputFilterByType DEFLATE application/xhtml+xml + AddOutputFilterByType DEFLATE application/rss+xml + AddOutputFilterByType DEFLATE application/javascript + AddOutputFilterByType DEFLATE application/x-javascript + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..bf5f5af --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,62 @@ + +## Commit Message Guidelines + +We have very precise rules over how our git commit messages can be formatted. This leads to **more +readable messages** that are easy to follow when looking through the **project history**. But also, +we use the git commit messages to **generate the Angular change log**. + +### Commit Message Format +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope** and a **subject**: + +``` +(): + + + +