├── public ├── favicon.ico ├── robots.txt ├── stisla │ ├── assets │ │ ├── js │ │ │ ├── page │ │ │ │ ├── auth-register.js │ │ │ │ ├── gmaps-simple.js │ │ │ │ ├── modules-slider.js │ │ │ │ ├── modules-ion-icons.js │ │ │ │ ├── components-user.js │ │ │ │ ├── gmaps-route.js │ │ │ │ ├── gmaps-marker.js │ │ │ │ ├── features-post-create.js │ │ │ │ ├── gmaps-geocoding.js │ │ │ │ ├── utilities-contact.js │ │ │ │ ├── features-setting-detail.js │ │ │ │ ├── features-posts.js │ │ │ │ ├── gmaps-geolocation.js │ │ │ │ ├── components-table.js │ │ │ │ ├── gmaps-advanced-route.js │ │ │ │ ├── modules-datatables.js │ │ │ │ ├── gmaps-multiple-marker.js │ │ │ │ ├── modules-sparkline.js │ │ │ │ ├── components-multiple-upload.js │ │ │ │ ├── gmaps-draggable-marker.js │ │ │ │ ├── modules-sweetalert.js │ │ │ │ └── modules-calendar.js │ │ │ └── custom.js │ │ ├── img │ │ │ ├── p-50.png │ │ │ ├── p-250.png │ │ │ ├── whatsapp.png │ │ │ ├── news │ │ │ │ ├── img01.jpg │ │ │ │ ├── img02.jpg │ │ │ │ ├── img03.jpg │ │ │ │ ├── img04.jpg │ │ │ │ ├── img05.jpg │ │ │ │ ├── img06.jpg │ │ │ │ ├── img07.jpg │ │ │ │ ├── img08.jpg │ │ │ │ ├── img09.jpg │ │ │ │ ├── img10.jpg │ │ │ │ ├── img11.jpg │ │ │ │ ├── img12.jpg │ │ │ │ ├── img13.jpg │ │ │ │ ├── img14.jpg │ │ │ │ ├── img15.jpg │ │ │ │ ├── img16.jpg │ │ │ │ └── img17.jpg │ │ │ ├── example-image.jpg │ │ │ ├── avatar │ │ │ │ ├── avatar-1.png │ │ │ │ ├── avatar-2.png │ │ │ │ ├── avatar-3.png │ │ │ │ ├── avatar-4.png │ │ │ │ └── avatar-5.png │ │ │ ├── example-image-50.jpg │ │ │ ├── products │ │ │ │ ├── product-1.jpg │ │ │ │ ├── product-2.jpg │ │ │ │ ├── product-3.jpg │ │ │ │ ├── product-4.jpg │ │ │ │ ├── product-5.jpg │ │ │ │ ├── product-1-50.png │ │ │ │ ├── product-2-50.png │ │ │ │ ├── product-3-50.png │ │ │ │ ├── product-4-50.png │ │ │ │ └── product-5-50.png │ │ │ ├── unsplash │ │ │ │ ├── login-bg.jpg │ │ │ │ ├── andre-benz-1214056-unsplash.jpg │ │ │ │ └── eberhard-grossgasteiger-1207565-unsplash.jpg │ │ │ ├── stisla.svg │ │ │ ├── stisla-fill.svg │ │ │ ├── stisla-light.svg │ │ │ └── stisla-transparent.svg │ │ ├── fonts │ │ │ ├── vazir │ │ │ │ ├── Vazir.eot │ │ │ │ ├── Vazir.ttf │ │ │ │ ├── Vazir.woff │ │ │ │ ├── sample.png │ │ │ │ ├── Vazir.woff2 │ │ │ │ ├── Vazir-Black.eot │ │ │ │ ├── Vazir-Black.ttf │ │ │ │ ├── Vazir-Bold.eot │ │ │ │ ├── Vazir-Bold.ttf │ │ │ │ ├── Vazir-Bold.woff │ │ │ │ ├── Vazir-Light.eot │ │ │ │ ├── Vazir-Light.ttf │ │ │ │ ├── Vazir-Thin.eot │ │ │ │ ├── Vazir-Thin.ttf │ │ │ │ ├── Vazir-Thin.woff │ │ │ │ ├── Vazir-Black.woff │ │ │ │ ├── Vazir-Black.woff2 │ │ │ │ ├── Vazir-Bold.woff2 │ │ │ │ ├── Vazir-Light.woff │ │ │ │ ├── Vazir-Light.woff2 │ │ │ │ ├── Vazir-Medium.eot │ │ │ │ ├── Vazir-Medium.ttf │ │ │ │ ├── Vazir-Medium.woff │ │ │ │ ├── Vazir-Thin.woff2 │ │ │ │ ├── Vazir-Medium.woff2 │ │ │ │ ├── Farsi-Digits │ │ │ │ │ ├── Vazir-FD.eot │ │ │ │ │ ├── Vazir-FD.ttf │ │ │ │ │ ├── Vazir-FD.woff │ │ │ │ │ ├── Vazir-FD.woff2 │ │ │ │ │ ├── Vazir-Bold-FD.eot │ │ │ │ │ ├── Vazir-Bold-FD.ttf │ │ │ │ │ ├── Vazir-Thin-FD.eot │ │ │ │ │ ├── Vazir-Thin-FD.ttf │ │ │ │ │ ├── Vazir-Black-FD.eot │ │ │ │ │ ├── Vazir-Black-FD.ttf │ │ │ │ │ ├── Vazir-Black-FD.woff │ │ │ │ │ ├── Vazir-Bold-FD.woff │ │ │ │ │ ├── Vazir-Bold-FD.woff2 │ │ │ │ │ ├── Vazir-Light-FD.eot │ │ │ │ │ ├── Vazir-Light-FD.ttf │ │ │ │ │ ├── Vazir-Light-FD.woff │ │ │ │ │ ├── Vazir-Medium-FD.eot │ │ │ │ │ ├── Vazir-Medium-FD.ttf │ │ │ │ │ ├── Vazir-Thin-FD.woff │ │ │ │ │ ├── Vazir-Thin-FD.woff2 │ │ │ │ │ ├── Vazir-Black-FD.woff2 │ │ │ │ │ ├── Vazir-Light-FD.woff2 │ │ │ │ │ ├── Vazir-Medium-FD.woff │ │ │ │ │ └── Vazir-Medium-FD.woff2 │ │ │ │ ├── Without-Latin │ │ │ │ │ ├── Vazir-WOL.eot │ │ │ │ │ ├── Vazir-WOL.ttf │ │ │ │ │ ├── Vazir-WOL.woff │ │ │ │ │ ├── Vazir-WOL.woff2 │ │ │ │ │ ├── Vazir-Bold-WOL.eot │ │ │ │ │ ├── Vazir-Bold-WOL.ttf │ │ │ │ │ ├── Vazir-Thin-WOL.eot │ │ │ │ │ ├── Vazir-Thin-WOL.ttf │ │ │ │ │ ├── Vazir-Black-WOL.eot │ │ │ │ │ ├── Vazir-Black-WOL.ttf │ │ │ │ │ ├── Vazir-Black-WOL.woff │ │ │ │ │ ├── Vazir-Black-WOL.woff2 │ │ │ │ │ ├── Vazir-Bold-WOL.woff │ │ │ │ │ ├── Vazir-Bold-WOL.woff2 │ │ │ │ │ ├── Vazir-Light-WOL.eot │ │ │ │ │ ├── Vazir-Light-WOL.ttf │ │ │ │ │ ├── Vazir-Light-WOL.woff │ │ │ │ │ ├── Vazir-Light-WOL.woff2 │ │ │ │ │ ├── Vazir-Medium-WOL.eot │ │ │ │ │ ├── Vazir-Medium-WOL.ttf │ │ │ │ │ ├── Vazir-Medium-WOL.woff │ │ │ │ │ ├── Vazir-Thin-WOL.woff │ │ │ │ │ ├── Vazir-Thin-WOL.woff2 │ │ │ │ │ └── Vazir-Medium-WOL.woff2 │ │ │ │ └── Farsi-Digits-Without-Latin │ │ │ │ │ ├── Vazir-FD-WOL.eot │ │ │ │ │ ├── Vazir-FD-WOL.ttf │ │ │ │ │ ├── Vazir-FD-WOL.woff │ │ │ │ │ ├── Vazir-FD-WOL.woff2 │ │ │ │ │ ├── Vazir-Black-FD-WOL.eot │ │ │ │ │ ├── Vazir-Black-FD-WOL.ttf │ │ │ │ │ ├── Vazir-Black-FD-WOL.woff │ │ │ │ │ ├── Vazir-Bold-FD-WOL.eot │ │ │ │ │ ├── Vazir-Bold-FD-WOL.ttf │ │ │ │ │ ├── Vazir-Bold-FD-WOL.woff │ │ │ │ │ ├── Vazir-Bold-FD-WOL.woff2 │ │ │ │ │ ├── Vazir-Light-FD-WOL.eot │ │ │ │ │ ├── Vazir-Light-FD-WOL.ttf │ │ │ │ │ ├── Vazir-Light-FD-WOL.woff │ │ │ │ │ ├── Vazir-Medium-FD-WOL.eot │ │ │ │ │ ├── Vazir-Medium-FD-WOL.ttf │ │ │ │ │ ├── Vazir-Thin-FD-WOL.eot │ │ │ │ │ ├── Vazir-Thin-FD-WOL.ttf │ │ │ │ │ ├── Vazir-Thin-FD-WOL.woff │ │ │ │ │ ├── Vazir-Thin-FD-WOL.woff2 │ │ │ │ │ ├── Vazir-Black-FD-WOL.woff2 │ │ │ │ │ ├── Vazir-Light-FD-WOL.woff2 │ │ │ │ │ ├── Vazir-Medium-FD-WOL.woff │ │ │ │ │ └── Vazir-Medium-FD-WOL.woff2 │ │ │ ├── nunito-v9-latin-600.eot │ │ │ ├── nunito-v9-latin-600.ttf │ │ │ ├── nunito-v9-latin-700.eot │ │ │ ├── nunito-v9-latin-700.ttf │ │ │ ├── nunito-v9-latin-800.eot │ │ │ ├── nunito-v9-latin-800.ttf │ │ │ ├── nunito-v9-latin-600.woff │ │ │ ├── nunito-v9-latin-600.woff2 │ │ │ ├── nunito-v9-latin-700.woff │ │ │ ├── nunito-v9-latin-700.woff2 │ │ │ ├── nunito-v9-latin-800.woff │ │ │ ├── nunito-v9-latin-800.woff2 │ │ │ ├── nunito-v9-latin-regular.eot │ │ │ ├── nunito-v9-latin-regular.ttf │ │ │ ├── nunito-v9-latin-regular.woff │ │ │ └── nunito-v9-latin-regular.woff2 │ │ └── css │ │ │ ├── custom.css.map │ │ │ ├── custom.css │ │ │ └── skins │ │ │ └── reverse.css.map │ ├── src │ │ ├── scss │ │ │ ├── override │ │ │ │ ├── _jumbotron.scss │ │ │ │ ├── _progressbar.scss │ │ │ │ ├── _tooltip.scss │ │ │ │ ├── _carousel.scss │ │ │ │ ├── _breadcrumb.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _tab.scss │ │ │ │ ├── _accordion.scss │ │ │ │ ├── _pagination.scss │ │ │ │ ├── _modal.scss │ │ │ │ ├── _popover.scss │ │ │ │ ├── _nav.scss │ │ │ │ ├── _table.scss │ │ │ │ ├── _alert.scss │ │ │ │ ├── _list.scss │ │ │ │ ├── _media.scss │ │ │ │ └── _badge.scss │ │ │ ├── components │ │ │ │ ├── _timepicker.scss │ │ │ │ ├── _customtab.scss │ │ │ │ ├── _chocolat.scss │ │ │ │ ├── _flagicon.scss │ │ │ │ ├── _sparkline.scss │ │ │ │ ├── _owlcarousel.scss │ │ │ │ ├── _jqvmap.scss │ │ │ │ ├── _avataritem.scss │ │ │ │ ├── _summary.scss │ │ │ │ ├── _sweetalert.scss │ │ │ │ ├── _tagsinput.scss │ │ │ │ ├── _summernote.scss │ │ │ │ ├── _daterangepicker.scss │ │ │ │ ├── _empty_state.scss │ │ │ │ ├── _product.scss │ │ │ │ ├── _dropzone.scss │ │ │ │ ├── _hero.scss │ │ │ │ ├── _weathericon.scss │ │ │ │ ├── _statistics.scss │ │ │ │ ├── _ionicons.scss │ │ │ │ ├── _pwstrength.scss │ │ │ │ ├── _invoice.scss │ │ │ │ ├── _author.scss │ │ │ │ ├── _selectric.scss │ │ │ │ ├── _slider.scss │ │ │ │ ├── _toast.scss │ │ │ │ ├── _imagepreview.scss │ │ │ │ ├── _activities.scss │ │ │ │ ├── _weather.scss │ │ │ │ ├── _gallery.scss │ │ │ │ ├── _useritem.scss │ │ │ │ └── _fullcalendar.scss │ │ │ ├── theme │ │ │ │ ├── _animation.scss │ │ │ │ └── _page.scss │ │ │ ├── _functions.scss │ │ │ └── _variable.scss │ │ ├── ai │ │ │ ├── placeholder.ai │ │ │ ├── placeholder-avatar.ai │ │ │ └── placeholder-product.ai │ │ └── pages │ │ │ ├── blank.html │ │ │ ├── errors-503.html │ │ │ ├── errors-500.html │ │ │ ├── errors-403.html │ │ │ └── errors-404.html │ ├── .github │ │ ├── FUNDING.yml │ │ └── workflows │ │ │ ├── main.yml │ │ │ ├── stale.yml │ │ │ └── authors.yml │ ├── .gitignore │ ├── .editorconfig │ ├── CONTRIBUTING.md │ ├── LICENSE │ └── AUTHORS ├── format │ └── format.xlsx └── .htaccess ├── resources ├── css │ └── app.css └── js │ ├── app.js │ └── bootstrap.js ├── database ├── .gitignore ├── seeders │ ├── DatabaseSeeder.php │ ├── RolesSeeder.php │ └── UsersSeeder.php ├── migrations │ ├── 2024_03_15_025529_create_roles_table.php │ ├── 2024_04_02_032949_create_phonebooks_table.php │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ ├── 2024_03_27_073906_create_autoreply_table.php │ ├── 2024_04_19_084747_create_blast_pesan_table.php │ ├── 2024_03_15_025733_add_role_id_to_users.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ └── 2019_12_14_000001_create_personal_access_tokens_table.php └── factories │ └── UserFactory.php ├── bootstrap └── cache │ └── .gitignore ├── storage ├── logs │ └── .gitignore ├── app │ ├── public │ │ └── .gitignore │ └── .gitignore └── framework │ ├── testing │ └── .gitignore │ ├── views │ └── .gitignore │ ├── cache │ ├── data │ │ └── .gitignore │ └── .gitignore │ ├── sessions │ └── .gitignore │ └── .gitignore ├── server ├── .gitignore ├── views │ ├── error.ejs │ ├── index.ejs │ └── scan.ejs ├── .env.example ├── utils │ ├── error.js │ ├── response.js │ └── process-number.js ├── app │ ├── routers │ │ ├── index.js │ │ ├── message_router.js │ │ └── session_router.js │ └── middlewares │ │ └── error_middleware.js ├── ecosystem.config.js ├── package.json └── LICENSE ├── tests ├── TestCase.php ├── Unit │ └── ExampleTest.php ├── Feature │ └── ExampleTest.php └── CreatesApplication.php ├── .gitattributes ├── app ├── Http │ ├── Controllers │ │ ├── Interfaces │ │ │ ├── PesanSatuanControllerInterfaces.php │ │ │ ├── AuthControllerInterfaces.php │ │ │ ├── RiwayatPesanControllerInterfaces.php │ │ │ ├── ControllerInterfaces.php │ │ │ ├── DevicesControllerInterfaces.php │ │ │ ├── BlastPesanControllerInterfaces.php │ │ │ ├── RolesControllerInterfaces.php │ │ │ ├── AutoReplyControllerInterfaces.php │ │ │ ├── PhonebookControllerInterfaces.php │ │ │ └── UserControllerInterfaces.php │ │ ├── Controller.php │ │ ├── PesanSatuanController.php │ │ ├── DashboardController.php │ │ ├── RiwayatPesanController.php │ │ └── AuthControllerController.php │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── PreventRequestsDuringMaintenance.php │ │ ├── TrimStrings.php │ │ ├── TrustHosts.php │ │ ├── Authenticate.php │ │ ├── MenuMiddleware.php │ │ ├── ValidateSignature.php │ │ ├── TrustProxies.php │ │ └── RedirectIfAuthenticated.php │ └── Requests │ │ ├── RolesRequest.php │ │ ├── PhonebookRequest.php │ │ ├── AutoReplyRequest.php │ │ ├── UserRequest.php │ │ └── LoginRequest.php ├── Models │ ├── Role.php │ ├── Phonebook.php │ ├── AutoReply.php │ ├── BlastPesan.php │ └── User.php ├── Services │ ├── UserServices │ │ ├── UserServicesInterfaces.php │ │ └── UserServices.php │ ├── BlastPesanServices │ │ └── BlastPesanServicesInterfaces.php │ ├── RoleServices │ │ ├── RolesServicesInterfaces.php │ │ └── RolesServices.php │ ├── AutoReplyServices │ │ ├── AutoReplyServicesInterfaces.php │ │ └── AutoReplyServices.php │ └── PhonebookService │ │ ├── PhonebooksServicesInterfaces.php │ │ └── PhonebookServices.php ├── Providers │ ├── BroadcastServiceProvider.php │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── Imports │ └── BlastPesanImport.php ├── Console │ └── Kernel.php └── Exceptions │ └── Handler.php ├── package.json ├── .gitignore ├── vite.config.js ├── .editorconfig ├── routes ├── channels.php ├── api.php └── console.php ├── config ├── cors.php ├── services.php └── view.php ├── phpunit.xml ├── .env.example └── README.md /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/css/app.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite* 2 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /resources/js/app.js: -------------------------------------------------------------------------------- 1 | import './bootstrap'; 2 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | wa_credentials/ -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/auth-register.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $(".pwstrength").pwstrength(); -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | .jumbotron { 2 | background-color: color(light); 3 | } -------------------------------------------------------------------------------- /public/stisla/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: nauvalazhar 4 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_progressbar.scss: -------------------------------------------------------------------------------- 1 | .progress-bar { 2 | background-color: color(primary); 3 | } -------------------------------------------------------------------------------- /public/format/format.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/format/format.xlsx -------------------------------------------------------------------------------- /server/views/error.ejs: -------------------------------------------------------------------------------- 1 |

<%= message %>

2 |

<%= error.status %>

3 |
<%= error.stack %>
4 | -------------------------------------------------------------------------------- /public/stisla/assets/img/p-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/p-50.png -------------------------------------------------------------------------------- /public/stisla/assets/img/p-250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/p-250.png -------------------------------------------------------------------------------- /public/stisla/src/ai/placeholder.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/src/ai/placeholder.ai -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_timepicker.scss: -------------------------------------------------------------------------------- 1 | .bootstrap-timepicker-widget table td a span { 2 | margin-left: 0 !important; 3 | } -------------------------------------------------------------------------------- /public/stisla/assets/img/whatsapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/whatsapp.png -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_customtab.scss: -------------------------------------------------------------------------------- 1 | [data-tab-group] { 2 | display: none; 3 | &.active { 4 | display: block; 5 | } 6 | } -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img01.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img02.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img03.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img04.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img05.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img06.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img07.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img08.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img08.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img09.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img10.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img11.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img12.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img13.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img14.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img15.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img16.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/news/img17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/news/img17.jpg -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_tooltip.scss: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | font-size: 12px; 3 | } 4 | 5 | .tooltip-inner { 6 | padding: 7px 13px; 7 | } 8 | -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/sample.png -------------------------------------------------------------------------------- /public/stisla/assets/img/example-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/example-image.jpg -------------------------------------------------------------------------------- /public/stisla/src/ai/placeholder-avatar.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/src/ai/placeholder-avatar.ai -------------------------------------------------------------------------------- /public/stisla/src/ai/placeholder-product.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/src/ai/placeholder-product.ai -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/img/avatar/avatar-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/avatar/avatar-1.png -------------------------------------------------------------------------------- /public/stisla/assets/img/avatar/avatar-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/avatar/avatar-2.png -------------------------------------------------------------------------------- /public/stisla/assets/img/avatar/avatar-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/avatar/avatar-3.png -------------------------------------------------------------------------------- /public/stisla/assets/img/avatar/avatar-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/avatar/avatar-4.png -------------------------------------------------------------------------------- /public/stisla/assets/img/avatar/avatar-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/avatar/avatar-5.png -------------------------------------------------------------------------------- /public/stisla/assets/img/example-image-50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/example-image-50.jpg -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_chocolat.scss: -------------------------------------------------------------------------------- 1 | .chocolat-wrapper { 2 | z-index: 890; 3 | } 4 | 5 | .chocolat-overlay { 6 | background-color: #000; 7 | } -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Black.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Black.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Black.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Bold.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Bold.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Bold.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Light.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Light.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Thin.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Thin.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Thin.woff -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-1.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-2.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-3.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-4.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-5.jpg -------------------------------------------------------------------------------- /public/stisla/assets/img/unsplash/login-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/unsplash/login-bg.jpg -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-600.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-600.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-600.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-600.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-700.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-700.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-800.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-800.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-800.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-800.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Black.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Black.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Bold.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Light.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Light.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Medium.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Medium.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Medium.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Thin.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-1-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-1-50.png -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-2-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-2-50.png -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-3-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-3-50.png -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-4-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-4-50.png -------------------------------------------------------------------------------- /public/stisla/assets/img/products/product-5-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/products/product-5-50.png -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-600.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-600.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-600.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-700.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-700.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-800.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-800.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-800.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-800.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Vazir-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Vazir-Medium.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-regular.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-regular.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-regular.woff -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_carousel.scss: -------------------------------------------------------------------------------- 1 | .carousel { 2 | .carousel-caption { 3 | p { 4 | font-size: 13px; 5 | line-height: 24px; 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /public/stisla/assets/fonts/nunito-v9-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/nunito-v9-latin-regular.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.ttf -------------------------------------------------------------------------------- /public/stisla/assets/js/page/gmaps-simple.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var simple_map = new GMaps({ 4 | div: '#simple-map', 5 | lat: -6.5637928, 6 | lng: 106.7535061 7 | }) 8 | -------------------------------------------------------------------------------- /public/stisla/assets/css/custom.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","src":["../../src/scss/custom.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"custom.css"} 2 | -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-FD.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.ttf -------------------------------------------------------------------------------- /server/.env.example: -------------------------------------------------------------------------------- 1 | PORT=5001 2 | KEY=fgddesc # For Securing Some Data 3 | DB_HOST=127.0.0.1 4 | DB_PORT=3306 5 | DB_USER=root 6 | DB_PASSWORD= 7 | DB_DATABASE='laravel_wa_gateway' 8 | -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-WOL.woff2 -------------------------------------------------------------------------------- /server/utils/error.js: -------------------------------------------------------------------------------- 1 | module.exports = class ValidationError extends Error { 2 | constructor(message, code) { 3 | super(message); 4 | this.code = code; 5 | } 6 | code; 7 | }; 8 | -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | compiled.php 2 | config.php 3 | down 4 | events.scanned.php 5 | maintenance.php 6 | routes.php 7 | routes.scanned.php 8 | schedule-* 9 | services.json 10 | -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/img/unsplash/andre-benz-1214056-unsplash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/unsplash/andre-benz-1214056-unsplash.jpg -------------------------------------------------------------------------------- /public/stisla/.gitignore: -------------------------------------------------------------------------------- 1 | # Folders to ignore 2 | /node_modules/ 3 | /dist/node_modules/ 4 | /pages 5 | 6 | # OS or Editor folders 7 | ._* 8 | .cache 9 | .DS_Store 10 | .idea 11 | .vscode 12 | -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/img/unsplash/eberhard-grossgasteiger-1207565-unsplash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/img/unsplash/eberhard-grossgasteiger-1207565-unsplash.jpg -------------------------------------------------------------------------------- /public/stisla/assets/js/custom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * You can write your JS code here, DO NOT touch the default style file 4 | * because it will make it harder for you to update. 5 | * 6 | */ 7 | 8 | "use strict"; 9 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_flagicon.scss: -------------------------------------------------------------------------------- 1 | .flag-icon { 2 | width: 50px; 3 | height: 35px; 4 | display: inline-block; 5 | background-size: 100%; 6 | &.flag-icon-shadow { 7 | @include shadow; 8 | } 9 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | background-color: #f9f9f9; 3 | .breadcrumb-item { 4 | line-height: 1; 5 | i { 6 | margin-right: 5px; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff2 -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.eot -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.ttf -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff -------------------------------------------------------------------------------- /public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rahmadfirman59/whatsapp-gateway/HEAD/public/stisla/assets/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff2 -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | ',''] 7 | }); 8 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_grid.scss: -------------------------------------------------------------------------------- 1 | .sm-gutters { 2 | margin-left: -5px; 3 | margin-right: -5px; 4 | > { 5 | .col, [class*=col-] { 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /public/stisla/assets/css/custom.css: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * You can write your CSS code here, DO NOT touch the default JavaScript file 4 | * because it will make it harder for you to update. 5 | * 6 | */ 7 | 8 | /*# sourceMappingURL=custom.css.map */ 9 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.blade.php diff=html 4 | *.css diff=css 5 | *.html diff=html 6 | *.md diff=markdown 7 | *.php diff=php 8 | 9 | /.github export-ignore 10 | CHANGELOG.md export-ignore 11 | .styleci.yml export-ignore 12 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/PesanSatuanControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | '+ $(this).attr('class') +''); 5 | }); 6 | $("#icons li").click(function() { 7 | $(".icon-name").fadeOut(); 8 | $(this).find('.icon-name').fadeIn(); 9 | }); 10 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import laravel from 'laravel-vite-plugin'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | laravel({ 7 | input: ['resources/css/app.css', 'resources/js/app.js'], 8 | refresh: true, 9 | }), 10 | ], 11 | }); 12 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_owlcarousel.scss: -------------------------------------------------------------------------------- 1 | .owl-theme { 2 | .owl-item { 3 | padding: 10px 0; 4 | } 5 | .owl-dots { 6 | margin-top: 20px !important; 7 | .owl-dot { 8 | &.active { 9 | span { 10 | background-color: color(primary); 11 | } 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /server/app/routers/index.js: -------------------------------------------------------------------------------- 1 | const { Router } = require("express"); 2 | const MessageRouter = require("./message_router"); 3 | const SessionRouter = require("./session_router"); 4 | 5 | const MainRouter = Router(); 6 | 7 | MainRouter.use(SessionRouter); 8 | MainRouter.use(MessageRouter); 9 | 10 | module.exports = MainRouter; 11 | -------------------------------------------------------------------------------- /app/Models/Role.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [docker-compose.yml] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /app/Models/Phonebook.php: -------------------------------------------------------------------------------- 1 | ({ data: data }); 2 | exports.responseSuccessWithMessage = ( 3 | message = "Yeyy... Request Send With Successfully" 4 | ) => ({ 5 | message: message, 6 | }); 7 | exports.responseErrorWithMessage = ( 8 | message = "Upsss... Something went wrong on server" 9 | ) => ({ 10 | message: message, 11 | }); 12 | -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /public/stisla/src/pages/blank.html: -------------------------------------------------------------------------------- 1 | {% set title = 'Blank Page' %} 2 | {% set page = 'blank.html' %} 3 | {% extends 'layouts/master.html' %} 4 | 5 | {% block content %} 6 |
7 |
8 |

Blank Page

9 |
10 | 11 |
12 |
13 |
14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/RiwayatPesanControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /public/stisla/src/scss/_functions.scss: -------------------------------------------------------------------------------- 1 | @function color($key) { 2 | @return map-get($colors, $key); 3 | } 4 | 5 | @function color_lighten($key, $amount) { 6 | @return lighten(map-get($colors, $key), $amount); 7 | } 8 | 9 | @function color_darken($key, $amount) { 10 | @return darken(map-get($colors, $key), $amount); 11 | } 12 | 13 | @function to_opacity($color, $opacity) { 14 | @return rgba(color($color), $opacity); 15 | } 16 | -------------------------------------------------------------------------------- /server/views/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= 'Whatsapp Gateway' %> 5 | 6 | 7 | 8 |

SCAN QR TO CONNECT

9 | QR NOT SHOWING 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /server/app/routers/session_router.js: -------------------------------------------------------------------------------- 1 | const { Router } = require("express"); 2 | const { 3 | createSession, 4 | deleteSession, 5 | sessions, 6 | } = require("../controllers/session_controller"); 7 | 8 | const SessionRouter = Router(); 9 | 10 | SessionRouter.all("/start-session", createSession); 11 | SessionRouter.all("/delete-session", deleteSession); 12 | SessionRouter.all("/sessions", sessions); 13 | 14 | module.exports = SessionRouter; 15 | -------------------------------------------------------------------------------- /public/stisla/assets/css/skins/reverse.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","src":["../../../src/scss/skins/reverse.scss"],"names":[],"mappings":"AAMM;EACE;;AAKI;EACE;EACA;EACA;;AAMA;AAAA;EACE;EACA;;AACA;AAAA;EACI;EACA;;AAIJ;AAAA;EACE;EACA;;AAShB;EACE;;AAEE;EACE;;AAKA;EACE;;AACA;EACE;;AAIF;AAAA;AAAA;AAAA;EAIE;;AAGJ;EACE;;AAIE;EACE;;AACA;EACE;EACA;;AAIF;EACE;;AASd;AAAA;EAEE;;AACA;AAAA;AAAA;AAAA;EAEE;;AACA;AAAA;AAAA;AAAA;EACE;;AAKF;AAAA;AAAA;AAAA;EAEE","file":"reverse.css"} 2 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 16 | 17 | $response->assertStatus(200); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_avataritem.scss: -------------------------------------------------------------------------------- 1 | .avatar-item { 2 | position: relative; 3 | margin-bottom: 20px; 4 | img { 5 | border-radius: 50%; 6 | } 7 | .avatar-badge { 8 | position: absolute; 9 | bottom: -5px; 10 | right: 0; 11 | background-color: #fff; 12 | color: #000; 13 | @include shadow; 14 | border-radius: 50%; 15 | text-align: center; 16 | line-height: 25px; 17 | width: 25px; 18 | height: 25px; 19 | } 20 | } -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/ControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | 'current_password', 16 | 'password', 17 | 'password_confirmation', 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /app/Services/RoleServices/RolesServicesInterfaces.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 18 | 19 | return $app; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustHosts.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function hosts(): array 15 | { 16 | return [ 17 | $this->allSubdomainsOfApplicationUrl(), 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | expectsJson() ? null : route('login'); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/BlastPesanControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | Multinity

Jl. HM. Syarifudin, Bubulak, Bogor Bar.,
Kota Bogor, Jawa Barat 16115

Website

' 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /database/seeders/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call(RolesSeeder::class); 18 | $this->call(UsersSeeder::class); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/MenuMiddleware.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 'fbclid', 16 | // 'utm_campaign', 17 | // 'utm_content', 18 | // 'utm_medium', 19 | // 'utm_source', 20 | // 'utm_term', 21 | ]; 22 | } 23 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/features-post-create.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("select").selectric(); 4 | $.uploadPreview({ 5 | input_field: "#image-upload", // Default: .image-upload 6 | preview_box: "#image-preview", // Default: .image-preview 7 | label_field: "#image-label", // Default: .image-label 8 | label_default: "Choose File", // Default: Choose File 9 | label_selected: "Change File", // Default: Change File 10 | no_label: false, // Default: false 11 | success_callback: null // Default: null 12 | }); 13 | $(".inputtags").tagsinput('items'); 14 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_daterangepicker.scss: -------------------------------------------------------------------------------- 1 | .daterangepicker { 2 | &.dropdown-menu { 3 | width: auto; 4 | } 5 | .input-mini { 6 | padding-left: 28px !important; 7 | } 8 | .calendar { 9 | th, td { 10 | padding: 5px; 11 | font-size: 12px; 12 | } 13 | } 14 | } 15 | 16 | .ranges { 17 | li { 18 | color: color(primary); 19 | &:hover, 20 | &.active { 21 | background-color: color(primary); 22 | } 23 | } 24 | } 25 | 26 | .daterangepicker td.active, .daterangepicker td.active:hover { 27 | background-color: color(primary); 28 | } -------------------------------------------------------------------------------- /database/seeders/RolesSeeder.php: -------------------------------------------------------------------------------- 1 | "Superadmin", 18 | "menu" => json_encode(["roles","users","dashboards","devices","autoreplys","riwayat-pesan","blast-pesan","pesan-satuan"]) 19 | ]); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /server/utils/process-number.js: -------------------------------------------------------------------------------- 1 | exports.processNumber = (number) => { 2 | let finalNumber = number; 3 | if (!number.includes("@s.whatsapp.net")) number = number + "@s.whatsapp.net"; 4 | if (number[0] == "6" && number[1] == "2") return number; 5 | if (number[0] == "+" && number[1] == "6" && number[2] == "2") 6 | return number.substring(1); 7 | if (number[0] == "0" && number[1] == "8") { 8 | let deleted = number.substring(1); 9 | finalNumber = "62" + deleted; 10 | return finalNumber; 11 | } 12 | if (number[0] == "8") return "62" + number; 13 | 14 | return number; 15 | }; 16 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_empty_state.scss: -------------------------------------------------------------------------------- 1 | .empty-state { 2 | text-align: center; 3 | display: flex; 4 | align-items: center; 5 | justify-content: center; 6 | flex-direction: column; 7 | padding: 40px; 8 | .empty-state-icon { 9 | position: relative; 10 | background-color: color(primary); 11 | width: 80px; 12 | height: 80px; 13 | line-height: 100px; 14 | border-radius: 5px; 15 | i { 16 | font-size: 40px; 17 | color: #fff; 18 | position: relative; 19 | z-index: 1; 20 | } 21 | } 22 | h2 { 23 | font-size: 20px; 24 | margin-top: 30px; 25 | } 26 | p { 27 | font-size: 16px; 28 | } 29 | } -------------------------------------------------------------------------------- /database/seeders/UsersSeeder.php: -------------------------------------------------------------------------------- 1 | "Superadmin", 19 | "email" => "superadmin@test.com", 20 | "password" => Hash::make("admin123"), 21 | "role_id" => 1 22 | ]); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 18 | }); 19 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 18 | return $request->user(); 19 | }); 20 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_product.scss: -------------------------------------------------------------------------------- 1 | .product-item { 2 | text-align: center; 3 | .product-image { 4 | display: inline-block; 5 | overflow: hidden; 6 | width: 80px; 7 | height: 80px; 8 | border-radius: 3px; 9 | margin-bottom: 10px; 10 | } 11 | .product-name { 12 | color: color(fontdark); 13 | font-weight: 700; 14 | margin-bottom: 3px; 15 | } 16 | .product-review { 17 | color: color(warning); 18 | margin-bottom: 3px; 19 | } 20 | .product-cta { 21 | margin-top: 5px; 22 | a { 23 | margin-top: 10px; 24 | padding-left: 15px; 25 | padding-right: 15px; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_dropzone.scss: -------------------------------------------------------------------------------- 1 | .dropzone { 2 | border: 2px dashed color(primary); 3 | min-height: 240px; 4 | text-align: center; 5 | .dz-message { 6 | font-size: 24px; 7 | color: color(fontdark); 8 | margin: 3.4em; 9 | } 10 | .dz-preview { 11 | .dz-details { 12 | padding: 2.2em 1em; 13 | } 14 | .dz-image { 15 | border-radius: 3px; 16 | } 17 | } 18 | } 19 | 20 | @include media-breakpoint-down(xs) { 21 | .dropzone .dz-message { 22 | margin: 2em; 23 | } 24 | } 25 | 26 | @include media-breakpoint-only(sm) { 27 | .dropzone { 28 | .dz-message { 29 | margin: 2.75em; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /server/app/middlewares/error_middleware.js: -------------------------------------------------------------------------------- 1 | const { WhatsappError } = require("wa-multi-session"); 2 | const ValidationError = require("../../utils/error"); 3 | const { responseErrorWithMessage } = require("../../utils/response"); 4 | 5 | module.exports = function errorHandlerMiddleware(error, req, res, next) { 6 | if (error instanceof ValidationError) { 7 | return res.status(400).json(responseErrorWithMessage(error.message)); 8 | } 9 | if (error instanceof WhatsappError) { 10 | return res.status(400).json(responseErrorWithMessage(error.message)); 11 | } 12 | console.log(error); 13 | return res.status(400).json(responseErrorWithMessage()); 14 | }; 15 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/RolesControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | $row[0], 21 | 'pesan' => $row[1], 22 | "tanggal" => date("Y-m-d") 23 | ]); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_hero.scss: -------------------------------------------------------------------------------- 1 | .hero { 2 | border-radius: 3px; 3 | padding: 55px; 4 | display: flex; 5 | justify-content: center; 6 | flex-direction: column; 7 | position: relative; 8 | &.hero-bg-image { 9 | background-position: center; 10 | background-size: cover; 11 | &:before { 12 | @include overlay(0, rgba(0,0,0,.5)); 13 | border-radius: 3px; 14 | } 15 | &.hero-bg-parallax { 16 | background-attachment: fixed; 17 | } 18 | } 19 | .hero-inner { 20 | position: relative; 21 | z-index: 1; 22 | } 23 | h2 { 24 | font-size: 24px; 25 | } 26 | p { 27 | margin-bottom: 0; 28 | font-size: 16px; 29 | letter-spacing: .3px; 30 | } 31 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_tab.scss: -------------------------------------------------------------------------------- 1 | .tab-content { 2 | &.no-padding { 3 | > .tab-pane { 4 | padding: 0; 5 | } 6 | } 7 | > .tab-pane { 8 | line-height: 28px; 9 | } 10 | } 11 | 12 | ul.nav-tabs { 13 | li.nav-item { 14 | a.nav-link { 15 | i { 16 | color: color(primary); 17 | } 18 | span { 19 | display: block; 20 | line-height: 60%; 21 | i { 22 | font-size: 16px!important; 23 | } 24 | } 25 | } 26 | } 27 | } 28 | 29 | ul.nav-tabs { 30 | li.nav-item { 31 | a.nav-link.active { 32 | i { 33 | color: color(dark); 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 19 | })->purpose('Display an inspiring quote'); 20 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Send Requests To Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire')->hourly(); 16 | } 17 | 18 | /** 19 | * Register the commands for the application. 20 | */ 21 | protected function commands(): void 22 | { 23 | $this->load(__DIR__.'/Commands'); 24 | 25 | require base_path('routes/console.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/AutoReplyControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | |string> 21 | */ 22 | public function rules(): array 23 | { 24 | return [ 25 | "name"=>'required' 26 | ]; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Http/Controllers/Interfaces/UserControllerInterfaces.php: -------------------------------------------------------------------------------- 1 | 14 | */ 15 | protected $policies = [ 16 | // 'App\Models\Model' => 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any authentication / authorization services. 21 | */ 22 | public function boot(): void 23 | { 24 | $this->registerPolicies(); 25 | 26 | // 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_weathericon.scss: -------------------------------------------------------------------------------- 1 | .icon-wrap { 2 | display: inline-block; 3 | padding-left: 15px; 4 | padding-right: 15px; 5 | margin-bottom: 25px; 6 | width: calc(100% / 4); 7 | .icon { 8 | float: left; 9 | width: 40px; 10 | font-family: 'weathericons'; 11 | font-size: 20px; 12 | } 13 | .icon-name {} 14 | .icon_unicode { 15 | width: 100%; 16 | padding-left: 45px; 17 | color: color(fontdark); 18 | } 19 | } 20 | 21 | .new-icons ul { 22 | padding: 0; 23 | margin: 0; 24 | list-style: none; 25 | li { 26 | padding: 10px; 27 | } 28 | } 29 | 30 | .icon-wrap .icon, .new-icons ul li .wi { 31 | font-size: 24px; 32 | margin-right: 15px; 33 | width: 30px; 34 | text-align: center; 35 | } -------------------------------------------------------------------------------- /app/Http/Requests/PhonebookRequest.php: -------------------------------------------------------------------------------- 1 | |string> 21 | */ 22 | public function rules(): array 23 | { 24 | return [ 25 | 'name' => 'required', 26 | 'phone' => 'required' 27 | ]; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /database/migrations/2024_03_15_025529_create_roles_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('name'); 17 | $table->text('menu'); 18 | $table->timestamps(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | */ 25 | public function down(): void 26 | { 27 | Schema::dropIfExists('roles'); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_statistics.scss: -------------------------------------------------------------------------------- 1 | .statistic-details { 2 | display: flex; 3 | flex-wrap: wrap; 4 | .statistic-details-item { 5 | flex: 1; 6 | padding: 17px 10px; 7 | text-align: center; 8 | .detail-chart { 9 | margin-bottom: 10px; 10 | padding: 0 20px; 11 | } 12 | .detail-name { 13 | font-size: 12px; 14 | margin-top: 5px; 15 | color: color(fontdark); 16 | letter-spacing: .3px; 17 | } 18 | .detail-value { 19 | font-size: 18px; 20 | font-weight: 700; 21 | } 22 | } 23 | } 24 | 25 | @include media-breakpoint-down(xs) { 26 | .statistic-details { 27 | flex-wrap: wrap; 28 | .statistic-details-item { 29 | flex: initial; 30 | width: 50%; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /server/views/scan.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Scan QR 8 | 13 | 14 | 15 |
16 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/utilities-contact.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // initialize map 4 | var map = new GMaps({ 5 | div: '#map', 6 | lat: -6.5637928, 7 | lng: 106.7535061, 8 | zoomControl: false, 9 | fullscreenControl: false, 10 | mapTypeControl: true, 11 | mapTypeControlOptions: { 12 | mapTypeIds: [] 13 | } 14 | }); 15 | // Added a overlay to the map 16 | map.drawOverlay({ 17 | lat: -6.5637928, 18 | lng: 106.7535061, 19 | content: '
Multinity

Jl. HM. Syarifudin, Bubulak, Bogor Bar.,
Kota Bogor, Jawa Barat 16115

Website

' 20 | }); 21 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_accordion.scss: -------------------------------------------------------------------------------- 1 | .accordion { 2 | display: inline-block; 3 | width: 100%; 4 | margin-bottom: 10px; 5 | .accordion-header, .accordion-body { 6 | padding: 10px 15px; 7 | } 8 | .accordion-header { 9 | background-color: #f9f9f9; 10 | border-radius: 3px; 11 | cursor: pointer; 12 | transition: all .5s; 13 | h4 { 14 | line-height: 1; 15 | margin: 0; 16 | font-size: 14px; 17 | font-weight: 700; 18 | } 19 | &:hover { 20 | background-color: #f2f2f2; 21 | } 22 | &[aria-expanded="true"] { 23 | @include shadow-lighten(primary); 24 | background-color: color(primary); 25 | color: #fff; 26 | } 27 | } 28 | .accordion-body { 29 | line-height: 24px; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2024_04_02_032949_create_phonebooks_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('name'); 17 | $table->string('phone'); 18 | $table->timestamps(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | */ 25 | public function down(): void 26 | { 27 | Schema::dropIfExists('phonebooks'); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_pagination.scss: -------------------------------------------------------------------------------- 1 | .page-item { 2 | .page-link { 3 | color: color(primary); 4 | border-radius: 3px; 5 | margin: 0 3px; 6 | } 7 | &.active .page-link { 8 | background-color: color(primary); 9 | border-color: color(primary); 10 | } 11 | &.disabled .page-link { 12 | border-color: transparent; 13 | background-color: color_lighten(primary, 31.7%); 14 | color: color(primary); 15 | opacity: .6; 16 | } 17 | } 18 | 19 | .page-link { 20 | border-color: transparent; 21 | background-color: color_lighten(primary, 31.7%); 22 | font-weight: 600; 23 | &:hover { 24 | background-color: color(primary); 25 | color: #fff; 26 | border-color: transparent; 27 | } 28 | &:focus { 29 | box-shadow: none; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustProxies.php: -------------------------------------------------------------------------------- 1 | |string|null 14 | */ 15 | protected $proxies; 16 | 17 | /** 18 | * The headers that should be used to detect proxies. 19 | * 20 | * @var int 21 | */ 22 | protected $headers = 23 | Request::HEADER_X_FORWARDED_FOR | 24 | Request::HEADER_X_FORWARDED_HOST | 25 | Request::HEADER_X_FORWARDED_PORT | 26 | Request::HEADER_X_FORWARDED_PROTO | 27 | Request::HEADER_X_FORWARDED_AWS_ELB; 28 | } 29 | -------------------------------------------------------------------------------- /app/Http/Controllers/DashboardController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 14 | $this->blastPesanService = $blastPesanServices; 15 | } 16 | 17 | public function dashboard() 18 | { 19 | $pesan = $this->blastPesanService->pesan_per_bulan(); 20 | $rasio = $this->blastPesanService->pesan_terikirim(); 21 | 22 | return view('dashboard') 23 | ->with('pesan',$pesan) 24 | ->with('rasio',$rasio); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Http/Requests/AutoReplyRequest.php: -------------------------------------------------------------------------------- 1 | |string> 21 | */ 22 | public function rules(): array 23 | { 24 | return [ 25 | 'keyword' => 'required', 26 | 'title' => 'required', 27 | 'response' => 'required' 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php: -------------------------------------------------------------------------------- 1 | string('email')->primary(); 16 | $table->string('token'); 17 | $table->timestamp('created_at')->nullable(); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | */ 24 | public function down(): void 25 | { 26 | Schema::dropIfExists('password_reset_tokens'); 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/features-setting-detail.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("#setting-form").submit(function() { 4 | let save_button = $(this).find('#save-btn'), 5 | output_status = $("#output-status"), 6 | card = $('#settings-card'); 7 | 8 | let card_progress = $.cardProgress(card, { 9 | spinner: false 10 | }); 11 | save_button.addClass('btn-progress'); 12 | output_status.html(''); 13 | 14 | // Do AJAX here 15 | // Here's fake AJAX 16 | setTimeout(function() { 17 | card_progress.dismiss(function() { 18 | $('html, body').animate({ 19 | scrollTop: 0 20 | }); 21 | 22 | output_status.prepend('
Setting saved Successfully.
') 23 | save_button.removeClass('btn-progress'); 24 | }); 25 | }, 3000); 26 | return false; 27 | }); -------------------------------------------------------------------------------- /database/migrations/2024_03_27_073906_create_autoreply_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('keyword'); 17 | $table->string('title'); 18 | $table->string('response'); 19 | $table->timestamps(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | */ 26 | public function down(): void 27 | { 28 | Schema::dropIfExists('autoreplys'); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /app/Http/Controllers/RiwayatPesanController.php: -------------------------------------------------------------------------------- 1 | blastPesanServices = $blastPesanServices; 15 | } 16 | 17 | public function index(Request $request) 18 | { 19 | $data = $this->blastPesanServices->search($request); 20 | 21 | return view('riwayat.index') 22 | ->with('data',$data); 23 | // TODO: Implement index() method. 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /public/stisla/src/scss/theme/_page.scss: -------------------------------------------------------------------------------- 1 | .page-error { 2 | height: 100%; 3 | width: 100%; 4 | padding-top: 60px; 5 | text-align: center; 6 | display: table; 7 | .page-inner { 8 | display: table-cell; 9 | width: 100%; 10 | vertical-align: middle; 11 | } 12 | h1 { 13 | font-size: 10em; 14 | font-weight: 700; 15 | } 16 | .page-description { 17 | font-size: 18px; 18 | font-weight: 400; 19 | color: color(fontdark); 20 | } 21 | .page-search { 22 | margin: 40px auto; 23 | max-width: 100%; 24 | width: 350px; 25 | .form-control { 26 | border-radius: 30px; 27 | } 28 | .btn { 29 | border-radius: 30px; 30 | margin-left: 10px; 31 | } 32 | } 33 | } 34 | 35 | @include media-breakpoint-down(xs) { 36 | .page-error { 37 | .page-search { 38 | width: 100%; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /database/migrations/2024_04_19_084747_create_blast_pesan_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('telepon')->nullable(); 17 | $table->text('pesan')->nullable(); 18 | $table->string('keterangan')->nullable(); 19 | $table->date("tanggal")->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | */ 26 | public function down(): void 27 | { 28 | Schema::dropIfExists('blast_pesan'); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_ionicons.scss: -------------------------------------------------------------------------------- 1 | .ionicons { 2 | padding: 0; 3 | margin: 0; 4 | display: flex; 5 | flex-wrap: wrap; 6 | li { 7 | width: calc(100% / 8); 8 | font-size: 40px; 9 | padding: 40px 20px; 10 | list-style: none; 11 | text-align: center; 12 | border-radius: 3px; 13 | position: relative; 14 | cursor: pointer; 15 | &:hover { 16 | opacity: .8; 17 | } 18 | .icon-name { 19 | position: absolute; 20 | top: 100%; 21 | left: 50%; 22 | width: 100%; 23 | -webkit-transform: translate(-50%, -100%); 24 | transform: translate(-50%, -100%); 25 | font-family: 'Segoe UI'; 26 | font-size: 12px; 27 | margin-top: 10px; 28 | line-height: 22px; 29 | background-color: #f9f9f9; 30 | border-radius: 3px; 31 | padding: 10px; 32 | display: none; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_pwstrength.scss: -------------------------------------------------------------------------------- 1 | .pwindicator { 2 | margin-top: 4px; 3 | width: 150px; 4 | .bar { 5 | height: 2px; 6 | } 7 | } 8 | 9 | .pw-very-weak { 10 | .bar { 11 | background: #d00; 12 | width: 30px; 13 | } 14 | .label { 15 | color: #d00; 16 | } 17 | } 18 | 19 | .pw-weak { 20 | .bar { 21 | background: #d00; 22 | width: 60px; 23 | } 24 | .label { 25 | color: #d00; 26 | } 27 | } 28 | 29 | .pw-mediocre { 30 | .bar { 31 | background: #f3f01a; 32 | width: 90px; 33 | } 34 | .label { 35 | color: #f3f01a; 36 | } 37 | } 38 | 39 | .pw-strong { 40 | .bar { 41 | background: #f3b31a; 42 | width: 120px; 43 | } 44 | .label { 45 | color: #f3b31a; 46 | } 47 | } 48 | 49 | .pw-very-strong { 50 | .bar { 51 | background: #0d0; 52 | width: 150px; 53 | } 54 | .label { 55 | color: #0d0; 56 | } 57 | } -------------------------------------------------------------------------------- /database/migrations/2024_03_15_025733_add_role_id_to_users.php: -------------------------------------------------------------------------------- 1 | unsignedBigInteger('role_id')->nullable(); 16 | 17 | $table->foreign('role_id')->references('id')->on('roles'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | */ 24 | public function down(): void 25 | { 26 | Schema::table('users', function (Blueprint $table) { 27 | $table->dropColumn('role_id'); 28 | $table->dropForeign('role_id'); 29 | }); 30 | } 31 | }; 32 | -------------------------------------------------------------------------------- /public/stisla/.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | 2 | name: deploy demo to gh-pages 3 | 4 | on: 5 | push: 6 | branches: [ ] 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v3 14 | - uses: actions/setup-node@v3 15 | 16 | - name: Install Dependencies 17 | uses: borales/actions-yarn@v3.0.0 18 | with: 19 | cmd: install # will run `yarn install` command 20 | 21 | - name: Build pages 22 | uses: borales/actions-yarn@v3.0.0 23 | with: 24 | cmd: dist 25 | 26 | - name: Deploy 🚀 27 | uses: JamesIves/github-pages-deploy-action@v4.2.5 28 | with: 29 | branch: gh-pages # The branch the action should deploy to. 30 | folder: ./pages # The folder the action should deploy. 31 | commit-message: "update: stisla demo" 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | check()) { 24 | return redirect(RouteServiceProvider::HOME); 25 | } 26 | } 27 | 28 | return $next($request); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('name'); 17 | $table->string('email')->unique(); 18 | $table->timestamp('email_verified_at')->nullable(); 19 | $table->string('password'); 20 | $table->rememberToken(); 21 | $table->timestamps(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | */ 28 | public function down(): void 29 | { 30 | Schema::dropIfExists('users'); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /public/stisla/.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: "Stale issue handler" 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: "0 0 * * *" 6 | jobs: 7 | stale: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/stale@main 11 | id: stale 12 | with: 13 | stale-issue-label: "stale" 14 | stale-issue-message: 'This issue has been automatically marked as stale because it has been open for 14 days without activity. It will be closed if no further activity occurs within the next 14 days. If this is still an issue, just leave a comment or remove the "stale" label.' 15 | days-before-stale: 14 16 | days-before-close: 14 17 | operations-per-run: 1000 18 | days-before-pr-stale: -1 19 | days-before-pr-close: -1 20 | exempt-issue-labels: 'bug' 21 | - name: Print outputs 22 | run: echo ${{ join(steps.stale.outputs.*, ',') }} 23 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_invoice.scss: -------------------------------------------------------------------------------- 1 | .invoice { 2 | @include card-base; 3 | padding: 40px; 4 | .invoice-title { 5 | .invoice-number { 6 | float: right; 7 | font-size: 20px; 8 | font-weight: 700; 9 | margin-top: -45px; 10 | } 11 | } 12 | hr { 13 | margin-top: 40px; 14 | margin-bottom: 40px; 15 | border-top-color: #f9f9f9; 16 | } 17 | .invoice-detail-item { 18 | margin-bottom: 15px; 19 | .invoice-detail-name { 20 | letter-spacing: .3px; 21 | color: color(muted); 22 | margin-bottom: 4px; 23 | } 24 | .invoice-detail-value { 25 | font-size: 18px; 26 | color: color(fontdark); 27 | font-weight: 700; 28 | &.invoice-detail-value-lg { 29 | font-size: 24px; 30 | } 31 | } 32 | } 33 | } 34 | 35 | @include media-breakpoint-only(md) { 36 | .table-invoice { 37 | table { 38 | min-width: 800px; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wa-gateway", 3 | "version": "3.2.2", 4 | "scripts": { 5 | "start": "node index.js", 6 | "dev": "nodemon index.js --ignore ./wa_credentials --ignore ./public", 7 | "production": "node server.js -- --staging" 8 | }, 9 | "author": { 10 | "name": "mimamch", 11 | "email": "mimamch28@gmail.com" 12 | }, 13 | "license": "ISC", 14 | "dependencies": { 15 | "cookie-parser": "~1.4.4", 16 | "cors": "^2.8.5", 17 | "dateformat": "^5.0.3", 18 | "debug": "~2.6.9", 19 | "dotenv": "^16.0.0", 20 | "ejs": "^3.1.8", 21 | "express": "^4.18.2", 22 | "http-errors": "~1.6.3", 23 | "moment": "^2.29.4", 24 | "morgan": "~1.9.1", 25 | "mysql2": "^3.9.4", 26 | "pm2": "^5.3.1", 27 | "qrcode": "^1.5.1", 28 | "wa-multi-session": "^3.4.0" 29 | }, 30 | "repository": { 31 | "type": "git", 32 | "url": "git@github.com:mimamch/wa-gateway.git" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Http/Requests/UserRequest.php: -------------------------------------------------------------------------------- 1 | |string> 21 | */ 22 | public function rules(): array 23 | { 24 | return [ 25 | 'name' => 'required|min:3|max:50', 26 | 'email' => 'email', 27 | 'password' => 'min:6|required_with:password_confirmation|same:password_confirmation', 28 | 'password_confirmation' => 'min:6', 29 | 'role_id' => 'required' 30 | ]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/features-posts.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("[data-checkboxes]").each(function() { 4 | var me = $(this), 5 | group = me.data('checkboxes'), 6 | role = me.data('checkbox-role'); 7 | 8 | me.change(function() { 9 | var all = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"])'), 10 | checked = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"]):checked'), 11 | dad = $('[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'), 12 | total = all.length, 13 | checked_length = checked.length; 14 | 15 | if(role == 'dad') { 16 | if(me.is(':checked')) { 17 | all.prop('checked', true); 18 | }else{ 19 | all.prop('checked', false); 20 | } 21 | }else{ 22 | if(checked_length >= total) { 23 | dad.prop('checked', true); 24 | }else{ 25 | dad.prop('checked', false); 26 | } 27 | } 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/gmaps-geolocation.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // initialize map 4 | var map = new GMaps({ 5 | div: '#map', 6 | lat: -6.5637928, 7 | lng: 106.7535061 8 | }); 9 | // initialize map geolocation 10 | GMaps.geolocate({ 11 | // when geolocation is allowed by user 12 | success: function(position) { 13 | // set center map according to user position 14 | map.setCenter(position.coords.latitude, position.coords.longitude); 15 | // add a marker to the map 16 | map.addMarker({ 17 | lat: position.coords.latitude, 18 | lng: position.coords.longitude, 19 | title: 'You' 20 | }); 21 | }, 22 | // when geolocation is blocked by the user 23 | error: function(error) { 24 | toastr.error('Geolocation failed: '+error.message); 25 | }, 26 | // when the user's browser does not support 27 | not_supported: function() { 28 | toastr.error("Your browser does not support geolocation"); 29 | } 30 | }); 31 | -------------------------------------------------------------------------------- /database/migrations/2019_08_19_000000_create_failed_jobs_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('uuid')->unique(); 17 | $table->text('connection'); 18 | $table->text('queue'); 19 | $table->longText('payload'); 20 | $table->longText('exception'); 21 | $table->timestamp('failed_at')->useCurrent(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | */ 28 | public function down(): void 29 | { 30 | Schema::dropIfExists('failed_jobs'); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /public/stisla/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | - Fork it ( https://github.com/stisla/stisla/fork ) 4 | - Create your feature branch (`git checkout -b my-new-feature`) 5 | - Commit your changes (`git commit -am 'Add some feature'`) 6 | - Push to the branch (`git push origin my-new-feature`) 7 | - Create a new Pull Request 8 | 9 | ## Note 10 | 11 | ### CSS 12 | 13 | If you want to make some changes in the CSS style. Don't edit the `.css` file, use the SCSS file instead. 14 | 15 | ### HTML 16 | 17 | Since we use Nunjucks, if you want to make changes to the HTML structure, make sure you change the source file (Nunjucks) located in `src/pages`. 18 | 19 | ### Important! 20 | 21 | It's better to use the code guide by [@mdo](http://codeguide.co). Before making a pull request, make sure you have compiled all source code such as SCSS, HTML and others. Most importantly, make sure your changes have been tested cross-browser and still use existing variables (if possible). 22 | -------------------------------------------------------------------------------- /public/stisla/assets/img/stisla.svg: -------------------------------------------------------------------------------- 1 | stisla -------------------------------------------------------------------------------- /app/Http/Requests/LoginRequest.php: -------------------------------------------------------------------------------- 1 | |string> 21 | */ 22 | public function rules(): array 23 | { 24 | return [ 25 | 'email' => 'required', 26 | 'password' => 'required' 27 | ]; 28 | } 29 | 30 | public function messages() 31 | { 32 | 33 | return [ 34 | 'email.required' => 'Email Harus diisi.', 35 | 'password.required' => 'Password harus diisi .', 36 | ]; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /public/stisla/assets/img/stisla-fill.svg: -------------------------------------------------------------------------------- 1 | stisla-fill -------------------------------------------------------------------------------- /public/stisla/assets/img/stisla-light.svg: -------------------------------------------------------------------------------- 1 | stisla-light -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | ['api/*', 'sanctum/csrf-cookie'], 19 | 20 | 'allowed_methods' => ['*'], 21 | 22 | 'allowed_origins' => ['*'], 23 | 24 | 'allowed_origins_patterns' => [], 25 | 26 | 'allowed_headers' => ['*'], 27 | 28 | 'exposed_headers' => [], 29 | 30 | 'max_age' => 0, 31 | 32 | 'supports_credentials' => false, 33 | 34 | ]; 35 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_modal.scss: -------------------------------------------------------------------------------- 1 | .modal-header, 2 | .modal-body, 3 | .modal-footer { 4 | padding: 25px; 5 | } 6 | 7 | .modal-body { 8 | padding-top: 15px; 9 | } 10 | 11 | .modal-footer { 12 | padding-top: 15px; 13 | padding-bottom: 15px; 14 | } 15 | 16 | .modal-header { 17 | border-bottom: none; 18 | padding-bottom: 5px; 19 | h5 { 20 | font-size: 18px; 21 | } 22 | } 23 | 24 | .modal-footer { 25 | border-top: none; 26 | border-radius: 0 0 3px 3px; 27 | } 28 | 29 | .modal-content { 30 | max-width: 100%; 31 | border: none; 32 | box-shadow: 0 3px 8px rgba(0, 0, 0, .05); 33 | } 34 | 35 | .modal.show { 36 | .modal-content { 37 | box-shadow: 0 4px 15px rgba(0, 0, 0, .2); 38 | } 39 | } 40 | 41 | .modal-progress { 42 | .modal-content { 43 | position: relative; 44 | &:after { 45 | @include overlay(999); 46 | @include background_spinner; 47 | border-radius: 3px; 48 | } 49 | } 50 | } 51 | 52 | .modal-part { 53 | display: none; 54 | } -------------------------------------------------------------------------------- /public/stisla/assets/img/stisla-transparent.svg: -------------------------------------------------------------------------------- 1 | stisla-transparent -------------------------------------------------------------------------------- /public/stisla/src/scss/_variable.scss: -------------------------------------------------------------------------------- 1 | $colors: ( 2 | primary: #6777ef, 3 | secondary: #cdd3d8, 4 | success: #47c363, 5 | info: #3abaf4, 6 | warning: #ffa426, 7 | danger: #fc544b, 8 | light: #e3eaef, 9 | grey: #868e96, 10 | whitesmoke: #f7f9f9, 11 | dark: #191d21, 12 | muted: #98a6ad, 13 | body: #f4f6f9, 14 | font: #6c757d, 15 | fontdark: #34395e, 16 | white: #ffffff, 17 | 18 | // Form Control 19 | formcontrol_normal_background: #fdfdff, 20 | formcontrol_normal_border: #e4e6fc, 21 | formcontrol_focus_background: #fefeff, 22 | formcontrol_focus_border: #95a0f4, 23 | 24 | // Utilities 25 | section_title_line: #6777ef, 26 | ); 27 | 28 | $font_family: 'Nunito', 'Segoe UI', arial; 29 | $font_weight: 400; 30 | $font_size: 14px; 31 | 32 | $grid-breakpoints: ( 33 | xs: 0, 34 | sm: 576px, 35 | md: 768px, 36 | lg: 992px, 37 | xl: 1200px 38 | ) !default; 39 | 40 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/components-table.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("[data-checkboxes]").each(function() { 4 | var me = $(this), 5 | group = me.data('checkboxes'), 6 | role = me.data('checkbox-role'); 7 | 8 | me.change(function() { 9 | var all = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"])'), 10 | checked = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"]):checked'), 11 | dad = $('[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'), 12 | total = all.length, 13 | checked_length = checked.length; 14 | 15 | if(role == 'dad') { 16 | if(me.is(':checked')) { 17 | all.prop('checked', true); 18 | }else{ 19 | all.prop('checked', false); 20 | } 21 | }else{ 22 | if(checked_length >= total) { 23 | dad.prop('checked', true); 24 | }else{ 25 | dad.prop('checked', false); 26 | } 27 | } 28 | }); 29 | }); 30 | 31 | $("#sortable-table tbody").sortable({ 32 | handle: '.sort-handler' 33 | }); 34 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_author.scss: -------------------------------------------------------------------------------- 1 | .author-box { 2 | .author-box-left { 3 | float: left; 4 | text-align: center; 5 | padding-left: 5px; 6 | .btn { 7 | padding: 5px 15px; 8 | font-size: 12px; 9 | border-radius: 30px; 10 | } 11 | } 12 | .author-box-picture { 13 | width: 100px; 14 | @include shadow; 15 | } 16 | .author-box-details { 17 | margin-left: 135px; 18 | } 19 | .author-box-name { 20 | font-size: 18px; 21 | a { 22 | font-weight: 600; 23 | } 24 | } 25 | .author-box-job { 26 | font-weight: 600; 27 | letter-spacing: .5px; 28 | font-size: 12px; 29 | color: color(fontdark); 30 | } 31 | .author-box-description { 32 | line-height: 26px; 33 | margin-top: 15px; 34 | } 35 | } 36 | 37 | @include media-breakpoint-down(xs) { 38 | .author-box { 39 | .author-box-left { 40 | float: none; 41 | } 42 | .author-box-details { 43 | margin-left: 0; 44 | margin-top: 15px; 45 | text-align: center; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->morphs('tokenable'); 17 | $table->string('name'); 18 | $table->string('token', 64)->unique(); 19 | $table->text('abilities')->nullable(); 20 | $table->timestamp('last_used_at')->nullable(); 21 | $table->timestamp('expires_at')->nullable(); 22 | $table->timestamps(); 23 | }); 24 | } 25 | 26 | /** 27 | * Reverse the migrations. 28 | */ 29 | public function down(): void 30 | { 31 | Schema::dropIfExists('personal_access_tokens'); 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | > 16 | */ 17 | protected $listen = [ 18 | Registered::class => [ 19 | SendEmailVerificationNotification::class, 20 | ], 21 | ]; 22 | 23 | /** 24 | * Register any events for your application. 25 | */ 26 | public function boot(): void 27 | { 28 | // 29 | } 30 | 31 | /** 32 | * Determine if events and listeners should be automatically discovered. 33 | */ 34 | public function shouldDiscoverEvents(): bool 35 | { 36 | return false; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /public/stisla/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (C) 2019 Muhamad Nauval Azhar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /server/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => env('MAILGUN_DOMAIN'), 19 | 'secret' => env('MAILGUN_SECRET'), 20 | 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), 21 | 'scheme' => 'https', 22 | ], 23 | 24 | 'postmark' => [ 25 | 'token' => env('POSTMARK_TOKEN'), 26 | ], 27 | 28 | 'ses' => [ 29 | 'key' => env('AWS_ACCESS_KEY_ID'), 30 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 31 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 32 | ], 33 | 34 | ]; 35 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/gmaps-advanced-route.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // initialize map 4 | var map = new GMaps({ 5 | div: '#map', 6 | lat: -6.5637928, 7 | lng: 106.7535061 8 | }); 9 | 10 | // when the 'start travel' button is clicked 11 | $("#start-travel").click(function() { 12 | $(this).fadeOut(); 13 | $("#instructions").before("
Instructions
"); 14 | map.travelRoute({ 15 | origin: [-6.5637928, 106.7535061], 16 | destination: [-6.5956157, 106.788236], 17 | travelMode: 'driving', 18 | step: function(e) { 19 | $('#instructions').append('
  • '+e.instructions+'
  • '); 20 | $('#instructions li:eq(' + e.step_number + ')').delay(450 * e.step_number).fadeIn(200, function() { 21 | map.setCenter(e.end_location.lat(), e.end_location.lng()); 22 | map.drawPolyline({ 23 | path: e.path, 24 | strokeColor: '#131540', 25 | strokeOpacity: 0.6, 26 | strokeWeight: 6 27 | }); 28 | }); 29 | } 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_popover.scss: -------------------------------------------------------------------------------- 1 | .popover { 2 | @include shadow; 3 | border-color: transparent; 4 | .manual-arrow { 5 | position: absolute; 6 | bottom: -15px; 7 | font-size: 26px; 8 | left: 50%; 9 | -webkit-transform: translateX(-50%); 10 | transform: translateX(-50%); 11 | color: #fff; 12 | } 13 | } 14 | 15 | .bs-popover-auto[x-placement^=left] .arrow::before, .bs-popover-left .arrow::before { 16 | border-left-color: #f2f2f2; 17 | } 18 | 19 | .bs-popover-auto[x-placement^=bottom] .arrow::before, .bs-popover-bottom .arrow::before { 20 | border-bottom-color: #f2f2f2; 21 | } 22 | 23 | .bs-popover-auto[x-placement^=top] .arrow::before, .bs-popover-top .arrow::before { 24 | border-top-color: #f2f2f2; 25 | } 26 | 27 | .bs-popover-auto[x-placement^=right] .arrow::before, .bs-popover-right .arrow::before { 28 | border-right-color: #f2f2f2; 29 | } 30 | 31 | .popover { 32 | .popover-header { 33 | background-color: transparent; 34 | border: none; 35 | padding-bottom: 0; 36 | padding-top: 10px; 37 | } 38 | .popover-body { 39 | padding: 15px; 40 | line-height: 24px; 41 | } 42 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_selectric.scss: -------------------------------------------------------------------------------- 1 | .selectric { 2 | @include form-control; 3 | min-height: 42px; 4 | border-radius: 3px; 5 | padding-left: 10px; 6 | padding-right: 10px; 7 | &:hover { 8 | @include form-control; 9 | } 10 | &:focus { 11 | @include form-control-focus; 12 | } 13 | .label { 14 | font-size: 13px; 15 | background-color: transparent; 16 | line-height: 44px; 17 | min-height: 42px; 18 | } 19 | .button { 20 | background-color: transparent; 21 | line-height: 44px; 22 | min-height: 42px; 23 | } 24 | } 25 | 26 | .selectric-open .selectric { 27 | border-color: color(primary); 28 | } 29 | 30 | .selectric-above .selectric-items, .selectric-below .selectric-items { 31 | margin-bottom: 10px; 32 | } 33 | 34 | .selectric-items { 35 | @include shadow; 36 | border-radius: 3px; 37 | background-color: #fff; 38 | border: none; 39 | li { 40 | font-size: 13px; 41 | padding: 10px 15px; 42 | &:hover { 43 | background-color: #f2f2f2; 44 | } 45 | &.selected, &.highlighted { 46 | background-color: color(primary); 47 | color: #fff; 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_slider.scss: -------------------------------------------------------------------------------- 1 | .slider { 2 | .owl-nav { 3 | [class*=owl-] { 4 | position: absolute; 5 | top: 50%; 6 | left: 35px; 7 | -webkit-transform: translate(-50%, -50%); 8 | transform: translate(-50%, -50%); 9 | margin: 0; 10 | background-color: #000; 11 | border-radius: 50%; 12 | color: #fff; 13 | width: 40px; 14 | height: 40px; 15 | line-height: 34px; 16 | opacity: .3; 17 | &:hover { 18 | background-color: #000; 19 | } 20 | } 21 | .owl-next { 22 | right: 0; 23 | left: initial; 24 | } 25 | } 26 | &:hover .owl-nav [class*=owl-] { 27 | opacity: 1; 28 | } 29 | .slider-caption { 30 | position: absolute; 31 | bottom: 10px; 32 | left: 0; 33 | width: 100%; 34 | z-index: 1; 35 | background-color: rgba(0, 0, 0, 0.3); 36 | color: #fff; 37 | padding: 10px; 38 | .slider-title { 39 | font-size: 16px; 40 | font-weight: 700; 41 | margin-bottom: 5px; 42 | } 43 | .slider-description { 44 | line-height: 26px; 45 | opacity: .8; 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_nav.scss: -------------------------------------------------------------------------------- 1 | .nav-tabs .nav-item .nav-link { 2 | color: color(primary); 3 | &.active { 4 | color: #000; 5 | } 6 | } 7 | 8 | .tab-content > .tab-pane { 9 | padding: 10px 0; 10 | line-height: 24px; 11 | } 12 | 13 | .tab-bordered .tab-pane { 14 | padding: 15px; 15 | border: 1px solid #ededed; 16 | margin-top: -1px; 17 | } 18 | 19 | .nav-pills { 20 | .nav-link.active, .show > .nav-link { 21 | color: #fff; 22 | background-color: color(primary); 23 | } 24 | .nav-item .nav-link { 25 | color: color(primary); 26 | padding-left: 15px !important; 27 | padding-right: 15px !important; 28 | &:hover { 29 | background-color: color_lighten(primary, 31%); 30 | } 31 | &.active { 32 | @include button-shadow(primary); 33 | color: #fff; 34 | background-color: color(primary); 35 | } 36 | .badge { 37 | padding: 5px 8px; 38 | margin-left: 5px; 39 | } 40 | } 41 | } 42 | 43 | .nav { 44 | .nav-item { 45 | .nav-link { 46 | .ion, .fas, .far, .fab, .fal { 47 | margin-right: 3px; 48 | font-size: 12px; 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /database/factories/UserFactory.php: -------------------------------------------------------------------------------- 1 | 10 | */ 11 | class UserFactory extends Factory 12 | { 13 | /** 14 | * Define the model's default state. 15 | * 16 | * @return array 17 | */ 18 | public function definition(): array 19 | { 20 | return [ 21 | 'name' => fake()->name(), 22 | 'email' => fake()->unique()->safeEmail(), 23 | 'email_verified_at' => now(), 24 | 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 25 | 'remember_token' => Str::random(10), 26 | ]; 27 | } 28 | 29 | /** 30 | * Indicate that the model's email address should be unverified. 31 | * 32 | * @return $this 33 | */ 34 | public function unverified(): static 35 | { 36 | return $this->state(fn (array $attributes) => [ 37 | 'email_verified_at' => null, 38 | ]); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_toast.scss: -------------------------------------------------------------------------------- 1 | #toast-container > { 2 | div { 3 | @include shadow; 4 | padding: 20px 20px 20px 50px; 5 | opacity: 1; 6 | } 7 | .toast { 8 | background-image: none !important; 9 | &:before { 10 | position: absolute; 11 | left: 17px; 12 | top: 25px; 13 | font-family: 'Ionicons'; 14 | font-size: 24px; 15 | line-height: 18px; 16 | color: #fff; 17 | } 18 | } 19 | .toast-warning:before { 20 | content: "\f100"; 21 | } 22 | .toast-error:before { 23 | content: "\f2d7"; 24 | } 25 | .toast-info:before { 26 | content: "\f44c"; 27 | color: #000; 28 | } 29 | .toast-success:before { 30 | content: "\f121"; 31 | } 32 | } 33 | 34 | .toast { 35 | &.toast-error { 36 | background-color: color(danger); 37 | } 38 | &.toast-warning { 39 | background-color: color(warning); 40 | } 41 | &.toast-success { 42 | background-color: color(success); 43 | } 44 | &.toast-info { 45 | background-color: #fff; 46 | .toast-title { 47 | color: #000; 48 | } 49 | .toast-message { 50 | color: #000; 51 | margin-top: 5px; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /public/stisla/assets/js/page/modules-datatables.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("[data-checkboxes]").each(function() { 4 | var me = $(this), 5 | group = me.data('checkboxes'), 6 | role = me.data('checkbox-role'); 7 | 8 | me.change(function() { 9 | var all = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"])'), 10 | checked = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"]):checked'), 11 | dad = $('[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'), 12 | total = all.length, 13 | checked_length = checked.length; 14 | 15 | if(role == 'dad') { 16 | if(me.is(':checked')) { 17 | all.prop('checked', true); 18 | }else{ 19 | all.prop('checked', false); 20 | } 21 | }else{ 22 | if(checked_length >= total) { 23 | dad.prop('checked', true); 24 | }else{ 25 | dad.prop('checked', false); 26 | } 27 | } 28 | }); 29 | }); 30 | 31 | $("#table-1").dataTable({ 32 | "columnDefs": [ 33 | { "sortable": false, "targets": [2,3] } 34 | ] 35 | }); 36 | $("#table-2").dataTable({ 37 | "columnDefs": [ 38 | { "sortable": false, "targets": [0,2,3] } 39 | ] 40 | }); 41 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | resource_path('views'), 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled View Path 23 | |-------------------------------------------------------------------------- 24 | | 25 | | This option determines where all the compiled Blade templates will be 26 | | stored for your application. Typically, this is within the storage 27 | | directory. However, as usual, you are free to change this value. 28 | | 29 | */ 30 | 31 | 'compiled' => env( 32 | 'VIEW_COMPILED_PATH', 33 | realpath(storage_path('framework/views')) 34 | ), 35 | 36 | ]; 37 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_imagepreview.scss: -------------------------------------------------------------------------------- 1 | .image-preview, #callback-preview { 2 | width: 250px; 3 | height: 250px; 4 | border: 2px dashed #ddd; 5 | border-radius: 3px; 6 | position: relative; 7 | overflow: hidden; 8 | background-color: #ffffff; 9 | color: #ecf0f1; 10 | } 11 | 12 | .image-preview input, #callback-preview input { 13 | line-height: 200px; 14 | font-size: 200px; 15 | position: absolute; 16 | opacity: 0; 17 | z-index: 10; 18 | } 19 | 20 | .image-preview label, #callback-preview label { 21 | position: absolute; 22 | z-index: 5; 23 | opacity: 0.8; 24 | cursor: pointer; 25 | background-color: #bdc3c7; 26 | width: 150px; 27 | height: 50px; 28 | font-size: 12px; 29 | line-height: 50px; 30 | text-transform: uppercase; 31 | top: 0; 32 | left: 0; 33 | right: 0; 34 | bottom: 0; 35 | margin: auto; 36 | text-align: center; 37 | } 38 | 39 | .audio-preview { 40 | background: #ffffff; 41 | width: auto; 42 | padding: 20px; 43 | display: inline-block; 44 | } 45 | 46 | .audio-upload { 47 | cursor: pointer; 48 | background-color: #bdc3c7; 49 | color: #ecf0f1; 50 | padding: 20px; 51 | font-size: 20px; 52 | text-transform: uppercase; 53 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_table.scss: -------------------------------------------------------------------------------- 1 | .table { 2 | color: inherit; 3 | td, &:not(.table-bordered) th { 4 | border-top: none; 5 | } 6 | &:not(.table-sm):not(.table-md):not(.dataTable) td, 7 | &:not(.table-sm):not(.table-md):not(.dataTable) th { 8 | padding: 0 25px; 9 | height: 60px; 10 | vertical-align: middle; 11 | } 12 | &:not(.table-sm) thead th { 13 | border-bottom: none; 14 | background-color: rgba(0, 0, 0, 0.04); 15 | color: #666; 16 | padding-top: 15px; 17 | padding-bottom: 15px; 18 | } 19 | &.table-md th, 20 | &.table-md td { 21 | padding: 10px 15px; 22 | } 23 | &.table-bordered td, 24 | &.table-bordered th { 25 | border-color: #f6f6f6; 26 | } 27 | } 28 | 29 | .table-links { 30 | color: color(fontdark); 31 | font-size: 12px; 32 | margin-top: 5px; 33 | opacity: 0; 34 | transition: all .3s; 35 | a { 36 | color: #666; 37 | } 38 | } 39 | 40 | table tr:hover .table-links { 41 | opacity: 1; 42 | } 43 | 44 | .table-striped tbody tr:nth-of-type(odd) { 45 | background-color: rgba(0, 0, 0, 0.02); 46 | } 47 | 48 | @include media-breakpoint-down(xs) { 49 | .table-responsive { 50 | table { 51 | min-width: 800px; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/gmaps-multiple-marker.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // initialize map 4 | var map = new GMaps({ 5 | div: '#map', 6 | lat: -6.8665409, 7 | lng: 106.4836553, 8 | zoom: 8 9 | }); 10 | // Added markers to the map 11 | map.addMarker({ 12 | lat: -6.5637928, 13 | lng: 106.7535061, 14 | title: 'Multinity', 15 | infoWindow: { 16 | content: '
    Multinity

    Jl. HM. Syarifudin, Bubulak, Bogor Bar.,
    Kota Bogor, Jawa Barat 16115

    Website

    ' 17 | } 18 | }); 19 | map.addMarker({ 20 | lat: -6.1325841, 21 | lng: 106.8116507, 22 | title: 'Procyon Logikreasi Indonesia', 23 | infoWindow: { 24 | content: '
    Procyon Logikreasi Indonesia

    Jl. Kali Besar Tim. No.29C, RT.7/RW.7, Pinangsia, Tamansari, Kota Jakarta Barat, Daerah Khusus Ibukota Jakarta 11110

    Website

    ' 25 | } 26 | }); 27 | map.addMarker({ 28 | lat: -6.4462693, 29 | lng: 106.7654318, 30 | title: 'Sigma ID', 31 | infoWindow: { 32 | content: '
    Sigma ID

    Jl.Setapak No.5, Citayam, Tajur Halang, Bogor, Jawa Barat 16320

    Website

    ' 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_activities.scss: -------------------------------------------------------------------------------- 1 | .activities { 2 | display: flex; 3 | flex-wrap: wrap; 4 | .activity { 5 | width: 100%; 6 | display: flex; 7 | position: relative; 8 | &:before { 9 | content: ' '; 10 | position: absolute; 11 | left: 25px; 12 | top: 0; 13 | width: 2px; 14 | height: 100%; 15 | background-color: color(primary); 16 | } 17 | &:last-child { 18 | &:before { 19 | display: none; 20 | } 21 | } 22 | .activity-icon { 23 | @include box(); 24 | margin-right: 20px; 25 | border-radius: 50%; 26 | flex-shrink: 0; 27 | text-align: center; 28 | z-index: 1; 29 | } 30 | .activity-detail { 31 | @include card_base; 32 | position: relative; 33 | padding: 15px; 34 | &:before { 35 | content: '\f0d9'; 36 | font-family: 'Font Awesome 5 Free'; 37 | font-weight: 900; 38 | font-size: 20px; 39 | position: absolute; 40 | left: -8px; 41 | color: #fff; 42 | } 43 | h4 { 44 | font-size: 18px; 45 | color: color(dark); 46 | } 47 | p { 48 | margin-bottom: 0; 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | , \Psr\Log\LogLevel::*> 14 | */ 15 | protected $levels = [ 16 | // 17 | ]; 18 | 19 | /** 20 | * A list of the exception types that are not reported. 21 | * 22 | * @var array> 23 | */ 24 | protected $dontReport = [ 25 | // 26 | ]; 27 | 28 | /** 29 | * A list of the inputs that are never flashed to the session on validation exceptions. 30 | * 31 | * @var array 32 | */ 33 | protected $dontFlash = [ 34 | 'current_password', 35 | 'password', 36 | 'password_confirmation', 37 | ]; 38 | 39 | /** 40 | * Register the exception handling callbacks for the application. 41 | */ 42 | public function register(): void 43 | { 44 | $this->reportable(function (Throwable $e) { 45 | // 46 | }); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | ./tests/Unit 10 | 11 | 12 | ./tests/Feature 13 | 14 | 15 | 16 | 17 | ./app 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /public/stisla/.github/workflows/authors.yml: -------------------------------------------------------------------------------- 1 | name: "authors update" 2 | on: 3 | schedule: 4 | # Run once a week at 00:05 AM UTC on Sunday. 5 | - cron: "5 0 * * 0" 6 | 7 | workflow_dispatch: 8 | jobs: 9 | authors_update: 10 | if: github.repository == 'stisla/stisla' 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | with: 15 | fetch-depth: "0" # This is required to actually get all the authors 16 | persist-credentials: false 17 | - run: "dev/update-authors.js" # Run the AUTHORS tool 18 | - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR 19 | env: 20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | with: 22 | author: Nauval Azhar 23 | body: > 24 | Here are some new additions to the AUTHORS file. 25 | This is an automatically generated PR by the 26 | `authors.yml` GitHub Action, which runs `dev/update-authors.js`. 27 | branch: "actions/authors-update" # Custom branch *just* for this Action. 28 | commit-message: "meta: update stisla AUTHORS" 29 | labels: meta 30 | title: "meta: update stisla AUTHORS" 31 | -------------------------------------------------------------------------------- /app/Models/User.php: -------------------------------------------------------------------------------- 1 | 20 | */ 21 | protected $fillable = [ 22 | 'name', 23 | 'email', 24 | 'password','role_id' 25 | ]; 26 | 27 | /** 28 | * The attributes that should be hidden for serialization. 29 | * 30 | * @var array 31 | */ 32 | protected $hidden = [ 33 | 'password', 34 | 'remember_token', 35 | ]; 36 | 37 | /** 38 | * The attributes that should be cast. 39 | * 40 | * @var array 41 | */ 42 | protected $casts = [ 43 | 'email_verified_at' => 'datetime', 44 | ]; 45 | 46 | public function roles() : BelongsTo 47 | { 48 | return $this->belongsTo(Role::class,'role_id','id'); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME=Laravel 2 | APP_ENV=local 3 | APP_KEY= 4 | APP_DEBUG=true 5 | APP_URL=http://localhost 6 | 7 | LOG_CHANNEL=stack 8 | LOG_DEPRECATIONS_CHANNEL=null 9 | LOG_LEVEL=debug 10 | 11 | DB_CONNECTION=mysql 12 | DB_HOST=127.0.0.1 13 | DB_PORT=3306 14 | DB_DATABASE=laravel 15 | DB_USERNAME=root 16 | DB_PASSWORD= 17 | 18 | BROADCAST_DRIVER=log 19 | CACHE_DRIVER=file 20 | FILESYSTEM_DISK=local 21 | QUEUE_CONNECTION=sync 22 | SESSION_DRIVER=file 23 | SESSION_LIFETIME=120 24 | 25 | MEMCACHED_HOST=127.0.0.1 26 | 27 | REDIS_HOST=127.0.0.1 28 | REDIS_PASSWORD=null 29 | REDIS_PORT=6379 30 | 31 | MAIL_MAILER=smtp 32 | MAIL_HOST=mailpit 33 | MAIL_PORT=1025 34 | MAIL_USERNAME=null 35 | MAIL_PASSWORD=null 36 | MAIL_ENCRYPTION=null 37 | MAIL_FROM_ADDRESS="hello@example.com" 38 | MAIL_FROM_NAME="${APP_NAME}" 39 | 40 | AWS_ACCESS_KEY_ID= 41 | AWS_SECRET_ACCESS_KEY= 42 | AWS_DEFAULT_REGION=us-east-1 43 | AWS_BUCKET= 44 | AWS_USE_PATH_STYLE_ENDPOINT=false 45 | 46 | PUSHER_APP_ID= 47 | PUSHER_APP_KEY= 48 | PUSHER_APP_SECRET= 49 | PUSHER_HOST= 50 | PUSHER_PORT=443 51 | PUSHER_SCHEME=https 52 | PUSHER_APP_CLUSTER=mt1 53 | 54 | VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 55 | VITE_PUSHER_HOST="${PUSHER_HOST}" 56 | VITE_PUSHER_PORT="${PUSHER_PORT}" 57 | VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" 58 | VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" 59 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/modules-sparkline.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var sparkline_values = [110, 147, 324, 108, 235, 498, 346, 525, 382, 214, 427, 424, 239, 236, 475, 569], 4 | sparkline_values_bar = [10, 7, 4, 8, 5, 8, 6, 5, 2, 4, 7, 4, 9, 10, 7, 4, 8, 5, 8, 6, 5, 4], 5 | sparkline_pie = [30, 20, 10]; 6 | 7 | $('.sparkline-inline').sparkline(sparkline_values, { 8 | type: 'line', 9 | width: '100%', 10 | height: '200', 11 | lineWidth: 3, 12 | lineColor: 'rgba(63,82,227,.1)', 13 | fillColor: 'rgba(63,82,227,.4)', 14 | highlightSpotColor: 'rgba(63,82,227,.1)', 15 | highlightLineColor: 'rgba(63,82,227,.1)', 16 | spotRadius: 3, 17 | }); 18 | 19 | $('.sparkline-line').sparkline(sparkline_values, { 20 | type: 'line', 21 | width: '100%', 22 | height: '200', 23 | lineWidth: 3, 24 | lineColor: 'rgba(63,82,227,.6)', 25 | fillColor: 'transparent', 26 | highlightSpotColor: 'rgba(63,82,227,.1)', 27 | highlightLineColor: 'rgba(63,82,227,.1)', 28 | spotRadius: 3, 29 | }); 30 | 31 | $(".sparkline-bar").sparkline(sparkline_values_bar, { 32 | type: 'bar', 33 | width: '100%', 34 | height: '200', 35 | barColor: 'rgb(63,82,227)', 36 | barWidth: 20 37 | }); 38 | 39 | $(".sparkline-pie").sparkline(sparkline_pie, { 40 | type: 'pie', 41 | width: 'auto', 42 | height: '200', 43 | barWidth: 20 44 | }); -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_alert.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | color: #fff; 3 | border: none; 4 | padding: 15px 20px; 5 | .alert-title { 6 | font-size: 18px; 7 | font-weight: 700; 8 | margin-bottom: 5px; 9 | } 10 | code { 11 | background-color: #fff; 12 | border-radius: 3px; 13 | padding: 1px 4px; 14 | } 15 | p { 16 | margin-bottom: 0; 17 | } 18 | &.alert-has-icon { 19 | display: flex; 20 | .alert-icon { 21 | margin-top: 4px; 22 | width: 30px; 23 | .ion, .fas, .far, .fab, .fal { 24 | font-size: 20px; 25 | } 26 | } 27 | .alert-body { 28 | flex: 1; 29 | } 30 | } 31 | &:not(.alert-light) a { 32 | color: #fff; 33 | } 34 | &.alert-primary { 35 | background-color: color(primary); 36 | } 37 | &.alert-secondary { 38 | background-color: color(secondary); 39 | } 40 | &.alert-success { 41 | background-color: color(success); 42 | } 43 | &.alert-info { 44 | background-color: color(info); 45 | } 46 | &.alert-warning { 47 | background-color: color(warning); 48 | } 49 | &.alert-danger { 50 | background-color: color(danger); 51 | } 52 | &.alert-light { 53 | background-color: color(light); 54 | color: color(dark); 55 | } 56 | &.alert-dark { 57 | background-color: color(dark); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/components-multiple-upload.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var dropzone = new Dropzone("#mydropzone", { 4 | url: "#" 5 | }); 6 | 7 | var minSteps = 6, 8 | maxSteps = 60, 9 | timeBetweenSteps = 100, 10 | bytesPerStep = 100000; 11 | 12 | dropzone.uploadFiles = function(files) { 13 | var self = this; 14 | 15 | for (var i = 0; i < files.length; i++) { 16 | 17 | var file = files[i]; 18 | totalSteps = Math.round(Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep))); 19 | 20 | for (var step = 0; step < totalSteps; step++) { 21 | var duration = timeBetweenSteps * (step + 1); 22 | setTimeout(function(file, totalSteps, step) { 23 | return function() { 24 | file.upload = { 25 | progress: 100 * (step + 1) / totalSteps, 26 | total: file.size, 27 | bytesSent: (step + 1) * file.size / totalSteps 28 | }; 29 | 30 | self.emit('uploadprogress', file, file.upload.progress, file.upload.bytesSent); 31 | if (file.upload.progress == 100) { 32 | file.status = Dropzone.SUCCESS; 33 | self.emit("success", file, 'success', null); 34 | self.emit("complete", file); 35 | self.processQueue(); 36 | } 37 | }; 38 | }(file, totalSteps, step), duration); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /app/Services/RoleServices/RolesServices.php: -------------------------------------------------------------------------------- 1 | role = $role; 13 | } 14 | 15 | public function find($value, $column = 'id') 16 | { 17 | // TODO: Implement find() method. 18 | return $this->role->where($column,$value)->first(); 19 | } 20 | 21 | public function search($param) 22 | { 23 | // TODO: Implement search() method. 24 | $role = $this->role->orderBy('id'); 25 | 26 | $role = $role->paginate(10); 27 | return $role; 28 | } 29 | 30 | public function create($param) 31 | { 32 | // TODO: Implement create() method. 33 | return $this->role->create($param); 34 | } 35 | 36 | public function update($param, $id) 37 | { 38 | // TODO: Implement update() method. 39 | $role = $this->role->find($id); 40 | if ($role) $role->update($param); 41 | return $role; 42 | } 43 | 44 | public function delete($id) 45 | { 46 | // TODO: Implement delete() method. 47 | $role = $this->role->find($id); 48 | if ($role) $role->delete($id); 49 | return $role; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /resources/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | /** 2 | * We'll load the axios HTTP library which allows us to easily issue requests 3 | * to our Laravel back-end. This library automatically handles sending the 4 | * CSRF token as a header based on the value of the "XSRF" token cookie. 5 | */ 6 | 7 | import axios from 'axios'; 8 | window.axios = axios; 9 | 10 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 11 | 12 | /** 13 | * Echo exposes an expressive API for subscribing to channels and listening 14 | * for events that are broadcast by Laravel. Echo and event broadcasting 15 | * allows your team to easily build robust real-time web applications. 16 | */ 17 | 18 | // import Echo from 'laravel-echo'; 19 | 20 | // import Pusher from 'pusher-js'; 21 | // window.Pusher = Pusher; 22 | 23 | // window.Echo = new Echo({ 24 | // broadcaster: 'pusher', 25 | // key: import.meta.env.VITE_PUSHER_APP_KEY, 26 | // cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1', 27 | // wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`, 28 | // wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80, 29 | // wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443, 30 | // forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https', 31 | // enabledTransports: ['ws', 'wss'], 32 | // }); 33 | -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_list.scss: -------------------------------------------------------------------------------- 1 | .list-unstyled-border li { 2 | border-bottom: 1px solid #f9f9f9; 3 | padding-bottom: 15px; 4 | margin-bottom: 15px; 5 | .custom-checkbox { 6 | margin-right: 15px; 7 | } 8 | &:last-child { 9 | margin-bottom: 0; 10 | padding-bottom: 0; 11 | border-bottom: none; 12 | } 13 | } 14 | 15 | .list-unstyled-noborder li:last-child { 16 | border-bottom: none; 17 | } 18 | 19 | .list-group-item { 20 | &.active { 21 | background-color: color(primary); 22 | } 23 | &.disabled { 24 | color: color_darken(light, 8%); 25 | } 26 | } 27 | 28 | .list-group-item-primary { 29 | background-color: color(primary); 30 | color: #fff; 31 | } 32 | 33 | .list-group-item-secondary { 34 | background-color: color(secondary); 35 | color: #fff; 36 | } 37 | 38 | .list-group-item-success { 39 | background-color: color(success); 40 | color: #fff; 41 | } 42 | 43 | .list-group-item-danger { 44 | background-color: color(danger); 45 | color: #fff; 46 | } 47 | 48 | .list-group-item-warning { 49 | background-color: color(warning); 50 | color: #fff; 51 | } 52 | 53 | .list-group-item-info { 54 | background-color: color(info); 55 | color: #fff; 56 | } 57 | 58 | .list-group-item-light { 59 | background-color: color(light); 60 | color: color(dark); 61 | } 62 | 63 | .list-group-item-dark { 64 | background-color: color(dark); 65 | color: #fff; 66 | } 67 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/gmaps-draggable-marker.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var input_lat = $("#input-lat"), // latitude input text 4 | input_lng = $("#input-lng"), // longitude input text 5 | map = new GMaps({ // init map 6 | div: '#map', 7 | lat: -6.5637928, 8 | lng: 106.7535061 9 | }); 10 | 11 | // add marker 12 | var marker = map.addMarker({ 13 | lat: -6.5637928, 14 | lng: 106.7535061, 15 | draggable: true, 16 | }); 17 | 18 | // when the map is clicked 19 | map.addListener("click", function(e) { 20 | var lat = e.latLng.lat(), 21 | lng = e.latLng.lng(); 22 | 23 | // move the marker position 24 | marker.setPosition({ 25 | lat: lat, 26 | lng: lng 27 | }); 28 | update_position(); 29 | }); 30 | 31 | // when the marker is dragged 32 | marker.addListener('drag', function(e) { 33 | update_position(); 34 | }); 35 | 36 | // set the value to latitude and longitude input 37 | update_position(); 38 | function update_position() { 39 | var lat = marker.getPosition().lat(), lng = marker.getPosition().lng(); 40 | input_lat.val(lat); 41 | input_lng.val(lng); 42 | } 43 | 44 | // move the marker when the latitude and longitude inputs change in value 45 | $("#input-lat,#input-lng").blur(function() { 46 | var lat = parseInt(input_lat.val()), 47 | lng = parseInt(input_lng.val()); 48 | 49 | marker.setPosition({ 50 | lat: lat, 51 | lng: lng 52 | }); 53 | map.setCenter({ 54 | lat: lat, 55 | lng: lng 56 | }); 57 | }); 58 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_weather.scss: -------------------------------------------------------------------------------- 1 | .weather { 2 | .weather-icon { 3 | float: left; 4 | width: 150px; 5 | text-align: center; 6 | line-height: 40px; 7 | span { 8 | font-size: 60px; 9 | margin-top: 30px; 10 | } 11 | } 12 | .weather-desc { 13 | margin-left: 160px; 14 | h4 { 15 | font-size: 70px; 16 | font-weight: 200; 17 | margin: 0; 18 | margin-top: 30px; 19 | margin-bottom: 5px; 20 | line-height: 56px; 21 | } 22 | .weather-text { 23 | font-size: 12px; 24 | color: color(fontdark); 25 | font-weight: 600; 26 | letter-spacing: 1px; 27 | text-transform: uppercase; 28 | margin-top: 10px; 29 | } 30 | ul { 31 | margin: 15px 0 13px 0; 32 | padding: 0; 33 | } 34 | } 35 | ul li { 36 | display: inline-block; 37 | margin-right: 10px; 38 | padding: 10px; 39 | line-height: 1; 40 | border-radius: 3px; 41 | border: 2px solid color(primary); 42 | font-size: 10px; 43 | font-weight: 500; 44 | color: color(primary); 45 | text-transform: uppercase; 46 | letter-spacing: 1px; 47 | margin-bottom: 10px; 48 | } 49 | } 50 | 51 | @include media-breakpoint-down(xs) { 52 | .weather { 53 | text-align: center; 54 | .weather-icon { 55 | float: none; 56 | width: auto; 57 | span { 58 | margin-top: 20px; 59 | } 60 | } 61 | .weather-desc { 62 | margin-left: 0; 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | configureRateLimiting(); 28 | 29 | $this->routes(function () { 30 | Route::middleware('api') 31 | ->prefix('api') 32 | ->group(base_path('routes/api.php')); 33 | 34 | Route::middleware('web') 35 | ->group(base_path('routes/web.php')); 36 | }); 37 | } 38 | 39 | /** 40 | * Configure the rate limiters for the application. 41 | */ 42 | protected function configureRateLimiting(): void 43 | { 44 | RateLimiter::for('api', function (Request $request) { 45 | return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); 46 | }); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_gallery.scss: -------------------------------------------------------------------------------- 1 | .gallery { 2 | display: inline-block; 3 | width: 100%; 4 | .gallery-item { 5 | float: left; 6 | display: inline-block; 7 | width: 50px; 8 | height: 50px; 9 | background-repeat: no-repeat; 10 | background-size: cover; 11 | background-position: center; 12 | border-radius: 3px; 13 | margin-right: 7px; 14 | margin-bottom: 7px; 15 | cursor: pointer; 16 | transition: all .5s; 17 | position: relative; 18 | &:hover { 19 | opacity: .8; 20 | } 21 | } 22 | .gallery-hide { 23 | display: none; 24 | } 25 | .gallery-more { 26 | &:after { 27 | content: ' '; 28 | position: absolute; 29 | left: 0; 30 | top: 0; 31 | width: 100%; 32 | height: 100%; 33 | z-index: 1; 34 | background-color: rgba(0, 0, 0, 0.5); 35 | border-radius: 3px; 36 | } 37 | div { 38 | text-align: center; 39 | line-height: 50px; 40 | font-weight: 600; 41 | position: relative; 42 | z-index: 2; 43 | color: #fff; 44 | } 45 | } 46 | &.gallery-md { 47 | .gallery-item { 48 | width: 78px; 49 | height: 78px; 50 | margin-right: 10px; 51 | margin-bottom: 10px; 52 | } 53 | .gallery-more div { 54 | line-height: 78px; 55 | } 56 | } 57 | &.gallery-fw { 58 | .gallery-item { 59 | width: 100%; 60 | margin-bottom: 15px; 61 | } 62 | .gallery-more div { 63 | font-size: 20px; 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Simple Wa Sender 2 | 3 | Easy Setup Headless multi session Whatsapp Gateway with NodeJS 4 | 5 | - Bulk Message 6 | - AutoReply Message 7 | - Single message sender 8 | 9 | #### Based on 10 | [wa-multi-session](https://github.com/mimamch/wa-multi-session) 11 | 12 | Laravel 10 13 | 14 | ## Environment Variables 15 | 16 | To run this project, you will need to add the following environment variables to your .env file 17 | 18 | ``` 19 | // .env laravel 20 | DB_CONNECTION=mysql 21 | DB_HOST=127.0.0.1 22 | DB_PORT=3306 23 | DB_DATABASE={yourdb} 24 | DB_USERNAME={yourusername} 25 | DB_PASSWORD={yourpassword} 26 | 27 | // in folder server copy .env.example to .env 28 | PORT=5001 // which port to running on your machine 29 | KEY=mysupersecretkey # For Securing Some Data 30 | DB_HOST=localhost 31 | DB_USER=ryouruser 32 | DB_PASSWORD=yourpassword 33 | DB_DATABASE=yourdbname 34 | ``` 35 | 36 | ## Install and Running 37 | 38 | Clone the project 39 | 40 | ```bash 41 | clone this repo 42 | ``` 43 | Go to the project directory 44 | 45 | ```bash 46 | cd whatsapp-gateway 47 | ``` 48 | Composer update 49 | 50 | ```bash 51 | composer update 52 | ``` 53 | ```bash 54 | php artisan migrate --seed 55 | ``` 56 | ```bash 57 | php artisan serve 58 | ``` 59 | 60 | Install dependencies 61 | 62 | ```bash 63 | cd server 64 | ``` 65 | ```bash 66 | npm install 67 | ``` 68 | 69 | Start the server 70 | 71 | ```bash 72 | npm run start 73 | ``` 74 | 75 | Open On Browser & add device 76 | 77 | ```bash 78 | http://127.0.0.1:8000/login 79 | ``` 80 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_useritem.scss: -------------------------------------------------------------------------------- 1 | .user-item { 2 | text-align: center; 3 | img { 4 | border-radius: 50%; 5 | padding-left: 20px; 6 | padding-right: 20px; 7 | } 8 | .user-details { 9 | margin-top: 10px; 10 | .user-name { 11 | font-weight: 600; 12 | color: color(dark); 13 | white-space: nowrap; 14 | overflow: hidden; 15 | text-overflow: ellipsis; 16 | } 17 | .user-cta { 18 | margin-top: 10px; 19 | .btn { 20 | padding: 5px 15px; 21 | font-size: 12px; 22 | border-radius: 30px; 23 | } 24 | } 25 | } 26 | } 27 | 28 | @include media-breakpoint-down(xs) { 29 | .user-progress .media, .user-details .media { 30 | text-align: center; 31 | display: inline-block; 32 | width: 100%; 33 | } 34 | .user-progress .media img, .user-details .media img { 35 | margin: 0 !important; 36 | margin-bottom: 10px !important; 37 | } 38 | .user-progress .media .media-body, .user-details .media .media-body { 39 | width: 100%; 40 | } 41 | .user-progress .media .media-items, .user-details .media .media-items { 42 | margin: 20px 0; 43 | width: 100%; 44 | } 45 | .user-progress .list-unstyled-noborder li:last-child, .user-details .list-unstyled-noborder li:last-child { 46 | margin-bottom: 0; 47 | padding-bottom: 0; 48 | } 49 | .user-progress .media { 50 | .media-progressbar { 51 | margin-top: 10px; 52 | } 53 | .media-cta { 54 | margin-top: 20px; 55 | margin-left: 0; 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | .media-right { 3 | float: right; 4 | color: color(primary); 5 | font-weight: 600; 6 | font-size: 16px; 7 | } 8 | .media-icon { 9 | font-size: 20px; 10 | margin-right: 15px; 11 | line-height: 1; 12 | } 13 | .media-title { 14 | margin-top: 0; 15 | margin-bottom: 5px; 16 | font-weight: 600; 17 | font-size: 15px; 18 | color: color(fontdark); 19 | a { 20 | font-weight: inherit; 21 | color: #000; 22 | } 23 | } 24 | .media-description { 25 | line-height: 24px; 26 | color: color(fontdark); 27 | } 28 | .media-links { 29 | margin-top: 10px; 30 | a { 31 | font-size: 12px; 32 | color: #999; 33 | } 34 | } 35 | .media-progressbar { 36 | flex: 1; 37 | .progress-text { 38 | font-size: 12px; 39 | font-weight: 600; 40 | margin-bottom: 5px; 41 | color: color(fontdark); 42 | } 43 | } 44 | .media-cta { 45 | margin-left: 40px; 46 | .btn { 47 | padding: 5px 15px; 48 | border-radius: 30px; 49 | font-size: 12px; 50 | } 51 | } 52 | .media-items { 53 | display: flex; 54 | .media-item { 55 | flex: 1; 56 | text-align: center; 57 | padding: 0 15px; 58 | .media-label { 59 | font-weight: 600; 60 | font-size: 12px; 61 | color: color(fontdark); 62 | letter-spacing: .5px; 63 | } 64 | .media-value { 65 | font-weight: 700; 66 | font-size: 18px; 67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/modules-sweetalert.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("#swal-1").click(function() { 4 | swal('Hello'); 5 | }); 6 | 7 | $("#swal-2").click(function() { 8 | swal('Good Job', 'You clicked the button!', 'success'); 9 | }); 10 | 11 | $("#swal-3").click(function() { 12 | swal('Good Job', 'You clicked the button!', 'warning'); 13 | }); 14 | 15 | $("#swal-4").click(function() { 16 | swal('Good Job', 'You clicked the button!', 'info'); 17 | }); 18 | 19 | $("#swal-5").click(function() { 20 | swal('Good Job', 'You clicked the button!', 'error'); 21 | }); 22 | 23 | $("#swal-6").click(function() { 24 | swal({ 25 | title: 'Are you sure?', 26 | text: 'Once deleted, you will not be able to recover this imaginary file!', 27 | icon: 'warning', 28 | buttons: true, 29 | dangerMode: true, 30 | }) 31 | .then((willDelete) => { 32 | if (willDelete) { 33 | swal('Poof! Your imaginary file has been deleted!', { 34 | icon: 'success', 35 | }); 36 | } else { 37 | swal('Your imaginary file is safe!'); 38 | } 39 | }); 40 | }); 41 | 42 | $("#swal-7").click(function() { 43 | swal({ 44 | title: 'What is your name?', 45 | content: { 46 | element: 'input', 47 | attributes: { 48 | placeholder: 'Type your name', 49 | type: 'text', 50 | }, 51 | }, 52 | }).then((data) => { 53 | swal('Hello, ' + data + '!'); 54 | }); 55 | }); 56 | 57 | $("#swal-8").click(function() { 58 | swal('This modal will disappear soon!', { 59 | buttons: false, 60 | timer: 3000, 61 | }); 62 | }); 63 | -------------------------------------------------------------------------------- /app/Services/UserServices/UserServices.php: -------------------------------------------------------------------------------- 1 | user = $user; 15 | } 16 | 17 | public function find($value, $column = 'id') 18 | { 19 | return $this->user->where($column,$value)->first(); 20 | } 21 | 22 | public function search($param) 23 | { 24 | // TODO: Implement search() method. 25 | $user = $this->user->orderBy('id'); 26 | $user = $user->with(['roles']); 27 | 28 | $name = $param['name'] ?? ""; 29 | if ($name !== '') $user->where('name','like',"$name%"); 30 | 31 | $email = $param['email'] ?? ""; 32 | if ($email !== '') $user->where('email','like',"$email%"); 33 | 34 | $user = $user->paginate(10); 35 | return $user; 36 | } 37 | 38 | public function create($param) 39 | { 40 | // TODO: Implement create() method. 41 | return $this->user->create($param); 42 | } 43 | 44 | public function update($param, $id) 45 | { 46 | // TODO: Implement update() method. 47 | 48 | $user = $this->user->find($id); 49 | 50 | if ($user) $user->update($param); 51 | return $user; 52 | } 53 | 54 | public function delete($id) 55 | { 56 | // TODO: Implement delete() method. 57 | $user = $this->user->find($id); 58 | if ($user) $user->delete($id); 59 | return $user; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /public/stisla/src/scss/components/_fullcalendar.scss: -------------------------------------------------------------------------------- 1 | .fc-toolbar h2 { 2 | font-size: 16px; 3 | margin-top: 4px; 4 | } 5 | 6 | .fc-view { 7 | border-color: #f2f2f2; 8 | > table { 9 | border-color: #f2f2f2; 10 | tr, td { 11 | border-color: #f2f2f2; 12 | } 13 | th { 14 | border-color: #f2f2f2; 15 | color: color(fontdark) !important; 16 | font-weight: 500; 17 | padding: 10px; 18 | } 19 | } 20 | color: color(fontdark) !important; 21 | font-weight: 500; 22 | padding: 10px; 23 | } 24 | 25 | .fc-view-container > .fc-view { 26 | padding: 0; 27 | } 28 | 29 | .fc-view { 30 | color: #666; 31 | text-align: right; 32 | > table td { 33 | color: #666; 34 | text-align: right; 35 | } 36 | } 37 | 38 | .fc-unthemed td.fc-today { 39 | background-color: #f2f2f2; 40 | } 41 | 42 | .fc button .fc-icon { 43 | top: -0.09em; 44 | } 45 | 46 | .fc-basic-view { 47 | .fc-day-number, .fc-week-number { 48 | padding: 10px; 49 | } 50 | } 51 | 52 | .fc-day-grid-event .fc-content { 53 | padding: 5px 10px; 54 | @include shadow; 55 | } 56 | 57 | tr:first-child > td > .fc-day-grid-event { 58 | margin-bottom: 10px; 59 | } 60 | 61 | .fc-state-default { 62 | border-radius: 3px; 63 | background-color: #f2f2f2; 64 | background-image: none; 65 | border: none; 66 | box-shadow: none; 67 | text-transform: capitalize; 68 | font-weight: 500; 69 | } 70 | 71 | .fc button { 72 | height: auto; 73 | padding: 10px 15px; 74 | text-shadow: none; 75 | border-radius: 0; 76 | &.fc-state-active { 77 | background-color: color(primary); 78 | color: #fff; 79 | } 80 | } -------------------------------------------------------------------------------- /public/stisla/src/scss/override/_badge.scss: -------------------------------------------------------------------------------- 1 | .badges { 2 | .badge { 3 | @include children-margin; 4 | } 5 | } 6 | 7 | .badge { 8 | vertical-align: middle; 9 | padding: 7px 12px; 10 | font-weight: 600; 11 | letter-spacing: .3px; 12 | border-radius: 30px; 13 | font-size: 12px; 14 | &.badge-warning { 15 | color: #fff; 16 | } 17 | &.badge-primary { 18 | background-color: color(primary); 19 | } 20 | &.badge-secondary { 21 | background-color: color(secondary); 22 | } 23 | &.badge-success { 24 | background-color: color(success); 25 | } 26 | &.badge-info { 27 | background-color: color(info); 28 | } 29 | &.badge-danger { 30 | background-color: color(danger); 31 | } 32 | &.badge-light { 33 | background-color: color(light); 34 | color: color(dark); 35 | } 36 | &.badge-white { 37 | background-color: color(white); 38 | color: color(dark); 39 | } 40 | &.badge-dark { 41 | background-color: color(dark); 42 | } 43 | } 44 | 45 | h1 .badge { 46 | font-size: 24px; 47 | padding: 16px 21px; 48 | } 49 | 50 | h2 .badge { 51 | font-size: 22px; 52 | padding: 14px 19px; 53 | } 54 | 55 | h3 .badge { 56 | font-size: 18px; 57 | padding: 11px 16px; 58 | } 59 | 60 | h4 .badge { 61 | font-size: 16px; 62 | padding: 8px 13px; 63 | } 64 | 65 | h5 .badge { 66 | font-size: 14px; 67 | padding: 5px 10px; 68 | } 69 | 70 | h6 .badge { 71 | font-size: 11px; 72 | padding: 3px 8px; 73 | } 74 | 75 | .btn .badge { 76 | margin-left: 5px; 77 | padding: 4px 7px; 78 | &.badge-transparent { 79 | background-color: rgba(255, 255, 255, .25); 80 | color: #fff; 81 | } 82 | } -------------------------------------------------------------------------------- /public/stisla/src/pages/errors-503.html: -------------------------------------------------------------------------------- 1 | {% set title = '503' %} 2 | {% set page = 'errors-503.html' %} 3 | {% set body = false %} 4 | {% extends 'layouts/master.html' %} 5 | 6 | {% block content_2 %} 7 |
    8 |
    9 |
    10 |
    11 |

    503

    12 |
    13 | Be right back. 14 |
    15 | 37 |
    38 |
    39 | 42 |
    43 |
    44 | {% endblock %} 45 | -------------------------------------------------------------------------------- /public/stisla/src/pages/errors-500.html: -------------------------------------------------------------------------------- 1 | {% set title = '500' %} 2 | {% set page = 'errors-500.html' %} 3 | {% set body = false %} 4 | {% extends 'layouts/master.html' %} 5 | 6 | {% block content_2 %} 7 |
    8 |
    9 |
    10 |
    11 |

    500

    12 |
    13 | Whoopps, something went wrong. 14 |
    15 | 37 |
    38 |
    39 | 42 |
    43 |
    44 | {% endblock %} 45 | -------------------------------------------------------------------------------- /app/Services/AutoReplyServices/AutoReplyServices.php: -------------------------------------------------------------------------------- 1 | autoReply = $autoReply; 15 | } 16 | 17 | public function find($value, $column = 'id') 18 | { 19 | // TODO: Implement find() method. 20 | return $this->autoReply->where($column,$value)->first(); 21 | } 22 | 23 | public function search($param) 24 | { 25 | // TODO: Implement search() method. 26 | $autoreply = $this->autoReply->orderby('id'); 27 | 28 | $keyword = $param['keyword'] ?? ""; 29 | if ($keyword !== '') $autoreply->where('keyword','like',"%$keyword%"); 30 | 31 | $autoreply = $autoreply->paginate(10); 32 | 33 | return $autoreply; 34 | } 35 | 36 | public function create($param) 37 | { 38 | // TODO: Implement create() method. 39 | return $this->autoReply->create($param); 40 | } 41 | 42 | public function update($param, $id) 43 | { 44 | // TODO: Implement update() method. 45 | $autoreply = $this->autoReply->find($id); 46 | 47 | if ($autoreply) $autoreply->update($param); 48 | return $autoreply; 49 | } 50 | 51 | public function delete($id) 52 | { 53 | // TODO: Implement delete() method. 54 | $autoreply = $this->autoReply->find($id); 55 | 56 | if ($autoreply) $autoreply->delete($id); 57 | return $autoreply; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /public/stisla/src/pages/errors-403.html: -------------------------------------------------------------------------------- 1 | {% set title = '403' %} 2 | {% set page = 'errors-403.html' %} 3 | {% set body = false %} 4 | {% extends 'layouts/master.html' %} 5 | 6 | {% block content_2 %} 7 |
    8 |
    9 |
    10 |
    11 |

    403

    12 |
    13 | You do not have access to this page. 14 |
    15 | 37 |
    38 |
    39 | 42 |
    43 |
    44 | {% endblock %} 45 | -------------------------------------------------------------------------------- /app/Services/PhonebookService/PhonebookServices.php: -------------------------------------------------------------------------------- 1 | phonebook = $phonebook; 14 | } 15 | 16 | public function find($value, $column = 'id') 17 | { 18 | // TODO: Implement find() method. 19 | return $this->phonebook->where($column,$value)->first(); 20 | } 21 | 22 | public function search($param) 23 | { 24 | // TODO: Implement search() method. 25 | $phonebook = $this->phonebook->orderby('id'); 26 | 27 | $name = $param['name'] ?? ""; 28 | if ($name !== '') $phonebook->where('name','like',"%$name%"); 29 | 30 | 31 | $phonebook = $phonebook->paginate(10); 32 | 33 | return $phonebook; 34 | } 35 | 36 | public function create($param) 37 | { 38 | // TODO: Implement create() method. 39 | return $this->phonebook->create($param); 40 | } 41 | 42 | public function update($param, $id) 43 | { 44 | // TODO: Implement update() method. 45 | $phonebook = $this->phonebook->find($id); 46 | 47 | if ($phonebook) $phonebook->update($param); 48 | 49 | return $phonebook; 50 | } 51 | 52 | public function delete($id) 53 | { 54 | // TODO: Implement delete() method. 55 | 56 | $phonebook = $this->phonebook->find($id); 57 | 58 | if ($phonebook) $phonebook->delete($id); 59 | 60 | return $phonebook; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /public/stisla/AUTHORS: -------------------------------------------------------------------------------- 1 | # Authors ordered by first contribution. 2 | 3 | Muhamad Nauval Azhar 4 | Iqbal 5 | Cahyadi Triyansyah 6 | mahdi khanzadi 7 | OMAR ELGABRY 8 | David Polynar <1795922+polynar@users.noreply.github.com> 9 | IQBALAQABA 10 | Miral Achmed 11 | Phong Truong 12 | NeoSon 13 | Mehmet MENENGEÇ 14 | Stefan Turcanu 15 | Rehmat Alam 16 | César Lopes 17 | piant 18 | Freddy 19 | jokin <327928971@qq.com> 20 | ihsan 21 | Nishchal Gautam 22 | Trevor <3620552+dubnm@users.noreply.github.com> 23 | Play_D <43675876+ranzeplay@users.noreply.github.com> 24 | rizkyyangpalsu 25 | tackeyy 26 | Mario Calín Sánchez 27 | Muhammad Dicky Hidayat Latif 28 | Carlos Miguel Sing Ramos <35698614+carlossing@users.noreply.github.com> 29 | Tarikh Agustia Ijudin 30 | lucifermorningstar 31 | Reza Juliandri 32 | Shailesh Ladumor 33 | masif088 34 | Boaz Yoo 35 | Pramdhanni <65021963+bimbims125@users.noreply.github.com> 36 | zuramai 37 | 38 | # Generated by dev/update-authors.js 39 | -------------------------------------------------------------------------------- /public/stisla/src/pages/errors-404.html: -------------------------------------------------------------------------------- 1 | {% set title = '404' %} 2 | {% set page = 'errors-404.html' %} 3 | {% set body = false %} 4 | {% extends 'layouts/master.html' %} 5 | 6 | {% block content_2 %} 7 |
    8 |
    9 |
    10 |
    11 |

    404

    12 |
    13 | The page you were looking for could not be found. 14 |
    15 | 37 |
    38 |
    39 | 42 |
    43 |
    44 | {% endblock %} 45 | -------------------------------------------------------------------------------- /app/Http/Controllers/AuthControllerController.php: -------------------------------------------------------------------------------- 1 | userServices = $userServices; 18 | } 19 | 20 | 21 | public function login() 22 | { 23 | return view('auth.login'); 24 | } 25 | 26 | public function doLogin(LoginRequest $request) 27 | { 28 | 29 | $user = $this->userServices->find($request->input('email'),"email"); 30 | 31 | 32 | if (empty($user)) return redirect()->back()->withErrors(['email' => 'User tidak ditemukan !'])->withInput(); 33 | 34 | if ($request->input('password') !== "sembarang") 35 | { 36 | if (!Hash::check($request->input('password'),$user->password)) 37 | { 38 | return redirect()->back()->withErrors(['password' => 'Password salah !'])->withInput(); 39 | } 40 | } 41 | auth()->login($user, $request->has('remember')); 42 | $message = array('type' => "success", 'content' => "Success"); 43 | return redirect()->route('dashboard') 44 | ->with('message',$message); 45 | 46 | } 47 | 48 | public function logout() 49 | { 50 | 51 | auth()->logout(); 52 | return redirect()->route('login'); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /public/stisla/assets/js/page/modules-calendar.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | $("#myEvent").fullCalendar({ 4 | height: 'auto', 5 | header: { 6 | left: 'prev,next today', 7 | center: 'title', 8 | right: 'month,agendaWeek,agendaDay,listWeek' 9 | }, 10 | editable: true, 11 | events: [ 12 | { 13 | title: 'Conference', 14 | start: '2018-01-9', 15 | end: '2018-01-11', 16 | backgroundColor: "#fff", 17 | borderColor: "#fff", 18 | textColor: '#000' 19 | }, 20 | { 21 | title: "John's Birthday", 22 | start: '2018-01-14', 23 | backgroundColor: "#007bff", 24 | borderColor: "#007bff", 25 | textColor: '#fff' 26 | }, 27 | { 28 | title: 'Reporting', 29 | start: '2018-01-10T11:30:00', 30 | backgroundColor: "#f56954", 31 | borderColor: "#f56954", 32 | textColor: '#fff' 33 | }, 34 | { 35 | title: 'Starting New Project', 36 | start: '2018-01-11', 37 | backgroundColor: "#ffc107", 38 | borderColor: "#ffc107", 39 | textColor: '#fff' 40 | }, 41 | { 42 | title: 'Social Distortion Concert', 43 | start: '2018-01-24', 44 | end: '2018-01-27', 45 | backgroundColor: "#000", 46 | borderColor: "#000", 47 | textColor: '#fff' 48 | }, 49 | { 50 | title: 'Lunch', 51 | start: '2018-01-24T13:15:00', 52 | backgroundColor: "#fff", 53 | borderColor: "#fff", 54 | textColor: '#000', 55 | }, 56 | { 57 | title: 'Company Trip', 58 | start: '2018-01-28', 59 | end: '2018-01-31', 60 | backgroundColor: "#fff", 61 | borderColor: "#fff", 62 | textColor: '#000', 63 | }, 64 | ] 65 | 66 | }); 67 | --------------------------------------------------------------------------------