├── database ├── .gitignore ├── seeds │ ├── DatabaseSeeder.php │ └── AreaTableSeeder.php └── migrations │ ├── 2017_04_29_032406_create_area_table.php │ ├── 2017_05_13_163951_crate_table_notification.php │ ├── 2017_05_05_162344_create_expense_item_table.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2017_05_05_160742_create_expense_table.php │ ├── 2017_04_29_115946_create_table_flats.php │ ├── 2017_04_29_032416_create_project_table.php │ ├── 2017_05_05_160721_create_rentcollection_table.php │ ├── 2017_05_05_061142_create_rent_table.php │ ├── 2017_05_01_104538_create_curstomer_table.php │ └── 2017_05_12_110201_create_permission_tables.php ├── resources ├── views │ ├── vendor │ │ └── .gitkeep │ ├── layouts │ │ └── footer.blade.php │ ├── home.blade.php │ ├── errors │ │ ├── 503.blade.php │ │ ├── 403.blade.php │ │ ├── 500.blade.php │ │ └── 404.blade.php │ ├── report │ │ └── balance.blade.php │ └── lock.blade.php ├── assets │ ├── sass │ │ ├── app.scss │ │ └── _variables.scss │ └── js │ │ ├── components │ │ └── Example.vue │ │ ├── app.js │ │ └── bootstrap.js └── lang │ └── en │ ├── pagination.php │ ├── auth.php │ └── passwords.php ├── public ├── assets │ ├── js │ │ ├── core │ │ │ ├── demo │ │ │ │ └── DemoDashboard.js │ │ │ ├── utils.js │ │ │ └── source │ │ │ │ ├── AppNavSearch.js │ │ │ │ ├── AppCard.js │ │ │ │ └── AppForm.js │ │ └── libs │ │ │ ├── autosize │ │ │ ├── license.txt │ │ │ └── jquery.autosize.min.js │ │ │ ├── flot │ │ │ ├── LICENSE.txt │ │ │ ├── jquery.flot.symbol.min.js │ │ │ ├── jquery.flot.threshold.min.js │ │ │ ├── jquery.flot.crosshair.min.js │ │ │ ├── jquery.flot.fillbetween.min.js │ │ │ ├── jquery.flot.resize.min.js │ │ │ ├── jquery.flot.stack.min.js │ │ │ ├── jquery.flot.categories.min.js │ │ │ ├── jquery.flot.image.min.js │ │ │ ├── jquery.flot.symbol.js │ │ │ ├── jquery.colorhelpers.min.js │ │ │ ├── jquery.flot.resize.js │ │ │ └── jquery.flot.canvas.min.js │ │ │ ├── jquery-knob │ │ │ └── LICENSE │ │ │ ├── moment │ │ │ └── LICENSE │ │ │ ├── sparkline │ │ │ └── LICENSE │ │ │ ├── DemoFormEditors.js │ │ │ ├── utils │ │ │ ├── html5shiv.js │ │ │ └── respond.min.js │ │ │ └── spin.js │ │ │ └── spin.min.js │ ├── img │ │ ├── logo.png │ │ ├── rhm.jpg │ │ ├── avatar.png │ │ └── building.png │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ ├── Material-Design-Iconic-Font.eot │ │ ├── Material-Design-Iconic-Font.ttf │ │ ├── Material-Design-Iconic-Font.woff │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ ├── glyphicons-halflings-regular.woff2 │ │ ├── bootstrap │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── LICENSE.txt │ ├── sound │ │ ├── notification.mp3 │ │ └── notification.ogg │ └── css │ │ └── libs │ │ ├── select2 │ │ ├── select2x2.png │ │ └── select2-spinner.gif │ │ └── morris │ │ └── morris.core.css ├── robots.txt ├── favicon.ico ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── Material-Design-Iconic-Font.eot │ ├── Material-Design-Iconic-Font.ttf │ ├── Material-Design-Iconic-Font.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff2 │ ├── bootstrap │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── LICENSE.txt ├── .htaccess ├── web.config ├── index.php └── css │ └── custom.css ├── bootstrap ├── cache │ └── .gitignore ├── autoload.php └── app.php ├── storage ├── logs │ └── .gitignore ├── app │ ├── .gitignore │ └── public │ │ ├── rents │ │ └── .gitignore │ │ ├── customers │ │ ├── .gitignore │ │ └── avatar.png │ │ └── .gitignore └── framework │ ├── cache │ └── .gitignore │ ├── views │ └── .gitignore │ ├── sessions │ └── .gitignore │ └── .gitignore ├── screenshots ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 6.png └── 7.png ├── .gitattributes ├── .gitignore ├── app ├── Http │ ├── Composers │ │ └── MasterComposer.php │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── RedirectIfAuthenticated.php │ │ └── RoleMiddleware.php │ ├── Controllers │ │ ├── Controller.php │ │ ├── AreaController.php │ │ ├── ExpenseController.php │ │ └── CollectionController.php │ ├── Helpers │ │ └── AppHelper.php │ └── Kernel.php ├── MyNotify.php ├── ExpenseItem.php ├── Area.php ├── Providers │ ├── BroadcastServiceProvider.php │ ├── AuthServiceProvider.php │ ├── EventServiceProvider.php │ ├── AppServiceProvider.php │ └── RouteServiceProvider.php ├── Console │ └── Kernel.php ├── User.php ├── Expense.php ├── Flat.php ├── Project.php ├── RentCollection.php ├── helpers.php ├── Exceptions │ └── Handler.php ├── Customer.php └── Rent.php ├── package.json ├── tests ├── ExampleTest.php └── TestCase.php ├── routes ├── api.php ├── console.php └── web.php ├── .env.example ├── gulpfile.js ├── server.php ├── phpunit.xml ├── config ├── compile.php ├── services.php ├── view.php ├── broadcasting.php ├── filesystems.php ├── queue.php ├── cache.php ├── laravel-permission.php ├── auth.php └── database.php ├── README.md ├── composer.json └── artisan /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /resources/views/vendor/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/assets/js/core/demo/DemoDashboard.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/app/public/rents/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/public/customers/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !avatar.png 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/screenshots/1.png -------------------------------------------------------------------------------- /screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/screenshots/2.png -------------------------------------------------------------------------------- /screenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/screenshots/3.png -------------------------------------------------------------------------------- /screenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/screenshots/4.png -------------------------------------------------------------------------------- /screenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/screenshots/6.png -------------------------------------------------------------------------------- /screenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/screenshots/7.png -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !customers/ 3 | !rents/ 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/img/logo.png -------------------------------------------------------------------------------- /public/assets/img/rhm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/img/rhm.jpg -------------------------------------------------------------------------------- /public/assets/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/img/avatar.png -------------------------------------------------------------------------------- /public/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/assets/img/building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/img/building.png -------------------------------------------------------------------------------- /public/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/assets/sound/notification.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/sound/notification.mp3 -------------------------------------------------------------------------------- /public/assets/sound/notification.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/sound/notification.ogg -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /storage/app/public/customers/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/storage/app/public/customers/avatar.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/storage 3 | /storage/*.key 4 | /vendor 5 | /.idea 6 | Homestead.json 7 | Homestead.yaml 8 | .env 9 | -------------------------------------------------------------------------------- /public/assets/css/libs/select2/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/css/libs/select2/select2x2.png -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/fonts/Material-Design-Iconic-Font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/Material-Design-Iconic-Font.eot -------------------------------------------------------------------------------- /public/fonts/Material-Design-Iconic-Font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/Material-Design-Iconic-Font.ttf -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/fonts/Material-Design-Iconic-Font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/Material-Design-Iconic-Font.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/assets/css/libs/select2/select2-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/css/libs/select2/select2-spinner.gif -------------------------------------------------------------------------------- /public/assets/fonts/Material-Design-Iconic-Font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/Material-Design-Iconic-Font.eot -------------------------------------------------------------------------------- /public/assets/fonts/Material-Design-Iconic-Font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/Material-Design-Iconic-Font.ttf -------------------------------------------------------------------------------- /public/assets/fonts/Material-Design-Iconic-Font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/Material-Design-Iconic-Font.woff -------------------------------------------------------------------------------- /public/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | schedule-* 4 | compiled.php 5 | services.json 6 | events.scanned.php 7 | routes.scanned.php 8 | down 9 | -------------------------------------------------------------------------------- /public/assets/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/assets/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hrshadhin/HRM/HEAD/public/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /app/Http/Composers/MasterComposer.php: -------------------------------------------------------------------------------- 1 | with('idc', '8d4e3c7bd08118bb031dbde8a7f787283c5f94da'); 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | 2 | // Fonts 3 | @import url(https://fonts.googleapis.com/css?family=Raleway:300,400,600); 4 | 5 | // Variables 6 | @import "variables"; 7 | 8 | // Bootstrap 9 | @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; 10 | 11 | .home{ 12 | justify-content: center; 13 | text-align:center; 14 | margin:0 auto; 15 | } 16 | -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call(AreaTableSeeder::class); 15 | $this->call(RolePermissionSeeder::class); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | 'Dhanmondi', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()], 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /public/assets/fonts/LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | -- Material Design Iconic Font -- 3 | 4 | license: SIL OFL 1.1 5 | author: Sergey Kupletsky 6 | url: http://scripts.sil.org/OFL 7 | 8 | -- FontAwesome -- 9 | 10 | license: SIL OFL 1.1 11 | author: Dave Gandy 12 | url: http://scripts.sil.org/OFL 13 | 14 | -- GLYPHICONS Halflings -- 15 | 16 | license: The MIT License (MIT) 17 | author: Jan Kovařík 18 | url: http://glyphicons.com/ 19 | -------------------------------------------------------------------------------- /resources/views/layouts/footer.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "prod": "gulp --production", 5 | "dev": "gulp watch" 6 | }, 7 | "devDependencies": { 8 | "bootstrap-sass": "^3.3.7", 9 | "gulp": "^3.9.1", 10 | "jquery": "^3.1.0", 11 | "laravel-elixir": "^6.0.0-11", 12 | "laravel-elixir-vue-2": "^0.2.0", 13 | "laravel-elixir-webpack-official": "^1.0.2", 14 | "lodash": "^4.16.2", 15 | "vue": "^2.0.1", 16 | "vue-resource": "^1.0.3" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Area.php: -------------------------------------------------------------------------------- 1 | hasMany('App\Project','areas_id'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tests/ExampleTest.php: -------------------------------------------------------------------------------- 1 | visit('/') 17 | ->see('Laravel'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | user(); 18 | })->middleware('auth:api'); 19 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 18 | })->describe('Display an inspiring quote'); 19 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_ENV=local 2 | APP_KEY= 3 | APP_DEBUG=true 4 | APP_LOG_LEVEL=debug 5 | APP_URL=http://localhost 6 | 7 | DB_CONNECTION=mysql 8 | DB_HOST=127.0.0.1 9 | DB_PORT=3306 10 | DB_DATABASE=homestead 11 | DB_USERNAME=homestead 12 | DB_PASSWORD=secret 13 | 14 | BROADCAST_DRIVER=log 15 | CACHE_DRIVER=file 16 | SESSION_DRIVER=file 17 | QUEUE_DRIVER=sync 18 | 19 | REDIS_HOST=127.0.0.1 20 | REDIS_PASSWORD=null 21 | REDIS_PORT=6379 22 | 23 | MAIL_DRIVER=smtp 24 | MAIL_HOST=mailtrap.io 25 | MAIL_PORT=2525 26 | MAIL_USERNAME=null 27 | MAIL_PASSWORD=null 28 | MAIL_ENCRYPTION=null 29 | 30 | PUSHER_APP_ID= 31 | PUSHER_KEY= 32 | PUSHER_SECRET= 33 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | const elixir = require('laravel-elixir'); 2 | 3 | require('laravel-elixir-vue-2'); 4 | 5 | /* 6 | |-------------------------------------------------------------------------- 7 | | Elixir Asset Management 8 | |-------------------------------------------------------------------------- 9 | | 10 | | Elixir provides a clean, fluent API for defining some basic Gulp tasks 11 | | for your Laravel application. By default, we are compiling the Sass 12 | | file for your application as well as publishing vendor resources. 13 | | 14 | */ 15 | 16 | elixir((mix) => { 17 | mix.sass('app.scss') 18 | .webpack('app.js'); 19 | }); 20 | -------------------------------------------------------------------------------- /resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes If Not A Folder... 9 | RewriteCond %{REQUEST_FILENAME} !-d 10 | RewriteRule ^(.*)/$ /$1 [L,R=301] 11 | 12 | # Handle Front Controller... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_FILENAME} !-f 15 | RewriteRule ^ index.php [L] 16 | 17 | # Handle Authorization Header 18 | RewriteCond %{HTTP:Authorization} . 19 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 20 | 21 | -------------------------------------------------------------------------------- /public/assets/css/libs/morris/morris.core.css: -------------------------------------------------------------------------------- 1 | .morris-hover { 2 | position: absolute; 3 | z-index: 900; 4 | } 5 | .morris-hover.morris-default-style { 6 | border-radius: 10px; 7 | padding: 6px; 8 | color: #666; 9 | background: rgba(255, 255, 255, 0.8); 10 | border: solid 2px rgba(230, 230, 230, 0.8); 11 | font-family: sans-serif; 12 | font-size: 12px; 13 | text-align: center; 14 | } 15 | .morris-hover.morris-default-style .morris-hover-row-label { 16 | font-weight: bold; 17 | margin: 0.25em 0; 18 | } 19 | .morris-hover.morris-default-style .morris-hover-point { 20 | white-space: nowrap; 21 | margin: 0.1em 0; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); 22 | 23 | return $app; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | check()) { 21 | return redirect('/dashboard'); 22 | } 23 | 24 | return $next($request); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | id === (int) $userId; 24 | }); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /resources/assets/js/components/Example.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 24 | -------------------------------------------------------------------------------- /app/Http/Helpers/AppHelper.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any authentication / authorization services. 21 | * 22 | * @return void 23 | */ 24 | public function boot() 25 | { 26 | $this->registerPolicies(); 27 | 28 | // 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /resources/assets/js/app.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * First we will load all of this project's JavaScript dependencies which 4 | * include Vue and Vue Resource. This gives a great starting point for 5 | * building robust, powerful web applications using Vue and Laravel. 6 | */ 7 | 8 | require('./bootstrap'); 9 | 10 | /** 11 | * Next, we will create a fresh Vue application instance and attach it to 12 | * the page. Then, you may begin adding components to this application 13 | * or customize the JavaScript scaffolding to fit your unique needs. 14 | */ 15 | 16 | //Vue.component('example', require('./components/Example.vue')); 17 | 18 | const app = new Vue({ 19 | el: '#app', 20 | data: { 21 | message: '-: Welcome To RHM :-' 22 | } 23 | }); 24 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'App\Listeners\EventListener', 18 | ], 19 | ]; 20 | 21 | /** 22 | * Register any events for your application. 23 | * 24 | * @return void 25 | */ 26 | public function boot() 27 | { 28 | parent::boot(); 29 | 30 | // 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2017_04_29_032406_create_area_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name',255); 19 | $table->timestamps(); 20 | $table->softDeletes(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('areas'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /resources/views/home.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RHM Home 6 | 7 | 23 | 24 | 25 | 26 |

-: Welcome To HRM :-

27 |

Easy & hassle free
HousE rENT Management

28 |

Email: admin@HRM.com || 29 | Password: demo123 30 |

31 | 32 | Login 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /resources/lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Passwords must be at least six characters and match the confirmation.', 17 | 'reset' => 'Your password has been reset!', 18 | 'sent' => 'We have e-mailed your password reset link!', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that e-mail address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /database/migrations/2017_05_13_163951_crate_table_notification.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('title'); 19 | $table->string('value'); 20 | $table->enum('notiType',['collection','due','tolet']); 21 | $table->timestamps(); 22 | 23 | 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('notification'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2017_05_05_162344_create_expense_item_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->unsignedInteger('expenses_id'); 19 | $table->string('name'); 20 | $table->decimal('amount',18,2); 21 | $table->foreign('expenses_id')->references('id')->on('expenses'); 22 | 23 | 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('expenseItems'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/assets/sass/_variables.scss: -------------------------------------------------------------------------------- 1 | 2 | // Body 3 | $body-bg: #f5f8fa; 4 | 5 | // Borders 6 | $laravel-border-color: darken($body-bg, 10%); 7 | $list-group-border: $laravel-border-color; 8 | $navbar-default-border: $laravel-border-color; 9 | $panel-default-border: $laravel-border-color; 10 | $panel-inner-border: $laravel-border-color; 11 | 12 | // Brands 13 | $brand-primary: #3097D1; 14 | $brand-info: #8eb4cb; 15 | $brand-success: #2ab27b; 16 | $brand-warning: #cbb956; 17 | $brand-danger: #bf5329; 18 | 19 | // Typography 20 | $font-family-sans-serif: "Raleway", sans-serif; 21 | $font-size-base: 14px; 22 | $line-height-base: 1.6; 23 | $text-color: #636b6f; 24 | 25 | // Navbar 26 | $navbar-default-bg: #fff; 27 | 28 | // Buttons 29 | $btn-default-color: $text-color; 30 | 31 | // Inputs 32 | $input-border: lighten($text-color, 40%); 33 | $input-border-focus: lighten($brand-primary, 25%); 34 | $input-color-placeholder: lighten($text-color, 30%); 35 | 36 | // Panels 37 | $panel-default-heading-bg: #fff; 38 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire') 28 | // ->hourly(); 29 | } 30 | 31 | /** 32 | * Register the Closure based commands for the application. 33 | * 34 | * @return void 35 | */ 36 | protected function commands() 37 | { 38 | require base_path('routes/console.php'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /public/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/User.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\User','users_id'); 35 | } 36 | 37 | public function setPasswordAttribute($pass){ 38 | 39 | $this->attributes['password'] = bcrypt($pass); 40 | 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | ./tests 14 | 15 | 16 | 17 | 18 | ./app 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name'); 19 | $table->string('email')->unique(); 20 | $table->string('password'); 21 | $table->text('description')->nullable(); 22 | $table->unsignedInteger('users_id')->nullable(); 23 | $table->rememberToken(); 24 | $table->timestamps(); 25 | $table->softDeletes(); 26 | 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::dropIfExists('users'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /config/compile.php: -------------------------------------------------------------------------------- 1 | [ 17 | // 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled File Providers 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may list service providers which define a "compiles" function 26 | | that returns additional files that should be compiled, providing an 27 | | easy way to get common files from any packages you are utilizing. 28 | | 29 | */ 30 | 31 | 'providers' => [ 32 | // 33 | ], 34 | 35 | ]; 36 | -------------------------------------------------------------------------------- /app/Http/Controllers/AreaController.php: -------------------------------------------------------------------------------- 1 | validate($request, [ 21 | 'name' => 'required|min:2|max:255' 22 | ]); 23 | $data = $request->all(); 24 | Area::create($data); 25 | $notification= array('title' => 'Data Store', 'body' => 'Area created Successfully'); 26 | return redirect()->route('area.index')->with('success',$notification); 27 | } 28 | 29 | public function destroy($id) 30 | { 31 | $area = Area::findOrFail($id); 32 | $area->delete(); 33 | $notification= array('title' => 'Data Remove', 'body' => 'Area deleted Successfully'); 34 | return redirect()->route('area.index')->with('success',$notification); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => env('MAILGUN_DOMAIN'), 19 | 'secret' => env('MAILGUN_SECRET'), 20 | ], 21 | 22 | 'ses' => [ 23 | 'key' => env('SES_KEY'), 24 | 'secret' => env('SES_SECRET'), 25 | 'region' => 'us-east-1', 26 | ], 27 | 28 | 'sparkpost' => [ 29 | 'secret' => env('SPARKPOST_SECRET'), 30 | ], 31 | 32 | 'stripe' => [ 33 | 'model' => App\User::class, 34 | 'key' => env('STRIPE_KEY'), 35 | 'secret' => env('STRIPE_SECRET'), 36 | ], 37 | 38 | ]; 39 | -------------------------------------------------------------------------------- /public/assets/js/libs/autosize/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2014 Jack Moore 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 11 | all 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 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | realpath(base_path('resources/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' => realpath(storage_path('framework/views')), 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /app/Expense.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\Project','projects_id')->withTrashed()->select(['id','name']); 30 | } 31 | public function item() { 32 | return $this->hasMany('App\ExpenseItem','expenses_id'); 33 | } 34 | public function entry() { 35 | return $this->belongsTo('App\User','users_id')->withTrashed()->select(['id','name']); 36 | } 37 | 38 | function setEntryDateAttribute($value) 39 | { 40 | $this->attributes['entryDate'] = Carbon::createFromFormat('d/m/Y', $value)->format('Y-m-d'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2007-2013 IOLA and Ole Laursen 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /public/assets/js/libs/jquery-knob/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012 Anthony Terrien 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /public/assets/js/libs/moment/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2013 Tim Wood, Iskren Chernev, Moment.js contributors 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.symbol.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){function processRawData(plot,series,datapoints){var handlers={square:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI)/2;ctx.rect(x-size,y-size,size+size,size+size)},diamond:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI/2);ctx.moveTo(x-size,y);ctx.lineTo(x,y-size);ctx.lineTo(x+size,y);ctx.lineTo(x,y+size);ctx.lineTo(x-size,y)},triangle:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var height=size*Math.sin(Math.PI/3);ctx.moveTo(x-size/2,y+height/2);ctx.lineTo(x+size/2,y+height/2);if(!shadow){ctx.lineTo(x,y-height/2);ctx.lineTo(x-size/2,y+height/2)}},cross:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI)/2;ctx.moveTo(x-size,y-size);ctx.lineTo(x+size,y+size);ctx.moveTo(x-size,y+size);ctx.lineTo(x+size,y-size)}};var s=series.points.symbol;if(handlers[s])series.points.symbol=handlers[s]}function init(plot){plot.hooks.processDatapoints.push(processRawData)}$.plot.plugins.push({init:init,name:"symbols",version:"1.0"})})(jQuery); -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\Project','projects_id')->withTrashed(); 36 | } 37 | public function entry() { 38 | return $this->belongsTo('App\User','users_id')->withTrashed(); 39 | } 40 | public function rents() 41 | { 42 | return $this->hasMany('App\Rent','flats_id'); 43 | } 44 | 45 | function setEntryDateAttribute($value) 46 | { 47 | $this->attributes['entryDate'] = Carbon::createFromFormat('d/m/Y', $value)->format('Y-m-d'); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /database/migrations/2017_05_05_160742_create_expense_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->unsignedInteger('projects_id'); 19 | $table->string('expenseNo',50); 20 | $table->decimal('amount',18,2)->default('0.00'); 21 | $table->text('note')->nullable(); 22 | $table->date('entryDate'); 23 | $table->unsignedInteger('users_id'); 24 | $table->timestamps(); 25 | $table->softDeletes(); 26 | $table->foreign('projects_id')->references('id')->on('projects'); 27 | $table->foreign('users_id')->references('id')->on('users'); 28 | 29 | 30 | }); 31 | 32 | } 33 | 34 | /** 35 | * Reverse the migrations. 36 | * 37 | * @return void 38 | */ 39 | public function down() 40 | { 41 | Schema::dropIfExists('expenses'); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | HRM[House Rent Management] 2 | ========================================== 3 | 4 | # Description 5 | Easy & hassle free 'House Rent Management' web application. 6 | 7 | # Installation and use 8 | ### HRM is build using Laravel 5.3 9 | ``` 10 | $ git clone https://github.com/hrshadhin/HRM.git 11 | ``` 12 | ``` 13 | $ cd HRM 14 | ``` 15 | ``` 16 | $ mv .env.example .env 17 | ``` 18 | **Change configuration in .env according your need and create Database** 19 | ``` 20 | $ composer install 21 | ``` 22 | ``` 23 | $ php artisan migrate 24 | ``` 25 | ``` 26 | $ php artisan db:seed 27 | ``` 28 | ``` 29 | $ php artisan storage:link 30 | ``` 31 | **Give write permission to storage and bootstrap/cache directory** 32 | 33 | ``` 34 | $ php artisan serve 35 | ``` 36 | **http://localhost:8000** \ 37 | USER: admin@hrm.com \ 38 | PASS: demo123 39 | 40 | # Demo Live Link 41 | URL: http://hrm.hrshadhin.me \ 42 | USER: admin@hrm.com \ 43 | PASS: demo123 44 | 45 | 46 | # Screenshot 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | # License 56 | HRM is open-sourced software licensed under the AGPL-3.0 license. Frameworks and libraries has it own licensed 57 | 58 | Enjoy :) 59 | -------------------------------------------------------------------------------- /database/migrations/2017_04_29_115946_create_table_flats.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->unsignedInteger('projects_id'); 19 | $table->date('entryDate'); 20 | $table->unsignedInteger('users_id'); 21 | $table->integer('floor'); 22 | $table->integer('type'); 23 | $table->enum('parking',['Yes','No']); 24 | $table->string('parkingNo',255)->nullable(); 25 | $table->bigInteger('size'); 26 | $table->text('description')->nullable(); 27 | $table->tinyInteger('status')->default('0'); // 0 for empty 1 for booked 28 | $table->timestamps(); 29 | $table->softDeletes(); 30 | $table->foreign('projects_id')->references('id')->on('projects'); 31 | $table->foreign('users_id')->references('id')->on('users'); 32 | 33 | 34 | }); 35 | } 36 | 37 | /** 38 | * Reverse the migrations. 39 | * 40 | * @return void 41 | */ 42 | public function down() 43 | { 44 | Schema::dropIfExists('flats'); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /public/assets/js/libs/sparkline/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012, Splunk, Inc 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /resources/assets/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | 2 | window._ = require('lodash'); 3 | 4 | /** 5 | * We'll load jQuery and the Bootstrap jQuery plugin which provides support 6 | * for JavaScript based Bootstrap features such as modals and tabs. This 7 | * code may be modified to fit the specific needs of your application. 8 | */ 9 | 10 | window.$ = window.jQuery = require('jquery'); 11 | require('bootstrap-sass'); 12 | 13 | /** 14 | * Vue is a modern JavaScript library for building interactive web interfaces 15 | * using reactive data binding and reusable components. Vue's API is clean 16 | * and simple, leaving you to focus on building your next great project. 17 | */ 18 | 19 | window.Vue = require('vue'); 20 | require('vue-resource'); 21 | 22 | /** 23 | * We'll register a HTTP interceptor to attach the "CSRF" header to each of 24 | * the outgoing requests issued by this application. The CSRF middleware 25 | * included with Laravel will automatically verify the header's value. 26 | */ 27 | 28 | Vue.http.interceptors.push((request, next) => { 29 | request.headers.set('X-CSRF-TOKEN', Laravel.csrfToken); 30 | 31 | next(); 32 | }); 33 | 34 | /** 35 | * Echo exposes an expressive API for subscribing to channels and listening 36 | * for events that are broadcast by Laravel. Echo and event broadcasting 37 | * allows your team to easily build robust real-time web applications. 38 | */ 39 | 40 | // import Echo from "laravel-echo" 41 | 42 | // window.Echo = new Echo({ 43 | // broadcaster: 'pusher', 44 | // key: 'your-pusher-key' 45 | // }); 46 | -------------------------------------------------------------------------------- /app/Project.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\Area','areas_id')->withTrashed(); 40 | } 41 | public function entry() { 42 | return $this->belongsTo('App\User','users_id')->withTrashed(); 43 | } 44 | public function flats() 45 | { 46 | return $this->hasMany('App\Flat','projects_id'); 47 | } 48 | public function expenses() 49 | { 50 | return $this->hasMany('App\Expense','projects_id'); 51 | } 52 | public function rents() 53 | { 54 | return $this->hasMany('App\Rent','projects_id'); 55 | } 56 | function setEntryDateAttribute($value) 57 | { 58 | $this->attributes['entryDate'] = Carbon::createFromFormat('d/m/Y', $value)->format('Y-m-d'); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /public/assets/js/libs/DemoFormEditors.js: -------------------------------------------------------------------------------- 1 | (function (namespace, $) { 2 | "use strict"; 3 | 4 | var DemoFormEditors = function () { 5 | // Create reference to this instance 6 | var o = this; 7 | // Initialize app when document is ready 8 | $(document).ready(function () { 9 | o.initialize(); 10 | }); 11 | 12 | }; 13 | var p = DemoFormEditors.prototype; 14 | 15 | // ========================================================================= 16 | // INIT 17 | // ========================================================================= 18 | 19 | p.initialize = function () { 20 | this._initSummernote(); 21 | 22 | }; 23 | 24 | // ========================================================================= 25 | // SUMMERNOTE EDITOR 26 | // ========================================================================= 27 | 28 | p._initSummernote = function () { 29 | if (!$.isFunction($.fn.summernote)) { 30 | return; 31 | } 32 | 33 | // Full toolbar 34 | $('#summernote').summernote(); 35 | 36 | // Simple toolbar 37 | $('#simple-summernote').summernote({ 38 | height: $('#simple-summernote').height(), 39 | toolbar: [ 40 | ['style', ['bold', 'italic', 'underline', 'clear']], 41 | ['fontsize', ['fontsize']], 42 | ['color', ['color']], 43 | ['para', ['ul', 'ol', 'paragraph']], 44 | ['height', ['height']] 45 | ] 46 | }); 47 | }; 48 | 49 | 50 | 51 | // ========================================================================= 52 | namespace.DemoFormEditors = new DemoFormEditors; 53 | }(this.materialadmin, jQuery)); // pass in (namespace, jQuery): 54 | -------------------------------------------------------------------------------- /app/Http/Middleware/RoleMiddleware.php: -------------------------------------------------------------------------------- 1 | with('error', 'CRV: Application encounted problems.Please contact ShanixLab at [hello@hrshadhin.me]'); 31 | 32 | } 33 | 34 | 35 | if (! $request->user()->hasAnyRole(Role::all())) { 36 | if($request->ajax()) { 37 | return response('Access denied!', 401); 38 | } 39 | abort(403); 40 | } 41 | $routeName = $request->route()->getName(); 42 | // dd($routeName); 43 | if (! $request->user()->hasPermissionTo($routeName)) { 44 | if($request->ajax()) { 45 | return response('Access denied!', 401); 46 | } 47 | abort(403); 48 | } 49 | 50 | return $next($request); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /public/assets/js/core/utils.js: -------------------------------------------------------------------------------- 1 | var Utils = { 2 | takaFormat:function(num){ 3 | num = String(num); 4 | num = num.replace(/,/g, ''); 5 | 6 | function makeComma(input){ 7 | // This function is written by some anonymous person - I got it from Google 8 | if(input.length<=2) 9 | { 10 | return input; 11 | } 12 | var length = input.substr(0, input.length - 2); 13 | return makeComma(length)+ "," + input.slice(-2); 14 | } 15 | 16 | 17 | // This is my function 18 | // $pos = strpos((string)$num, "."); 19 | var pos = num.indexOf("."); 20 | var decimalpart = false; 21 | if(pos > -1){ 22 | decimalpart = num.substr(pos+1, 2); 23 | num = num.substr(0, pos); 24 | } 25 | 26 | if(decimalpart.length < 1){ decimalpart = "00"}; 27 | 28 | if( parseInt(decimalpart) < 1 ){ 29 | decimalpart = "00"; 30 | } 31 | 32 | var last3digits,numexceptlastdigits,formatted,stringtoreturn; 33 | if( num.length > 3 ){ 34 | last3digits = num.slice(-3); 35 | numexceptlastdigits = num.slice(0,num.length - 3); 36 | formatted = makeComma(numexceptlastdigits); 37 | stringtoreturn = formatted + "," + last3digits + (decimalpart? "." + decimalpart :"") ; 38 | } 39 | else if(num.length <=3){ 40 | stringtoreturn = num + ( decimalpart ? "."+decimalpart : "" ) ; 41 | } 42 | // else if(num.length > 12){ 43 | // stringtoreturn = String(Number(num).toFixed(2)); 44 | // } 45 | 46 | if( stringtoreturn.substr(0, 2) == "-,"){ 47 | stringtoreturn = "-" + stringtoreturn.substr(2); 48 | } 49 | return stringtoreturn; 50 | } 51 | }; 52 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel/laravel", 3 | "description": "The Laravel Framework.", 4 | "keywords": ["framework", "laravel"], 5 | "license": "MIT", 6 | "type": "project", 7 | "require": { 8 | "php": ">=5.6.4", 9 | "laravel/framework": "5.3.*", 10 | "laravelcollective/html": "^5.3.0", 11 | "barryvdh/laravel-dompdf": "^0.7.0", 12 | "spatie/laravel-permission": "^1.3" 13 | }, 14 | "require-dev": { 15 | "fzaninotto/faker": "~1.4", 16 | "mockery/mockery": "0.9.*", 17 | "phpunit/phpunit": "~5.0", 18 | "symfony/css-selector": "3.1.*", 19 | "symfony/dom-crawler": "3.1.*" 20 | }, 21 | "autoload": { 22 | "classmap": [ 23 | "database" 24 | ], 25 | "psr-4": { 26 | "App\\": "app/" 27 | }, 28 | "files": [ 29 | "app/helpers.php" 30 | ] 31 | }, 32 | "autoload-dev": { 33 | "classmap": [ 34 | "tests/TestCase.php" 35 | ] 36 | }, 37 | "scripts": { 38 | "post-root-package-install": [ 39 | "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 40 | ], 41 | "post-create-project-cmd": [ 42 | "php artisan key:generate" 43 | ], 44 | "post-install-cmd": [ 45 | "Illuminate\\Foundation\\ComposerScripts::postInstall", 46 | "php artisan optimize" 47 | ], 48 | "post-update-cmd": [ 49 | "Illuminate\\Foundation\\ComposerScripts::postUpdate", 50 | "php artisan optimize" 51 | ] 52 | }, 53 | "config": { 54 | "preferred-install": "dist" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /database/migrations/2017_04_29_032416_create_project_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('projectId',255); 19 | $table->enum('projectType',['Commerical','Residential','Residential & Commerical']); 20 | $table->string('name',255); 21 | $table->date('entryDate'); 22 | $table->unsignedInteger('users_id'); 23 | $table->unsignedInteger('areas_id'); 24 | $table->string('address',500); 25 | $table->text('description')->nullable(); 26 | $table->text('storied'); 27 | $table->integer('noOfUnits'); 28 | $table->integer('noOfFloor'); 29 | $table->integer('noOfCarParking'); 30 | $table->unsignedInteger('unitSize'); 31 | $table->enum('lift',['Yes','No']); 32 | $table->enum('generator',['Yes','No']); 33 | $table->timestamps(); 34 | $table->softDeletes(); 35 | $table->foreign('users_id')->references('id')->on('users'); 36 | $table->foreign('areas_id')->references('id')->on('areas'); 37 | 38 | 39 | }); 40 | } 41 | 42 | /** 43 | * Reverse the migrations. 44 | * 45 | * @return void 46 | */ 47 | public function down() 48 | { 49 | Schema::dropIfExists('projects'); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /config/broadcasting.php: -------------------------------------------------------------------------------- 1 | env('BROADCAST_DRIVER', 'null'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Broadcast Connections 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may define all of the broadcast connections that will be used 26 | | to broadcast events to other systems or over websockets. Samples of 27 | | each available type of connection are provided inside this array. 28 | | 29 | */ 30 | 31 | 'connections' => [ 32 | 33 | 'pusher' => [ 34 | 'driver' => 'pusher', 35 | 'key' => env('PUSHER_KEY'), 36 | 'secret' => env('PUSHER_SECRET'), 37 | 'app_id' => env('PUSHER_APP_ID'), 38 | 'options' => [ 39 | // 40 | ], 41 | ], 42 | 43 | 'redis' => [ 44 | 'driver' => 'redis', 45 | 'connection' => 'default', 46 | ], 47 | 48 | 'log' => [ 49 | 'driver' => 'log', 50 | ], 51 | 52 | 'null' => [ 53 | 'driver' => 'null', 54 | ], 55 | 56 | ], 57 | 58 | ]; 59 | -------------------------------------------------------------------------------- /app/RentCollection.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\Rent','rents_id')->withTrashed(); 44 | } 45 | public function customer() { 46 | return $this->belongsTo('App\Customer','customers_id')->withTrashed()->select(['id','name','cellNo']); 47 | } 48 | public function entry() { 49 | return $this->belongsTo('App\User','users_id')->withTrashed()->select('id','name'); 50 | } 51 | 52 | function setCollectionDateAttribute($value) 53 | { 54 | $this->attributes['collectionDate'] = Carbon::createFromFormat('d/m/Y', $value)->format('Y-m-d'); 55 | } 56 | function setIsDeductionAttribute($value) 57 | { 58 | if($value=='on'){ 59 | $this->attributes['isDeduction'] = 1; 60 | 61 | } 62 | else{ 63 | $this->attributes['isDeduction'] = 0; 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /bootstrap/app.php: -------------------------------------------------------------------------------- 1 | singleton( 30 | Illuminate\Contracts\Http\Kernel::class, 31 | App\Http\Kernel::class 32 | ); 33 | 34 | $app->singleton( 35 | Illuminate\Contracts\Console\Kernel::class, 36 | App\Console\Kernel::class 37 | ); 38 | 39 | $app->singleton( 40 | Illuminate\Contracts\Debug\ExceptionHandler::class, 41 | App\Exceptions\Handler::class 42 | ); 43 | 44 | /* 45 | |-------------------------------------------------------------------------- 46 | | Return The Application 47 | |-------------------------------------------------------------------------- 48 | | 49 | | This script returns the application instance. The instance is given to 50 | | the calling script so we can separate the building of the instances 51 | | from the actual running of the application and sending responses. 52 | | 53 | */ 54 | 55 | return $app; 56 | -------------------------------------------------------------------------------- /artisan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | make(Illuminate\Contracts\Console\Kernel::class); 32 | 33 | $status = $kernel->handle( 34 | $input = new Symfony\Component\Console\Input\ArgvInput, 35 | new Symfony\Component\Console\Output\ConsoleOutput 36 | ); 37 | 38 | /* 39 | |-------------------------------------------------------------------------- 40 | | Shutdown The Application 41 | |-------------------------------------------------------------------------- 42 | | 43 | | Once Artisan has finished running. We will fire off the shutdown events 44 | | so that any final work may be done by the application before we shut 45 | | down the process. This is the last thing to happen to the request. 46 | | 47 | */ 48 | 49 | $kernel->terminate($input, $status); 50 | 51 | exit($status); 52 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.threshold.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){var options={series:{threshold:null}};function init(plot){function thresholdData(plot,s,datapoints,below,color){var ps=datapoints.pointsize,i,x,y,p,prevp,thresholded=$.extend({},s);thresholded.datapoints={points:[],pointsize:ps,format:datapoints.format};thresholded.label=null;thresholded.color=color;thresholded.threshold=null;thresholded.originSeries=s;thresholded.data=[];var origpoints=datapoints.points,addCrossingPoints=s.lines.show;var threspoints=[];var newpoints=[];var m;for(i=0;i0&&origpoints[i-ps]!=null){var interx=x+(below-y)*(x-origpoints[i-ps])/(y-origpoints[i-ps+1]);prevp.push(interx);prevp.push(below);for(m=2;m0){var origIndex=$.inArray(s,plot.getData());plot.getData().splice(origIndex+1,0,thresholded)}}function processThresholds(plot,s,datapoints){if(!s.threshold)return;if(s.threshold instanceof Array){s.threshold.sort(function(a,b){return a.below-b.below});$(s.threshold).each(function(i,th){thresholdData(plot,s,datapoints,th.below,th.color)})}else{thresholdData(plot,s,datapoints,s.threshold.below,s.threshold.color)}}plot.hooks.processDatapoints.push(processThresholds)}$.plot.plugins.push({init:init,options:options,name:"threshold",version:"1.2"})})(jQuery); -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | composer('layouts.master', 'App\Http\Composers\MasterComposer'); 24 | 25 | Area::deleted( 26 | function ($area) { 27 | $area->projects()->delete(); 28 | } 29 | ); 30 | 31 | Project::deleted( 32 | function ($project) { 33 | $project->flats()->delete(); 34 | $project->expenses()->delete(); 35 | $project->rents()->delete(); 36 | } 37 | ); 38 | 39 | Flat::deleted( 40 | function ($flat) { 41 | $flat->rents()->delete(); 42 | } 43 | ); 44 | 45 | Customer::deleted( 46 | function ($customer) { 47 | $customer->rents()->delete(); 48 | $customer->collections()->delete(); 49 | } 50 | ); 51 | Rent::deleted( 52 | function ($rent) { 53 | $rent->collections()->delete(); 54 | } 55 | ); 56 | 57 | // Project::restored(function($project) { 58 | // $project->services()->withTrashed()->restore(); 59 | // }); 60 | } 61 | 62 | /** 63 | * Register any application services. 64 | * 65 | * @return void 66 | */ 67 | public function register() 68 | { 69 | // 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/Http/Kernel.php: -------------------------------------------------------------------------------- 1 | [ 27 | \App\Http\Middleware\EncryptCookies::class, 28 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 29 | \Illuminate\Session\Middleware\StartSession::class, 30 | \Illuminate\View\Middleware\ShareErrorsFromSession::class, 31 | \App\Http\Middleware\VerifyCsrfToken::class, 32 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 33 | ], 34 | 35 | 'api' => [ 36 | 'throttle:60,1', 37 | 'bindings', 38 | ], 39 | ]; 40 | 41 | /** 42 | * The application's route middleware. 43 | * 44 | * These middleware may be assigned to groups or used individually. 45 | * 46 | * @var array 47 | */ 48 | protected $routeMiddleware = [ 49 | 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 50 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 51 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 52 | 'can' => \Illuminate\Auth\Middleware\Authorize::class, 53 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 54 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 55 | 'role' => \App\Http\Middleware\RoleMiddleware::class, 56 | ]; 57 | } 58 | -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | /* 11 | |-------------------------------------------------------------------------- 12 | | Register The Auto Loader 13 | |-------------------------------------------------------------------------- 14 | | 15 | | Composer provides a convenient, automatically generated class loader for 16 | | our application. We just need to utilize it! We'll simply require it 17 | | into the script here so that we don't have to worry about manual 18 | | loading any of our classes later on. It feels nice to relax. 19 | | 20 | */ 21 | 22 | require __DIR__.'/../bootstrap/autoload.php'; 23 | 24 | /* 25 | |-------------------------------------------------------------------------- 26 | | Turn On The Lights 27 | |-------------------------------------------------------------------------- 28 | | 29 | | We need to illuminate PHP development, so let us turn on the lights. 30 | | This bootstraps the framework and gets it ready for use, then it 31 | | will load up this application so that we can run it and send 32 | | the responses back to the browser and delight our users. 33 | | 34 | */ 35 | 36 | $app = require_once __DIR__.'/../bootstrap/app.php'; 37 | 38 | /* 39 | |-------------------------------------------------------------------------- 40 | | Run The Application 41 | |-------------------------------------------------------------------------- 42 | | 43 | | Once we have the application, we can handle the incoming request 44 | | through the kernel, and send the associated response back to 45 | | the client's browser allowing them to enjoy the creative 46 | | and wonderful application we have prepared for them. 47 | | 48 | */ 49 | 50 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 51 | 52 | $response = $kernel->handle( 53 | $request = Illuminate\Http\Request::capture() 54 | ); 55 | 56 | $response->send(); 57 | 58 | $kernel->terminate($request, $response); 59 | -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | mapApiRoutes(); 39 | 40 | $this->mapWebRoutes(); 41 | 42 | // 43 | } 44 | 45 | /** 46 | * Define the "web" routes for the application. 47 | * 48 | * These routes all receive session state, CSRF protection, etc. 49 | * 50 | * @return void 51 | */ 52 | protected function mapWebRoutes() 53 | { 54 | Route::group([ 55 | 'middleware' => 'web', 56 | 'namespace' => $this->namespace, 57 | ], function ($router) { 58 | require base_path('routes/web.php'); 59 | }); 60 | } 61 | 62 | /** 63 | * Define the "api" routes for the application. 64 | * 65 | * These routes are typically stateless. 66 | * 67 | * @return void 68 | */ 69 | protected function mapApiRoutes() 70 | { 71 | Route::group([ 72 | 'middleware' => 'api', 73 | 'namespace' => $this->namespace, 74 | 'prefix' => 'api', 75 | ], function ($router) { 76 | require base_path('routes/api.php'); 77 | }); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /app/helpers.php: -------------------------------------------------------------------------------- 1 | where('user_id',$user_id)->where('permission_id',$permission_id)->get(); 12 | if(count($havePermission)){ 13 | return true; 14 | } 15 | return false; 16 | } 17 | function getUserRole($user){ 18 | if($user->hasRole('admin')) { return 'Admin'; } 19 | if($user->hasRole('supervisor')) { return 'Supervisor'; } 20 | if($user->hasRole('operator')) { return 'Operator'; } 21 | 22 | } 23 | 24 | function floorLevel($floor){ 25 | $floors = [ 26 | '-1' => 'Basement', 27 | '0' => 'Ground', 28 | '1' => '1st', 29 | '2' => '2nd', 30 | '3' => '3rd', 31 | '4' => '4th', 32 | '5' => '5th', 33 | '6' => '6th', 34 | '7' => '7th', 35 | '8' => '8th', 36 | '9' => '9th', 37 | '10' => '10th', 38 | '11' => '11th', 39 | '12' => '12th', 40 | '13' => '13th', 41 | '14' => '14th', 42 | '15' => '15th', 43 | '16' => '16th', 44 | '17' => '17th', 45 | '18' => '18th', 46 | '19' => '19th', 47 | '20' => '20th', 48 | '21' => '21th', 49 | '22' => '22th', 50 | '23' => '23th', 51 | '24' => '24th', 52 | '25' => '25th', 53 | '26' => '26th', 54 | '27' => '27th', 55 | '28' => '28th', 56 | '29' => '29th', 57 | '30' => '30th' 58 | ]; 59 | return $floors[$floor]; 60 | } 61 | function flatType($type){ 62 | $types = [ 63 | '1' => 'A', 64 | '2' => 'B', 65 | '3' => 'C', 66 | '4' => 'D', 67 | '5' => 'E', 68 | '6' => 'F', 69 | '7' => 'G', 70 | '8' => 'H', 71 | '9' => 'I', 72 | '10' => 'J', 73 | '11' => 'K', 74 | '12' => 'L' 75 | ]; 76 | return $types[$type]; 77 | } -------------------------------------------------------------------------------- /database/migrations/2017_05_05_160721_create_rentcollection_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->unsignedInteger('customers_id'); 19 | $table->unsignedInteger('rents_id'); 20 | $table->string('collectionNo',50); 21 | $table->decimal('amount',18,2); 22 | // $table->decimal('monthlyDeduction',18,2); 23 | // $table->decimal('monthlyDeductionTax',18,2); 24 | $table->smallInteger('isDeduction')->default('0');//1 for yes 0 no 25 | $table->enum('collectionType',['Cash','Cheque','P.O']); 26 | $table->string('chequeNo')->nullable(); 27 | $table->string('bankName')->nullable(); 28 | $table->string('branchName')->nullable(); 29 | $table->string('poNo')->nullable(); 30 | $table->string('poName')->nullable(); 31 | $table->string('poCode')->nullable(); 32 | $table->text('note')->nullable(); 33 | $table->date('collectionDate'); 34 | $table->tinyInteger('fromAdvance')->default('0');//0 for none 1 for money came from advance 35 | $table->unsignedInteger('users_id'); 36 | $table->timestamps(); 37 | $table->softDeletes(); 38 | $table->foreign('customers_id')->references('id')->on('customers'); 39 | $table->foreign('rents_id')->references('id')->on('rents'); 40 | $table->foreign('users_id')->references('id')->on('users'); 41 | 42 | 43 | }); 44 | } 45 | 46 | /** 47 | * Reverse the migrations. 48 | * 49 | * @return void 50 | */ 51 | public function down() 52 | { 53 | Schema::dropIfExists('collections'); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 60 | return response()->json(['error' => 'Unauthenticated.'], 401); 61 | } 62 | 63 | return redirect()->guest('login'); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.crosshair.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){var options={crosshair:{mode:null,color:"rgba(170, 0, 0, 0.80)",lineWidth:1}};function init(plot){var crosshair={x:-1,y:-1,locked:false};plot.setCrosshair=function setCrosshair(pos){if(!pos)crosshair.x=-1;else{var o=plot.p2c(pos);crosshair.x=Math.max(0,Math.min(o.left,plot.width()));crosshair.y=Math.max(0,Math.min(o.top,plot.height()))}plot.triggerRedrawOverlay()};plot.clearCrosshair=plot.setCrosshair;plot.lockCrosshair=function lockCrosshair(pos){if(pos)plot.setCrosshair(pos);crosshair.locked=true};plot.unlockCrosshair=function unlockCrosshair(){crosshair.locked=false};function onMouseOut(e){if(crosshair.locked)return;if(crosshair.x!=-1){crosshair.x=-1;plot.triggerRedrawOverlay()}}function onMouseMove(e){if(crosshair.locked)return;if(plot.getSelection&&plot.getSelection()){crosshair.x=-1;return}var offset=plot.offset();crosshair.x=Math.max(0,Math.min(e.pageX-offset.left,plot.width()));crosshair.y=Math.max(0,Math.min(e.pageY-offset.top,plot.height()));plot.triggerRedrawOverlay()}plot.hooks.bindEvents.push(function(plot,eventHolder){if(!plot.getOptions().crosshair.mode)return;eventHolder.mouseout(onMouseOut);eventHolder.mousemove(onMouseMove)});plot.hooks.drawOverlay.push(function(plot,ctx){var c=plot.getOptions().crosshair;if(!c.mode)return;var plotOffset=plot.getPlotOffset();ctx.save();ctx.translate(plotOffset.left,plotOffset.top);if(crosshair.x!=-1){var adj=plot.getOptions().crosshair.lineWidth%2?.5:0;ctx.strokeStyle=c.color;ctx.lineWidth=c.lineWidth;ctx.lineJoin="round";ctx.beginPath();if(c.mode.indexOf("x")!=-1){var drawX=Math.floor(crosshair.x)+adj;ctx.moveTo(drawX,0);ctx.lineTo(drawX,plot.height())}if(c.mode.indexOf("y")!=-1){var drawY=Math.floor(crosshair.y)+adj;ctx.moveTo(0,drawY);ctx.lineTo(plot.width(),drawY)}ctx.stroke()}ctx.restore()});plot.hooks.shutdown.push(function(plot,eventHolder){eventHolder.unbind("mouseout",onMouseOut);eventHolder.unbind("mousemove",onMouseMove)})}$.plot.plugins.push({init:init,options:options,name:"crosshair",version:"1.0"})})(jQuery); -------------------------------------------------------------------------------- /config/filesystems.php: -------------------------------------------------------------------------------- 1 | 'public', 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Default Cloud Filesystem Disk 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Many applications store files both locally and in the cloud. For this 24 | | reason, you may specify a default "cloud" driver here. This driver 25 | | will be bound as the Cloud disk implementation in the container. 26 | | 27 | */ 28 | 29 | 'cloud' => 's3', 30 | 31 | /* 32 | |-------------------------------------------------------------------------- 33 | | Filesystem Disks 34 | |-------------------------------------------------------------------------- 35 | | 36 | | Here you may configure as many filesystem "disks" as you wish, and you 37 | | may even configure multiple disks of the same driver. Defaults have 38 | | been setup for each driver as an example of the required options. 39 | | 40 | | Supported Drivers: "local", "ftp", "s3", "rackspace" 41 | | 42 | */ 43 | 44 | 'disks' => [ 45 | 46 | 'local' => [ 47 | 'driver' => 'local', 48 | 'root' => storage_path('app'), 49 | ], 50 | 51 | 'public' => [ 52 | 'driver' => 'local', 53 | 'root' => storage_path('app/public'), 54 | 'visibility' => 'public', 55 | ], 56 | 57 | 's3' => [ 58 | 'driver' => 's3', 59 | 'key' => 'your-key', 60 | 'secret' => 'your-secret', 61 | 'region' => 'your-region', 62 | 'bucket' => 'your-bucket', 63 | ], 64 | 65 | ], 66 | 67 | ]; 68 | -------------------------------------------------------------------------------- /database/migrations/2017_05_05_061142_create_rent_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->unsignedInteger('projects_id'); 19 | $table->unsignedInteger('customers_id'); 20 | $table->unsignedInteger('flats_id'); 21 | $table->string('rentNo',50); 22 | $table->decimal('perSftRent',18,2); 23 | $table->decimal('rent',18,2); 24 | $table->decimal('serviceCharge',18,2); 25 | $table->decimal('securityMoney',18,2); 26 | $table->decimal('advanceMoney',18,2); 27 | $table->decimal('monthlyDeduction',18,2); 28 | $table->decimal('monthlyDeductionTax',18,2); 29 | $table->decimal('utilityCharge',18,2); 30 | $table->decimal('delayCharge',18,2); 31 | $table->text('note')->nullable(); 32 | $table->string('deepPaper')->nullable(); 33 | $table->string('othersPaper')->nullable(); 34 | $table->tinyInteger('status')->default('1'); // 1 for active 0 for inactive 35 | $table->date('entryDate'); 36 | $table->date('deedStart'); 37 | $table->date('deedEnd'); 38 | $table->unsignedInteger('users_id'); 39 | $table->timestamps(); 40 | $table->softDeletes(); 41 | $table->foreign('customers_id')->references('id')->on('customers'); 42 | $table->foreign('projects_id')->references('id')->on('projects'); 43 | $table->foreign('flats_id')->references('id')->on('flats'); 44 | $table->foreign('users_id')->references('id')->on('users'); 45 | 46 | 47 | }); 48 | } 49 | 50 | /** 51 | * Reverse the migrations. 52 | * 53 | * @return void 54 | */ 55 | public function down() 56 | { 57 | Schema::dropIfExists('rents'); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.fillbetween.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){var options={series:{fillBetween:null}};function init(plot){function findBottomSeries(s,allseries){var i;for(i=0;i=allseries.length){return null}return allseries[s.fillBetween]}return null}function computeFillBottoms(plot,s,datapoints){if(s.fillBetween==null){return}var other=findBottomSeries(s,plot.getData());if(!other){return}var ps=datapoints.pointsize,points=datapoints.points,otherps=other.datapoints.pointsize,otherpoints=other.datapoints.points,newpoints=[],px,py,intery,qx,qy,bottom,withlines=s.lines.show,withbottom=ps>2&&datapoints.format[2].y,withsteps=withlines&&s.lines.steps,fromgap=true,i=0,j=0,l,m;while(true){if(i>=points.length){break}l=newpoints.length;if(points[i]==null){for(m=0;m=otherpoints.length){if(!withlines){for(m=0;mqx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+1]-py)*(qx-px)/(points[i-ps]-px);newpoints.push(qx);newpoints.push(intery);for(m=2;m0&&otherpoints[j-otherps]!=null){bottom=qy+(otherpoints[j-otherps+1]-qy)*(px-qx)/(otherpoints[j-otherps]-qx)}i+=ps}fromgap=false;if(l!==newpoints.length&&withbottom){newpoints[l+2]=bottom}}if(withsteps&&l!==newpoints.length&&l>0&&newpoints[l]!==null&&newpoints[l]!==newpoints[l-ps]&&newpoints[l+1]!==newpoints[l-ps+1]){for(m=0;m=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);(function($){var options={};function init(plot){function onResize(){var placeholder=plot.getPlaceholder();if(placeholder.width()==0||placeholder.height()==0)return;plot.resize();plot.setupGrid();plot.draw()}function bindEvents(plot,eventHolder){plot.getPlaceholder().resize(onResize)}function shutdown(plot,eventHolder){plot.getPlaceholder().unbind("resize",onResize)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:"resize",version:"1.0"})})(jQuery); -------------------------------------------------------------------------------- /public/assets/js/libs/utils/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); 8 | for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;dbelongsTo('App\User','users_id')->withTrashed()->select(['id','name']); 56 | } 57 | 58 | 59 | public function rents() 60 | { 61 | return $this->hasMany('App\Rent','customers_id'); 62 | } 63 | public function collections() 64 | { 65 | return $this->hasMany('App\RentCollection','customers_id'); 66 | } 67 | 68 | function setDobAttribute($value) 69 | { 70 | if(strlen($value)){ 71 | $this->attributes['dob'] = Carbon::createFromFormat('d/m/Y', trim($value)); 72 | } 73 | else{ 74 | $this->attributes['dob'] = null; 75 | } 76 | } 77 | public function getDobAttribute($value) 78 | { 79 | if(strlen($value)){ 80 | return Carbon::parse($value)->format('d/m/Y'); 81 | } 82 | else{ 83 | return ''; 84 | } 85 | } 86 | function setEntryDateAttribute($value) 87 | { 88 | $this->attributes['entryDate'] = Carbon::createFromFormat('d/m/Y', trim($value)); 89 | } 90 | 91 | } 92 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.stack.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){var options={series:{stack:null}};function init(plot){function findMatchingSeries(s,allseries){var res=null;for(var i=0;i2&&(horizontal?datapoints.format[2].x:datapoints.format[2].y),withsteps=withlines&&s.lines.steps,fromgap=true,keyOffset=horizontal?1:0,accumulateOffset=horizontal?0:1,i=0,j=0,l,m;while(true){if(i>=points.length)break;l=newpoints.length;if(points[i]==null){for(m=0;m=otherpoints.length){if(!withlines){for(m=0;mqx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+accumulateOffset]-py)*(qx-px)/(points[i-ps+keyOffset]-px);newpoints.push(qx);newpoints.push(intery+qy);for(m=2;m0&&otherpoints[j-otherps]!=null)bottom=qy+(otherpoints[j-otherps+accumulateOffset]-qy)*(px-qx)/(otherpoints[j-otherps+keyOffset]-qx);newpoints[l+accumulateOffset]+=bottom;i+=ps}fromgap=false;if(l!=newpoints.length&&withbottom)newpoints[l+2]+=bottom}if(withsteps&&l!=newpoints.length&&l>0&&newpoints[l]!=null&&newpoints[l]!=newpoints[l-ps]&&newpoints[l+1]!=newpoints[l-ps+1]){for(m=0;m 2 | 3 | 4 | RHM- 503 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 34 | 35 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | 46 |
47 | 48 |
49 |
50 |
51 |

503

52 |

Where Am I !?

53 |
54 |
55 |
56 |
57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /resources/views/errors/403.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | RHM- 404 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 34 | 35 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | 46 |
47 | 48 |
49 |
50 |
51 |

403

52 |

Access denied!

53 |
54 |
55 |
56 |
57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /resources/views/errors/500.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | RHM- 500 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 34 | 35 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | 46 |
47 | 48 |
49 |
50 |
51 |

500

52 |

Internal Server Error!

53 |
54 |
55 |
56 |
57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /resources/views/errors/404.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | RHM- 404 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 34 | 35 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | 46 |
47 | 48 |
49 |
50 |
51 |

404

52 |

This page does not exist :;)

53 |
54 |
55 |
56 |
57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.categories.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){var options={xaxis:{categories:null},yaxis:{categories:null}};function processRawData(plot,series,data,datapoints){var xCategories=series.xaxis.options.mode=="categories",yCategories=series.yaxis.options.mode=="categories";if(!(xCategories||yCategories))return;var format=datapoints.format;if(!format){var s=series;format=[];format.push({x:true,number:true,required:true});format.push({y:true,number:true,required:true});if(s.bars.show||s.lines.show&&s.lines.fill){var autoscale=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);format.push({y:true,number:true,required:false,defaultValue:0,autoscale:autoscale});if(s.bars.horizontal){delete format[format.length-1].y;format[format.length-1].x=true}}datapoints.format=format}for(var m=0;mindex)index=categories[v];return index+1}function categoriesTickGenerator(axis){var res=[];for(var label in axis.categories){var v=axis.categories[label];if(v>=axis.min&&v<=axis.max)res.push([v,label])}res.sort(function(a,b){return a[0]-b[0]});return res}function setupCategoriesForAxis(series,axis,datapoints){if(series[axis].options.mode!="categories")return;if(!series[axis].categories){var c={},o=series[axis].options.categories||{};if($.isArray(o)){for(var i=0;ibelongsTo('App\Project','projects_id')->withTrashed()->select(['id','name']); 48 | } 49 | public function flat() { 50 | return $this->belongsTo('App\Flat','flats_id')->withTrashed()->select(['id','description']); 51 | } 52 | public function customer() { 53 | return $this->belongsTo('App\Customer','customers_id')->withTrashed()->select(['id','name','cellNo','permanentAddress','photo']); 54 | } 55 | public function entry() { 56 | return $this->belongsTo('App\User','users_id')->withTrashed()->select(['id','name']); 57 | } 58 | public function collections() 59 | { 60 | return $this->hasMany('App\RentCollection','rents_id'); 61 | } 62 | public function collectionSum() 63 | { 64 | return $this->hasMany('App\RentCollection','rents_id') 65 | ->selectRaw('rents_id,SUM(amount) as total') 66 | ->groupBy('rents_id'); 67 | } 68 | 69 | 70 | function setEntryDateAttribute($value) 71 | { 72 | $this->attributes['entryDate'] = Carbon::createFromFormat('d/m/Y', $value)->format('Y-m-d'); 73 | } 74 | function setDeedStartAttribute($value) 75 | { 76 | $this->attributes['deedStart'] = Carbon::createFromFormat('m-Y', $value)->format('Y-m-d'); 77 | } 78 | function setDeedEndAttribute($value) 79 | { 80 | $this->attributes['deedEnd'] = Carbon::createFromFormat('m-Y', $value)->format('Y-m-d'); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.image.min.js: -------------------------------------------------------------------------------- 1 | /* Javascript plotting library for jQuery, version 0.8.3. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | */ 7 | (function($){var options={series:{images:{show:false,alpha:1,anchor:"corner"}}};$.plot.image={};$.plot.image.loadDataImages=function(series,options,callback){var urls=[],points=[];var defaultShow=options.series.images.show;$.each(series,function(i,s){if(!(defaultShow||s.images.show))return;if(s.data)s=s.data;$.each(s,function(i,p){if(typeof p[0]=="string"){urls.push(p[0]);points.push(p)}})});$.plot.image.load(urls,function(loadedImages){$.each(points,function(i,p){var url=p[0];if(loadedImages[url])p[0]=loadedImages[url]});callback()})};$.plot.image.load=function(urls,callback){var missing=urls.length,loaded={};if(missing==0)callback({});$.each(urls,function(i,url){var handler=function(){--missing;loaded[url]=this;if(missing==0)callback(loaded)};$("").load(handler).error(handler).attr("src",url)})};function drawSeries(plot,ctx,series){var plotOffset=plot.getPlotOffset();if(!series.images||!series.images.show)return;var points=series.datapoints.points,ps=series.datapoints.pointsize;for(var i=0;ix2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}if(series.images.anchor=="center"){tmp=.5*(x2-x1)/(img.width-1);x1-=tmp;x2+=tmp;tmp=.5*(y2-y1)/(img.height-1);y1-=tmp;y2+=tmp}if(x1==x2||y1==y2||x1>=xaxis.max||x2<=xaxis.min||y1>=yaxis.max||y2<=yaxis.min)continue;var sx1=0,sy1=0,sx2=img.width,sy2=img.height;if(x1xaxis.max){sx2+=(sx2-sx1)*(xaxis.max-x2)/(x2-x1);x2=xaxis.max}if(y1yaxis.max){sy1+=(sy1-sy2)*(yaxis.max-y2)/(y2-y1);y2=yaxis.max}x1=xaxis.p2c(x1);x2=xaxis.p2c(x2);y1=yaxis.p2c(y1);y2=yaxis.p2c(y2);if(x1>x2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}tmp=ctx.globalAlpha;ctx.globalAlpha*=series.images.alpha;ctx.drawImage(img,sx1,sy1,sx2-sx1,sy2-sy1,x1+plotOffset.left,y1+plotOffset.top,x2-x1,y2-y1);ctx.globalAlpha=tmp}}function processRawData(plot,series,data,datapoints){if(!series.images.show)return;datapoints.format=[{required:true},{x:true,number:true,required:true},{y:true,number:true,required:true},{x:true,number:true,required:true},{y:true,number:true,required:true}]}function init(plot){plot.hooks.processRawData.push(processRawData);plot.hooks.drawSeries.push(drawSeries)}$.plot.plugins.push({init:init,options:options,name:"image",version:"1.1"})})(jQuery); -------------------------------------------------------------------------------- /resources/views/report/balance.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.master') 2 | 3 | @section('title', 'Report-Balance') 4 | 5 | @section('content') 6 |
7 |
8 | 11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 22 |
23 |
24 |
25 |
26 |
27 |
28 | 29 | ShanixLab 30 |
31 |
32 |

Balance

33 |
34 |
35 |
Print:{{ date('d/m/Y') }}
36 |
37 |
38 |
39 |
40 | 41 |

Total Collection

৳{{ $collections }}

42 | 43 |
44 |
45 | 46 |

Total Expense

৳{{$expenses}}

47 | 48 |
49 | 50 |

Balance

৳{{$collections - $expenses}}

51 | 52 |
53 |
54 | 55 | 56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | 64 |
65 | @endsection 66 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.flot.symbol.js: -------------------------------------------------------------------------------- 1 | /* Flot plugin that adds some extra symbols for plotting points. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | The symbols are accessed as strings through the standard symbol options: 7 | 8 | series: { 9 | points: { 10 | symbol: "square" // or "diamond", "triangle", "cross" 11 | } 12 | } 13 | 14 | */ 15 | 16 | (function ($) { 17 | function processRawData(plot, series, datapoints) { 18 | // we normalize the area of each symbol so it is approximately the 19 | // same as a circle of the given radius 20 | 21 | var handlers = { 22 | square: function (ctx, x, y, radius, shadow) { 23 | // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 24 | var size = radius * Math.sqrt(Math.PI) / 2; 25 | ctx.rect(x - size, y - size, size + size, size + size); 26 | }, 27 | diamond: function (ctx, x, y, radius, shadow) { 28 | // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) 29 | var size = radius * Math.sqrt(Math.PI / 2); 30 | ctx.moveTo(x - size, y); 31 | ctx.lineTo(x, y - size); 32 | ctx.lineTo(x + size, y); 33 | ctx.lineTo(x, y + size); 34 | ctx.lineTo(x - size, y); 35 | }, 36 | triangle: function (ctx, x, y, radius, shadow) { 37 | // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) 38 | var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); 39 | var height = size * Math.sin(Math.PI / 3); 40 | ctx.moveTo(x - size/2, y + height/2); 41 | ctx.lineTo(x + size/2, y + height/2); 42 | if (!shadow) { 43 | ctx.lineTo(x, y - height/2); 44 | ctx.lineTo(x - size/2, y + height/2); 45 | } 46 | }, 47 | cross: function (ctx, x, y, radius, shadow) { 48 | // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 49 | var size = radius * Math.sqrt(Math.PI) / 2; 50 | ctx.moveTo(x - size, y - size); 51 | ctx.lineTo(x + size, y + size); 52 | ctx.moveTo(x - size, y + size); 53 | ctx.lineTo(x + size, y - size); 54 | } 55 | }; 56 | 57 | var s = series.points.symbol; 58 | if (handlers[s]) 59 | series.points.symbol = handlers[s]; 60 | } 61 | 62 | function init(plot) { 63 | plot.hooks.processDatapoints.push(processRawData); 64 | } 65 | 66 | $.plot.plugins.push({ 67 | init: init, 68 | name: 'symbols', 69 | version: '1.0' 70 | }); 71 | })(jQuery); 72 | -------------------------------------------------------------------------------- /config/queue.php: -------------------------------------------------------------------------------- 1 | env('QUEUE_DRIVER', 'sync'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Queue Connections 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may configure the connection information for each server that 26 | | is used by your application. A default configuration has been added 27 | | for each back-end shipped with Laravel. You are free to add more. 28 | | 29 | */ 30 | 31 | 'connections' => [ 32 | 33 | 'sync' => [ 34 | 'driver' => 'sync', 35 | ], 36 | 37 | 'database' => [ 38 | 'driver' => 'database', 39 | 'table' => 'jobs', 40 | 'queue' => 'default', 41 | 'retry_after' => 90, 42 | ], 43 | 44 | 'beanstalkd' => [ 45 | 'driver' => 'beanstalkd', 46 | 'host' => 'localhost', 47 | 'queue' => 'default', 48 | 'retry_after' => 90, 49 | ], 50 | 51 | 'sqs' => [ 52 | 'driver' => 'sqs', 53 | 'key' => 'your-public-key', 54 | 'secret' => 'your-secret-key', 55 | 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', 56 | 'queue' => 'your-queue-name', 57 | 'region' => 'us-east-1', 58 | ], 59 | 60 | 'redis' => [ 61 | 'driver' => 'redis', 62 | 'connection' => 'default', 63 | 'queue' => 'default', 64 | 'retry_after' => 90, 65 | ], 66 | 67 | ], 68 | 69 | /* 70 | |-------------------------------------------------------------------------- 71 | | Failed Queue Jobs 72 | |-------------------------------------------------------------------------- 73 | | 74 | | These options configure the behavior of failed queue job logging so you 75 | | can control which database and table are used to store the jobs that 76 | | have failed. You may change them to any database / table you wish. 77 | | 78 | */ 79 | 80 | 'failed' => [ 81 | 'database' => env('DB_CONNECTION', 'mysql'), 82 | 'table' => 'failed_jobs', 83 | ], 84 | 85 | ]; 86 | -------------------------------------------------------------------------------- /public/css/custom.css: -------------------------------------------------------------------------------- 1 | .form-group .form-control ~ label { 2 | opacity: 1; 3 | } 4 | .myAction{ 5 | float: right !important; 6 | display: inline; !important; 7 | } 8 | .mytable td { 9 | text-align: center; 10 | } 11 | .fa-taka { 12 | height: 37px; 13 | font-size: 30px 14 | } 15 | 16 | .header-nav-options .dropdown .dropdown-menu { 17 | top: 64px; 18 | } 19 | .dropdown-header { 20 | display: block; 21 | padding: 3px 20px; 22 | font-size: 12px; 23 | line-height: 1.846153846; 24 | color: #16c1c1; 25 | white-space: nowrap; 26 | opacity: 1!important; 27 | } 28 | table thead th { 29 | font-weight: 900; 30 | font-size: 16px; 31 | text-align: center; 32 | } 33 | table tbody tr td { 34 | text-align: center; 35 | } 36 | table tfoot tr td { 37 | text-align: center; 38 | } 39 | 40 | .gui-icon { 41 | font-size: 16px; 42 | } 43 | li.gui-folder span.title{ 44 | font-size: 16px; 45 | } 46 | li.dd span.title{ 47 | font-size: 16px; 48 | } 49 | @media print 50 | { 51 | body * { 52 | margin: 0 !important; 53 | padding: 0 !important; 54 | } 55 | html, body { 56 | height: 99%; 57 | } 58 | .no-print, .no-print * 59 | { 60 | display: none !important; 61 | } 62 | .top-zero{ 63 | top: 0 !important; 64 | } 65 | section { 66 | top: 0 !important; 67 | position: relative; 68 | padding: 0 !important; 69 | } 70 | .section-body:first-child { 71 | top: 0 !important; 72 | margin-top: 0px !important; 73 | } 74 | #content { 75 | position: relative; 76 | width: 100%; 77 | left: 0; 78 | padding-top: 0px !important; 79 | } 80 | } 81 | 82 | fieldset { 83 | background: #ffffff; 84 | border: 2px solid #0aa89e; 85 | border-radius: 5px; 86 | margin: 20px 20px 20px 20px; 87 | padding: 25px; 88 | position: relative; 89 | } 90 | fieldset legend { 91 | background: inherit; 92 | font-family: "Lato", sans-serif; 93 | color: #007AFF; 94 | font-size: 15px; 95 | left: 10px; 96 | padding: 0 10px; 97 | position: absolute; 98 | top: -12px; 99 | font-weight: 400; 100 | width: auto !important; 101 | border: none !important; 102 | margin: 0; 103 | } 104 | footer strong { 105 | color: #1abb9c; 106 | } 107 | footer a { 108 | color: #3498db; 109 | font-weight: bold; 110 | } 111 | 112 | .footer_fixed { 113 | position: fixed; 114 | left: 0px; 115 | bottom: 0px; 116 | width: 100%; 117 | z-index: 100; 118 | } 119 | 120 | footer { 121 | background: #f2f3f3; 122 | padding: 15px 20px; 123 | display: block; 124 | } 125 | #content{ 126 | margin-bottom: 55px; 127 | } -------------------------------------------------------------------------------- /database/migrations/2017_05_01_104538_create_curstomer_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name'); 19 | $table->string('cellNo',15)->unique(); 20 | $table->string('phoneNo',15)->nullable(); 21 | $table->string('email',100)->nullable(); 22 | $table->date('dob')->nullable(); 23 | $table->string('contactPerson',100)->nullable(); 24 | $table->string('contactPersonCellNo',15)->nullable(); 25 | $table->string('fatherName',100)->nullable(); 26 | $table->string('motherName',100)->nullable(); 27 | $table->string('spouseName',100)->nullable(); 28 | $table->string('nidNo')->nullable(); 29 | $table->string('passportNo')->nullable(); 30 | $table->string('mailingAddress',500)->nullable(); 31 | $table->string('presentAddress',500)->nullable(); 32 | $table->string('permanentAddress',500); 33 | $table->string('birthCertificate')->nullable(); 34 | $table->string('passport')->nullable(); 35 | $table->string('photo')->nullable(); 36 | //business info 37 | $table->string('companyName')->nullable(); 38 | $table->string('designation',100)->nullable(); 39 | $table->string('cContactPerson',100)->nullable(); 40 | $table->string('cContactPersonCellNo',15)->nullable(); 41 | $table->string('cCellNo',15)->nullable(); 42 | $table->string('cPhoneNo',15)->nullable(); 43 | $table->string('cFaxNo',15)->nullable(); 44 | $table->string('cEmail',100)->nullable(); 45 | $table->string('cAddress',500)->nullable(); 46 | $table->string('cNote',1000)->nullable(); 47 | 48 | $table->enum('active',['Yes','No']); 49 | $table->enum('customerType',['Person','Company']); 50 | $table->date('entryDate'); 51 | $table->unsignedInteger('users_id'); 52 | $table->timestamps(); 53 | $table->softDeletes(); 54 | 55 | $table->index(['users_id', 'entryDate']); 56 | $table->foreign('users_id')->references('id')->on('users'); 57 | }); 58 | } 59 | 60 | /** 61 | * Reverse the migrations. 62 | * 63 | * @return void 64 | */ 65 | public function down() 66 | { 67 | Schema::dropIfExists('customers'); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /config/cache.php: -------------------------------------------------------------------------------- 1 | env('CACHE_DRIVER', 'file'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Cache Stores 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may define all of the cache "stores" for your application as 26 | | well as their drivers. You may even define multiple stores for the 27 | | same cache driver to group types of items stored in your caches. 28 | | 29 | */ 30 | 31 | 'stores' => [ 32 | 33 | 'apc' => [ 34 | 'driver' => 'apc', 35 | ], 36 | 37 | 'array' => [ 38 | 'driver' => 'array', 39 | ], 40 | 41 | 'database' => [ 42 | 'driver' => 'database', 43 | 'table' => 'cache', 44 | 'connection' => null, 45 | ], 46 | 47 | 'file' => [ 48 | 'driver' => 'file', 49 | 'path' => storage_path('framework/cache'), 50 | ], 51 | 52 | 'memcached' => [ 53 | 'driver' => 'memcached', 54 | 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), 55 | 'sasl' => [ 56 | env('MEMCACHED_USERNAME'), 57 | env('MEMCACHED_PASSWORD'), 58 | ], 59 | 'options' => [ 60 | // Memcached::OPT_CONNECT_TIMEOUT => 2000, 61 | ], 62 | 'servers' => [ 63 | [ 64 | 'host' => env('MEMCACHED_HOST', '127.0.0.1'), 65 | 'port' => env('MEMCACHED_PORT', 11211), 66 | 'weight' => 100, 67 | ], 68 | ], 69 | ], 70 | 71 | 'redis' => [ 72 | 'driver' => 'redis', 73 | 'connection' => 'default', 74 | ], 75 | 76 | ], 77 | 78 | /* 79 | |-------------------------------------------------------------------------- 80 | | Cache Key Prefix 81 | |-------------------------------------------------------------------------- 82 | | 83 | | When utilizing a RAM based store such as APC or Memcached, there might 84 | | be other applications utilizing the same cache. So, we'll specify a 85 | | value to get prefixed to all our keys so we can avoid collisions. 86 | | 87 | */ 88 | 89 | 'prefix' => 'laravel', 90 | 91 | ]; 92 | -------------------------------------------------------------------------------- /public/assets/js/libs/flot/jquery.colorhelpers.min.js: -------------------------------------------------------------------------------- 1 | (function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); -------------------------------------------------------------------------------- /public/assets/js/core/source/AppNavSearch.js: -------------------------------------------------------------------------------- 1 | (function (namespace, $) { 2 | "use strict"; 3 | 4 | var AppNavSearch = function () { 5 | // Create reference to this instance 6 | var o = this; 7 | // Initialize app when document is ready 8 | $(document).ready(function () { 9 | o.initialize(); 10 | }); 11 | 12 | }; 13 | var p = AppNavSearch.prototype; 14 | 15 | // ========================================================================= 16 | // MEMBERS 17 | // ========================================================================= 18 | 19 | p._clearSearchTimer = null; 20 | 21 | // ========================================================================= 22 | // INIT 23 | // ========================================================================= 24 | 25 | p.initialize = function () { 26 | this._enableEvents(); 27 | }; 28 | 29 | // ========================================================================= 30 | // EVENTS 31 | // ========================================================================= 32 | 33 | // events 34 | p._enableEvents = function () { 35 | var o = this; 36 | 37 | // Listen for the nav search button click 38 | $('.navbar-search .btn').on('click', function (e) { 39 | o._handleButtonClick(e); 40 | }); 41 | 42 | // When the search field loses focus 43 | $('.navbar-search input').on('blur', function (e) { 44 | o._handleFieldBlur(e); 45 | }); 46 | }; 47 | 48 | // ========================================================================= 49 | // NAV SEARCH 50 | // ========================================================================= 51 | 52 | p._handleButtonClick = function (e) { 53 | e.preventDefault(); 54 | 55 | var form = $(e.currentTarget).closest('form'); 56 | var input = form.find('input'); 57 | var keyword = input.val(); 58 | 59 | if ($.trim(keyword) === '') { 60 | // When there is no keyword, just open the bar 61 | form.addClass('expanded'); 62 | input.focus(); 63 | } 64 | else { 65 | // When there is a keyword, submit the keyword 66 | form.addClass('expanded'); 67 | form.submit(); 68 | 69 | // Clear the timer that removes the keyword 70 | clearTimeout(this._clearSearchTimer); 71 | } 72 | }; 73 | 74 | // ========================================================================= 75 | // FIELD BLUR 76 | // ========================================================================= 77 | 78 | p._handleFieldBlur = function (e) { 79 | // When the search field loses focus 80 | var input = $(e.currentTarget); 81 | var form = input.closest('form'); 82 | 83 | // Collapse the search field 84 | form.removeClass('expanded'); 85 | 86 | // Clear the textfield after 300 seconds (the time it takes to collapse the field) 87 | clearTimeout(this._clearSearchTimer); 88 | this._clearSearchTimer = setTimeout(function () { 89 | input.val(''); 90 | }, 300); 91 | }; 92 | 93 | // ========================================================================= 94 | // DEFINE NAMESPACE 95 | // ========================================================================= 96 | 97 | window.materialadmin.AppNavSearch = new AppNavSearch; 98 | }(this.materialadmin, jQuery)); // pass in (namespace, jQuery): 99 | -------------------------------------------------------------------------------- /public/assets/js/libs/autosize/jquery.autosize.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Autosize 1.18.17 3 | license: MIT 4 | http://www.jacklmoore.com/autosize 5 | */ 6 | !function(e){var t,o={className:"autosizejs",id:"autosizejs",append:"\n",callback:!1,resizeDelay:10,placeholder:!0},i='