├── .env.example ├── .gitattributes ├── .gitignore ├── app ├── Attendance.php ├── Commands │ └── Command.php ├── Complaint.php ├── Console │ ├── Commands │ │ └── Inspire.php │ └── Kernel.php ├── Events │ └── Event.php ├── Exceptions │ └── Handler.php ├── Handlers │ ├── Commands │ │ └── .gitkeep │ └── Events │ │ └── .gitkeep ├── Http │ ├── Controllers │ │ ├── Attendance │ │ │ ├── AttendanceController.php │ │ │ ├── GetByDateController.php │ │ │ └── GetByMonthAndYearForUser.php │ │ ├── Auth │ │ │ ├── AuthController.php │ │ │ └── PasswordController.php │ │ ├── AuthController.php │ │ ├── ComplaintController.php │ │ ├── Controller.php │ │ ├── DashboardController.php │ │ ├── HomeController.php │ │ ├── MainController.php │ │ ├── Notice │ │ │ └── NoticeController.php │ │ ├── TaskController.php │ │ ├── User │ │ │ ├── ChangePassword.php │ │ │ ├── ChangeProfile.php │ │ │ ├── GetPresentUsersByDate.php │ │ │ └── UserController.php │ │ └── WelcomeController.php │ ├── Kernel.php │ ├── Middleware │ │ ├── Authenticate.php │ │ ├── RedirectIfAuthenticated.php │ │ └── VerifyCsrfToken.php │ ├── Requests │ │ ├── Attendance.php │ │ ├── ChangePasswordRequest.php │ │ ├── EditProfileRequest.php │ │ ├── FormRequest.php │ │ ├── LeaveRequest.php │ │ ├── ReportRequest.php │ │ ├── Request.php │ │ ├── TaskRequest.php │ │ ├── UserRequest.php │ │ └── ViewEmpAttendance.php │ └── routes.php ├── Leave.php ├── Notice.php ├── Oms │ ├── Attendance │ │ ├── Manager.php │ │ └── Models │ │ │ └── Attendance.php │ ├── Complaint │ │ ├── Exceptions │ │ │ └── ComplaintNotFoundException.php │ │ ├── Manager.php │ │ └── Models │ │ │ └── Complaint.php │ ├── Core │ │ ├── Services │ │ │ └── DateRange.php │ │ └── Traits │ │ │ └── NameAccessor.php │ ├── Notice │ │ ├── Exceptions │ │ │ ├── NoticeNotDeletedException.php │ │ │ └── NoticeNotFoundException.php │ │ ├── Manager.php │ │ ├── Model │ │ │ └── Notice.php │ │ └── Queries │ │ │ └── ListNotices.php │ ├── Task │ │ ├── Exceptions │ │ │ └── TaskNotFoundException.php │ │ ├── Manager.php │ │ ├── Models │ │ │ └── Task.php │ │ └── Requests │ │ │ └── TaskRequest.php │ └── User │ │ ├── Exceptions │ │ └── UserNotFoundException.php │ │ ├── Manager.php │ │ ├── Models │ │ ├── User.php │ │ └── UserProfile.php │ │ └── Requests │ │ └── UserRequest.php ├── Providers │ ├── AppServiceProvider.php │ ├── BusServiceProvider.php │ ├── ConfigServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── Repository │ ├── DateRange.php │ └── NoticeRepository.php ├── Services │ └── Registrar.php ├── Task.php ├── User.php └── UserProfile.php ├── artisan ├── bootstrap ├── app.php ├── autoload.php └── cache │ ├── packages.php │ ├── services.json │ └── services.php ├── composer.json ├── composer.lock ├── config ├── app.php ├── auth.php ├── cache.php ├── compile.php ├── database.php ├── filesystems.php ├── mail.php ├── queue.php ├── services.php ├── session.php └── view.php ├── database ├── .gitignore ├── migrations │ ├── .gitkeep │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2015_06_30_060045_create_user_profiles_table.php │ ├── 2015_06_30_060349_create_tasks_table.php │ ├── 2015_06_30_060615_user_task.php │ ├── 2015_06_30_060920_create_attendances_table.php │ ├── 2015_06_30_061135_create_leaves_table.php │ ├── 2015_07_01_090115_create_notices_table.php │ ├── 2015_07_10_074038_create_complaints_table.php │ └── 2018_04_28_140408_alter_table_user_profiles_make_all_fields_nullable.php └── seeds │ ├── .gitkeep │ └── DatabaseSeeder.php ├── gulpfile.js ├── package.json ├── phpspec.yml ├── phpunit.xml ├── public ├── .htaccess ├── css │ ├── app.css │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── custom.css │ └── jquery-ui.min.css ├── favicon.ico ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── images │ ├── complaint.gif │ ├── office.png │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ ├── ui-bg_flat_10_000000_40x100.png │ ├── ui-bg_glass_100_f6f6f6_1x400.png │ ├── ui-bg_glass_100_fdf5ce_1x400.png │ ├── ui-bg_glass_65_ffffff_1x400.png │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png │ ├── ui-icons_222222_256x240.png │ ├── ui-icons_228ef1_256x240.png │ ├── ui-icons_ef8c08_256x240.png │ ├── ui-icons_ffd27a_256x240.png │ └── ui-icons_ffffff_256x240.png ├── img │ ├── 10348.jpg │ ├── 18457.png │ ├── 30100.png │ ├── 34059.jpg │ ├── 53167.jpg │ ├── 56165.jpg │ ├── 59204.jpg │ ├── 72190.jpg │ ├── 72583.jpg │ ├── 79744.png │ ├── 80236.png │ ├── 85245.jpg │ ├── 88990.jpg │ ├── 92567.png │ ├── 98669.jpeg │ ├── UserGroup.png │ ├── bg.jpg │ ├── eco.png │ ├── headerLogo.png │ ├── office.jpeg │ ├── oms.png │ ├── oms.psd │ ├── result.png │ ├── tasks.png │ ├── things-logo.jpg │ └── user.bmp ├── index.php ├── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── custom.js │ ├── jquery-1.11.3.min.js │ ├── jquery-ui.min.js │ └── npm.js └── robots.txt ├── readme.md ├── resources ├── assets │ └── less │ │ ├── app.less │ │ └── bootstrap │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ ├── alerts.less │ │ ├── background-variant.less │ │ ├── border-radius.less │ │ ├── buttons.less │ │ ├── center-block.less │ │ ├── clearfix.less │ │ ├── forms.less │ │ ├── gradients.less │ │ ├── grid-framework.less │ │ ├── grid.less │ │ ├── hide-text.less │ │ ├── image.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── nav-divider.less │ │ ├── nav-vertical-align.less │ │ ├── opacity.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── progress-bar.less │ │ ├── reset-filter.less │ │ ├── resize.less │ │ ├── responsive-visibility.less │ │ ├── size.less │ │ ├── tab-focus.less │ │ ├── table-row.less │ │ ├── text-emphasis.less │ │ ├── text-overflow.less │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less ├── lang │ └── en │ │ ├── pagination.php │ │ ├── passwords.php │ │ └── validation.php └── views │ ├── app.blade.php │ ├── auth │ ├── login.blade.php │ ├── password.blade.php │ ├── register.blade.php │ └── reset.blade.php │ ├── emails │ └── password.blade.php │ ├── errors │ └── 503.blade.php │ ├── home.blade.php │ ├── oms │ ├── index.blade.php │ ├── master.blade.php │ └── pages │ │ ├── attendance.blade.php │ │ ├── complaints │ │ ├── index.blade.php │ │ └── show.blade.php │ │ ├── dashboard.blade.php │ │ ├── editprofile.blade.php │ │ ├── leave.blade.php │ │ ├── login.blade.php │ │ ├── notices │ │ ├── create.blade.php │ │ ├── index.blade.php │ │ └── show.blade.php │ │ ├── profile.blade.php │ │ ├── report.blade.php │ │ ├── tasks.blade.php │ │ └── user.blade.php │ ├── vendor │ └── .gitkeep │ └── welcome.blade.php ├── routes ├── api.php └── web.php ├── server.php ├── storage ├── app │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore └── tests ├── ExampleTest.php └── TestCase.php /.env.example: -------------------------------------------------------------------------------- 1 | APP_ENV=local 2 | APP_DEBUG=true 3 | APP_KEY=SomeRandomString 4 | 5 | DB_HOST=localhost 6 | DB_DATABASE=homestead 7 | DB_USERNAME=homestead 8 | DB_PASSWORD=secret 9 | 10 | CACHE_DRIVER=file 11 | SESSION_DRIVER=file 12 | QUEUE_DRIVER=sync 13 | 14 | MAIL_DRIVER=smtp 15 | MAIL_HOST=mailtrap.io 16 | MAIL_PORT=2525 17 | MAIL_USERNAME=null 18 | MAIL_PASSWORD=null 19 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.less linguist-vendored 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | /node_modules 3 | .env 4 | /.idea/ 5 | /public 6 | -------------------------------------------------------------------------------- /app/Attendance.php: -------------------------------------------------------------------------------- 1 | comment(PHP_EOL.Inspiring::quote().PHP_EOL); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire') 26 | ->hourly(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/Events/Event.php: -------------------------------------------------------------------------------- 1 | attendanceManager = $attendanceManager; 28 | } 29 | 30 | /** 31 | * @return $this 32 | */ 33 | public function index() 34 | { 35 | $attendances = $this->attendanceManager->all(); 36 | return view('oms.pages.attendance')->with('result', $attendances); 37 | } 38 | 39 | /** 40 | * @param Request $request 41 | * @return \Illuminate\Http\RedirectResponse 42 | */ 43 | public function store(Request $request) 44 | { 45 | $attendanceDetails = $request->validate([ 46 | 'empName' => 'required', 47 | 'date' => 'required|date' 48 | ]); 49 | 50 | $this->attendanceManager->create($attendanceDetails); 51 | Session::flash('attendance', 'Successfully performed attendance'); 52 | return redirect()->intended('/attendances'); 53 | } 54 | } -------------------------------------------------------------------------------- /app/Http/Controllers/Attendance/GetByDateController.php: -------------------------------------------------------------------------------- 1 | validate([ 14 | 'date' => 'required|date' 15 | ]); 16 | [$var, $att] = $attendanceManager->getByDate($attendanceDetails); 17 | return view('oms.pages.attendance')->with('result', $var)->with('att', $att); 18 | } 19 | } -------------------------------------------------------------------------------- /app/Http/Controllers/Attendance/GetByMonthAndYearForUser.php: -------------------------------------------------------------------------------- 1 | validate([ 14 | 'year' => 'required', 15 | 'month' => 'required' 16 | ]); 17 | 18 | $attendance = $attendanceManager->getByMonthAndYearForUser($request->user(), $dateDetails); 19 | return view('oms.pages.attendance')->with('empattendance', $attendance); 20 | } 21 | } -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/AuthController.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 33 | $this->registrar = $registrar; 34 | 35 | $this->middleware('guest', ['except' => 'getLogout']); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/PasswordController.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 33 | $this->passwords = $passwords; 34 | 35 | $this->middleware('guest'); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/Http/Controllers/AuthController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 11 | } 12 | } -------------------------------------------------------------------------------- /app/Http/Controllers/ComplaintController.php: -------------------------------------------------------------------------------- 1 | complaintManager = $complaintManager; 15 | } 16 | 17 | /** 18 | * Display a listing of the resource. 19 | * 20 | * @return Response 21 | */ 22 | public function index() 23 | { 24 | $complaints = $this->complaintManager->all(); 25 | return view('oms.pages.complaints.index')->with('complaints', $complaints); 26 | } 27 | 28 | /** 29 | * Show the form for creating a new resource. 30 | * 31 | * @return Response 32 | */ 33 | public function create() 34 | { 35 | // 36 | } 37 | 38 | /** 39 | * Store a newly created resource in storage. 40 | * 41 | * @return Response 42 | */ 43 | public function store(Request $request) 44 | { 45 | $complaintDetails = $request->validate([ 46 | 'complaint' => 'required' 47 | ]); 48 | $this->complaintManager->create($complaintDetails, $request->user()); 49 | Session::flash('notice', 'Successsfully reported Complaint'); 50 | 51 | return redirect()->back(); 52 | } 53 | 54 | /** 55 | * Display the specified resource. 56 | * 57 | * @param int $id 58 | * @return Response 59 | */ 60 | public function show($id) 61 | { 62 | $complaint = $this->complaintManager->getDetail($id); 63 | return view('oms.pages.complaints.show', compact('complaint')); 64 | } 65 | 66 | /** 67 | * Remove the specified resource from storage. 68 | * 69 | * @param int $id 70 | * @return Response 71 | */ 72 | public function destroy($id) 73 | { 74 | $complaint = $this->complaintManager->find($id); 75 | $this->complaintManager->delete($complaint); 76 | Session::flash('notice', 'Successsfully deleted Complaint'); 77 | 78 | return redirect('/complaints'); 79 | } 80 | 81 | } 82 | -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 15 | } 16 | /** 17 | * Display a listing of the resource. 18 | * 19 | * @return Response 20 | */ 21 | public function index() 22 | { 23 | return view('oms.pages.login'); 24 | } 25 | 26 | 27 | 28 | public function loginprocess(Requests\FormRequest $formRequest){ 29 | 30 | $attempt = Auth::attempt(array( 31 | 'username' => $formRequest['username'], 32 | 'password' => $formRequest['password'], 33 | 'designation' => $formRequest['designation'] 34 | )); 35 | 36 | if($attempt){ 37 | return Redirect::to('/dashboard'); 38 | }else{ 39 | \Session::flash('error','Invalid username or password'); 40 | return Redirect::to('/'); 41 | } 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/Http/Controllers/Notice/NoticeController.php: -------------------------------------------------------------------------------- 1 | notice = $notice; 29 | } 30 | 31 | /** 32 | * @param ListNotices $listNotices 33 | * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 34 | */ 35 | public function index(ListNotices $listNotices) 36 | { 37 | $notices = $listNotices->all(); 38 | return view('oms.pages.notices.index', compact('notices')); 39 | } 40 | 41 | public function create() 42 | { 43 | return view('oms.pages.notices.create'); 44 | } 45 | 46 | public function store(Request $request) 47 | { 48 | $noticeDetail = $request->validate(['notice' => 'required']); 49 | $noticeDetail['user_id'] = $request->user()->id; 50 | $this->notice->create($noticeDetail); 51 | 52 | return redirect()->route('notices.index'); 53 | } 54 | 55 | /** 56 | * @param $id 57 | * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 58 | */ 59 | public function show($id) 60 | { 61 | $notice = $this->notice->getDetail($id); 62 | return view('oms.pages.notices.show', compact('notice')); 63 | } 64 | 65 | /** 66 | * @param $id 67 | * @return \Illuminate\Http\RedirectResponse 68 | */ 69 | public function destroy($id) 70 | { 71 | $notice = $this->notice->find($id); 72 | $this->notice->delete($notice); 73 | 74 | return redirect()->route('notices.index'); 75 | } 76 | } -------------------------------------------------------------------------------- /app/Http/Controllers/TaskController.php: -------------------------------------------------------------------------------- 1 | taskManager = $taskManager; 46 | $this->userManager = $userManager; 47 | $this->auth = $auth; 48 | } 49 | 50 | /** 51 | * @return $this 52 | */ 53 | public function index() 54 | { 55 | $var = array(); 56 | $result = $this->userManager->getByDesignation(User::EMPLOYEE); 57 | $tasks = $this->taskManager->all(); 58 | foreach($tasks as $task){ 59 | $users = $task->users()->get(); 60 | foreach($users as $user){ 61 | if($user->id == $this->auth->id()) 62 | array_push($var,$task); 63 | } 64 | } 65 | 66 | return view('oms.pages.tasks') 67 | ->with('result',$result) 68 | ->with('task',$tasks) 69 | ->with('empTask',$var); 70 | } 71 | 72 | public function store(TaskRequest $request) 73 | { 74 | if ($this->taskManager->create($request->all())) { 75 | Session::flash('notice','Task Assigned'); 76 | return Redirect::back(); 77 | } 78 | 79 | Session::flash('notice','Certain User are Absent'); 80 | return Redirect::back()->withInput(); 81 | } 82 | 83 | public function destroy($id) 84 | { 85 | $task = $this->taskManager->find($id); 86 | $this->taskManager->delete($task); 87 | Session::flash('notice','Task deleted successfully.'); 88 | return Redirect::back(); 89 | } 90 | } -------------------------------------------------------------------------------- /app/Http/Controllers/User/ChangePassword.php: -------------------------------------------------------------------------------- 1 | validate([ 17 | 'oldPassword' => 'required', 18 | 'newPassword' => 'required|min:6', 19 | 'confirmPassword' => 'required|same:newPassword' 20 | ]); 21 | 22 | $user = $userManager->find($request->user()->id); 23 | 24 | $checkPassword = Auth::attempt(array( 25 | 'username' => $request->user()->username, 26 | 'password' => $passwordDetails['oldPassword'] 27 | )); 28 | 29 | if ($checkPassword) { 30 | $user->password = Hash::make($passwordDetails['newPassword']); 31 | if ($user->save()) { 32 | Session::flash('notice', 'Successfully changed password'); 33 | return redirect()->back()->withInput(); 34 | } else { 35 | Session::flash('notice', 'Cannot change password'); 36 | return redirect()->back()->withInput(); 37 | } 38 | } else { 39 | Session::flash('notice', 'Incorrect Password'); 40 | return redirect()->back()->withInput(); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /app/Http/Controllers/User/ChangeProfile.php: -------------------------------------------------------------------------------- 1 | find($auth->user()->id); 17 | $query = $userProfile->join('users', 'users.id', '=', 'user_profiles.user_id') 18 | ->where('user_profiles.user_id', $user->id) 19 | ->get(); 20 | return view('oms.pages.editprofile')->with('user', $user)->with('profile', $query); 21 | } 22 | 23 | public function update(Request $request, UserManager $userManager) 24 | { 25 | $this->validate($request, [ 26 | 'firstName' => 'required|min:3|max:40', 27 | 'lastName' => 'required|min:3|max:40', 28 | 'email' => 'required|min:3|max:40', 29 | 'address' => 'required|min:3|max:40', 30 | 'contact' => 'required|min:3|max:40', 31 | ]); 32 | 33 | $user = $userManager->find($request->user()->id); 34 | $userDetails = $request->all(); 35 | $userProfileDetails = $request->only(['address', 'contact', 'gender']); 36 | $user->fill($userDetails); 37 | 38 | if ($user->save()) { 39 | $profile = $user->profile ?? new UserProfile(); 40 | 41 | if (!empty($userDetails['profile_picture']) && $userDetails['profile_picture']->isValid()) { 42 | $destination = 'img'; 43 | $ext = $userDetails['profile_picture']->getClientOriginalExtension(); 44 | $filename = rand(1111, 99999) . '.' . $ext; 45 | $userProfileDetails['profile_picture'] = $destination . '/' . $filename; 46 | $userDetails['profile_picture']->move($destination, $filename); 47 | } 48 | 49 | $profile->fill($userProfileDetails); 50 | $profile->forceFill(['user_id' => $user->id]); 51 | if ($profile->save()) { 52 | Session::flash('notice', 'Successfully updated profile.'); 53 | return redirect()->back(); 54 | } 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /app/Http/Controllers/User/GetPresentUsersByDate.php: -------------------------------------------------------------------------------- 1 | validate([ 24 | 'date' => 'required|date' 25 | ]); 26 | 27 | return new JsonResponse($userManager->getPresentUsersByDate($details)); 28 | } 29 | } -------------------------------------------------------------------------------- /app/Http/Controllers/User/UserController.php: -------------------------------------------------------------------------------- 1 | userManager = $userManager; 30 | } 31 | 32 | /** 33 | * @return $this 34 | */ 35 | public function index() 36 | { 37 | $result = $this->userManager->all(); 38 | return view('oms.pages.user')->with('result', $result); 39 | } 40 | 41 | /** 42 | * @param UserRequest $request 43 | * @return mixed 44 | */ 45 | public function store(UserRequest $request) 46 | { 47 | $this->userManager->create($request->all()); 48 | Session::flash('notice', 'User successfully created.'); 49 | return Redirect::to('/users'); 50 | } 51 | 52 | /** 53 | * @param $id 54 | * @return mixed 55 | */ 56 | public function destroy($id) 57 | { 58 | $user = $this->userManager->find($id); 59 | $this->userManager->delete($user); 60 | 61 | Session::flash('notice', 'User successfully deleted.'); 62 | return Redirect::to('/users'); 63 | } 64 | } -------------------------------------------------------------------------------- /app/Http/Controllers/WelcomeController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 24 | } 25 | 26 | /** 27 | * Show the application welcome screen to the user. 28 | * 29 | * @return Response 30 | */ 31 | public function index() 32 | { 33 | return view('welcome'); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/Http/Kernel.php: -------------------------------------------------------------------------------- 1 | [ 29 | SubstituteBindings::class, 30 | ], 31 | 32 | 'api' => [ 33 | 'throttle:60,1', 34 | 'bindings', 35 | ], 36 | ]; 37 | 38 | /** 39 | * The application's route middleware. 40 | * 41 | * @var array 42 | */ 43 | protected $routeMiddleware = [ 44 | 'auth' => 'App\Http\Middleware\Authenticate', 45 | 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth', 46 | 'guest' => 'App\Http\Middleware\RedirectIfAuthenticated', 47 | ]; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 24 | } 25 | 26 | /** 27 | * Handle an incoming request. 28 | * 29 | * @param \Illuminate\Http\Request $request 30 | * @param \Closure $next 31 | * @return mixed 32 | */ 33 | public function handle($request, Closure $next) 34 | { 35 | // if ($this->auth->guest()) 36 | // { 37 | // if ($request->ajax()) 38 | // { 39 | // return response('Unauthorized.', 401); 40 | // } 41 | // else 42 | // { 43 | // return redirect()->guest('auth/login'); 44 | // } 45 | // } 46 | 47 | if ($this->auth->guest()){ 48 | return redirect()->guest('/'); 49 | }else{ 50 | return $next($request); 51 | } 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 25 | } 26 | 27 | /** 28 | * Handle an incoming request. 29 | * 30 | * @param \Illuminate\Http\Request $request 31 | * @param \Closure $next 32 | * @return mixed 33 | */ 34 | public function handle($request, Closure $next) 35 | { 36 | if ($this->auth->check()) 37 | { 38 | return new RedirectResponse(url('/dashboard')); 39 | } 40 | 41 | return $next($request); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 'required' 26 | ]; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/Http/Requests/ChangePasswordRequest.php: -------------------------------------------------------------------------------- 1 | 'required', 26 | 'newPassword' => 'required', 27 | 'confirmPassword' => 'required', 28 | ]; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/Http/Requests/EditProfileRequest.php: -------------------------------------------------------------------------------- 1 | 'required|min:3|max:40', 26 | 'lastName' => 'required|min:3|max:40', 27 | 'email' => 'required|min:3|max:40', 28 | 'address' => 'required|min:3|max:40', 29 | 'contact' => 'required|min:3|max:40', 30 | ]; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/Http/Requests/FormRequest.php: -------------------------------------------------------------------------------- 1 | 'min:2|required', 26 | 'password' => 'min:2|required' 27 | ]; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/Http/Requests/LeaveRequest.php: -------------------------------------------------------------------------------- 1 | 'required', 26 | 'endingDate' => 'required', 27 | 'reason' => 'required', 28 | ]; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/Http/Requests/ReportRequest.php: -------------------------------------------------------------------------------- 1 | 'required|min:1', 26 | ]; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/Http/Requests/Request.php: -------------------------------------------------------------------------------- 1 | 'required|min:3', 26 | // 'taskDescription' => 'required|3', 27 | // 'startingDate' => 'required', 28 | // 'endingDate' => 'required', 29 | // 'slug' => 'required' 30 | ]; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/Http/Requests/UserRequest.php: -------------------------------------------------------------------------------- 1 | 'required|min:5|max:40', 26 | // 'lastName' => 'required|min:5|max:40', 27 | // 'email' => 'required|min:5|max:40', 28 | ]; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/Http/Requests/ViewEmpAttendance.php: -------------------------------------------------------------------------------- 1 | 'required' 26 | ]; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/Http/routes.php: -------------------------------------------------------------------------------- 1 | 'guest']); 6 | Route::post('loginprocess','MainController@loginprocess'); 7 | Route::get('logout','HomeController@logout'); 8 | 9 | 10 | Route::get('/dashboard', 'DashboardController'); 11 | 12 | Route::resource('tasks', 'TaskController'); 13 | 14 | Route::get('api/users/present-by-date','User\GetPresentUsersByDate'); 15 | Route::post('profile/change-password','User\ChangePassword'); 16 | Route::post('profile/update','User\ChangeProfile@update'); 17 | Route::get('profile/edit','User\ChangeProfile@index'); 18 | Route::resource('users','User\UserController'); 19 | 20 | Route::resource('complaints','ComplaintController'); 21 | 22 | Route::post('attendances/get-by-month-and-year', 'Attendance\GetByMonthAndYearForUser'); 23 | Route::post('attendances/get-by-date', 'Attendance\GetByDateController'); 24 | Route::resource('attendances','Attendance\AttendanceController'); 25 | 26 | Route::get('report','HomeController@report'); 27 | Route::post('viewreport','HomeController@viewreport'); 28 | 29 | //Route::get('broadcast','HomeController@broadcast'); 30 | //Route::get('notice/{id}','HomeController@notice'); 31 | //Route::get('noticehistory','HomeController@noticehistory'); 32 | //Route::get('deletenotice/{id}','HomeController@deletenotice'); 33 | 34 | Route::resource('notices', 'Notice\NoticeController'); 35 | 36 | Route::get('leave','HomeController@leave'); 37 | Route::post('makeleave','HomeController@makeleave'); 38 | 39 | Route::get('editprofile','HomeController@editprofile'); 40 | Route::post('editprocess','HomeController@editprocess'); 41 | Route::post('changepassword','HomeController@changePassword'); 42 | 43 | Route::post('broadcastprocess','HomeController@broadcastprocess'); 44 | 45 | 46 | Route::post('addusers','HomeController@addusers'); 47 | Route::get('edituser/{id}','HomeController@edituser'); 48 | Route::get('deleteuser/{id}','HomeController@deleteuser'); 49 | Route::get('/a','HomeController@ajax_users'); 50 | Route::get('/b','HomeController@select_user'); 51 | Route::get('/{username}','HomeController@profile'); 52 | -------------------------------------------------------------------------------- /app/Leave.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\User','user_id'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/Notice.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\User','user_id'); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/Oms/Attendance/Models/Attendance.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class, 'user_id'); 30 | } 31 | 32 | /** 33 | * @param User $user 34 | * @return Model 35 | */ 36 | public function associateUser(User $user) 37 | { 38 | return $this->user()->associate($user); 39 | } 40 | } -------------------------------------------------------------------------------- /app/Oms/Complaint/Exceptions/ComplaintNotFoundException.php: -------------------------------------------------------------------------------- 1 | complaint = $complaint; 27 | } 28 | 29 | /** 30 | * @param $id 31 | * @return mixed 32 | */ 33 | public function find($id) 34 | { 35 | $complaint = $this->complaint->find($id); 36 | throw_if(!$complaint, new ComplaintNotFoundException()); 37 | return $complaint; 38 | } 39 | 40 | /** 41 | * @param $id 42 | * @return \Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model|null|static|static[] 43 | */ 44 | public function getDetail($id) 45 | { 46 | return $this->complaint->with('user')->find($id); 47 | } 48 | 49 | /** 50 | * @return \Illuminate\Database\Eloquent\Collection|static[] 51 | */ 52 | public function all() 53 | { 54 | return $this->complaint->with('user')->get(); 55 | } 56 | 57 | /** 58 | * @param array $complaintDetails 59 | * @param User $user 60 | * @return bool 61 | */ 62 | public function create(array $complaintDetails, User $user) 63 | { 64 | return $this->complaint->fill($complaintDetails) 65 | ->associateUser($user) 66 | ->save(); 67 | } 68 | 69 | /** 70 | * @param Complaint $complaint 71 | * @return bool|null 72 | */ 73 | public function delete(Complaint $complaint) 74 | { 75 | return $complaint->delete(); 76 | } 77 | } -------------------------------------------------------------------------------- /app/Oms/Complaint/Models/Complaint.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class, 'user_id'); 31 | } 32 | 33 | /** 34 | * @param User $user 35 | * @return Model 36 | */ 37 | public function associateUser(User $user) 38 | { 39 | return $this->user()->associate($user); 40 | } 41 | } -------------------------------------------------------------------------------- /app/Oms/Core/Services/DateRange.php: -------------------------------------------------------------------------------- 1 | getAttribute('first_name') . ' ' . 10 | $this->getAttribute('middle_name') ? $this->getAttribute('middle_name') . ' ' : '' . 11 | $this->getAttribute('last_name'); 12 | } 13 | } -------------------------------------------------------------------------------- /app/Oms/Notice/Exceptions/NoticeNotDeletedException.php: -------------------------------------------------------------------------------- 1 | notice = $notice; 28 | } 29 | 30 | /** 31 | * @param $id 32 | * @return mixed 33 | */ 34 | public function getDetail($id) 35 | { 36 | $notice = $this->notice->join('users', 'users.id', 'notices.user_id') 37 | ->where('notices.id', $id) 38 | ->select( 39 | 'notices.id', 40 | 'notices.notice' 41 | ) 42 | ->first(); 43 | 44 | throw_if(!$notice, new NoticeNotFoundException( 45 | sprintf('Notice with id %s not found.', $id) 46 | )); 47 | 48 | return $notice; 49 | } 50 | 51 | /** 52 | * @param $id 53 | * @return mixed 54 | */ 55 | public function find($id) 56 | { 57 | $notice = $this->notice->find($id); 58 | throw_if(!$notice, new NoticeNotFoundException( 59 | sprintf('Notice with id %s not found.', $id) 60 | )); 61 | 62 | return $notice; 63 | } 64 | 65 | public function create(array $noticeDetails) 66 | { 67 | return $this->notice->fill($noticeDetails) 68 | ->forceFill(['user_id' => $noticeDetails['user_id']]) 69 | ->save(); 70 | } 71 | 72 | /** 73 | * @param Notice $notice 74 | * @return bool 75 | */ 76 | public function delete(Notice $notice) 77 | { 78 | throw_if(!$notice->delete(), new NoticeNotDeletedException( 79 | sprintf('Notice with id %s not deleted.', $notice->id) 80 | )); 81 | 82 | return true; 83 | } 84 | } -------------------------------------------------------------------------------- /app/Oms/Notice/Model/Notice.php: -------------------------------------------------------------------------------- 1 | notice = $notice; 26 | } 27 | 28 | /** 29 | * @return mixed 30 | */ 31 | public function baseQuery() 32 | { 33 | return $this->notice->join('users', 'users.id', 'notices.user_id') 34 | ->select( 35 | 'notices.id', 36 | 'notices.notice', 37 | 'notices.created_at', 38 | 'users.id as user_id', 39 | 'users.first_name', 40 | 'users.middle_name', 41 | 'users.last_name' 42 | ); 43 | } 44 | 45 | /** 46 | * @return mixed 47 | */ 48 | public function all() 49 | { 50 | return $this->baseQuery()->get(); 51 | } 52 | } -------------------------------------------------------------------------------- /app/Oms/Task/Exceptions/TaskNotFoundException.php: -------------------------------------------------------------------------------- 1 | task = $task; 36 | $this->dateRange = $dateRange; 37 | $this->userManager = $userManager; 38 | } 39 | 40 | /** 41 | * @param $id 42 | * @return mixed 43 | */ 44 | public function find($id) 45 | { 46 | $task = $this->task->find($id); 47 | throw_if(!$task, new TaskNotFoundException(sprintf('Task with id %s not found.', $id))); 48 | 49 | return $task; 50 | } 51 | 52 | /** 53 | * @return \Illuminate\Database\Eloquent\Collection|static[] 54 | */ 55 | public function all() 56 | { 57 | return $this->task->all(); 58 | } 59 | 60 | public function create(array $taskDetails) 61 | { 62 | $taskDetails['assigned_date'] = Carbon::parse($taskDetails['assigned_date']); 63 | $taskDetails['completion_date'] = Carbon::parse($taskDetails['completion_date']); 64 | $task = $this->task->newInstance(); 65 | $task->fill($taskDetails); 66 | $taskRange = $this->dateRange->date_range( 67 | $taskDetails['assigned_date'], 68 | $taskDetails['completion_date'] 69 | ); 70 | $empNames = $taskDetails['emp_name']; 71 | $leave_user = array(); //for users in leave 72 | $absentees = []; 73 | $notLeave = []; 74 | foreach ($empNames as $empName) { 75 | $user = $this->userManager->find($empName); 76 | $leaves = $user->leaves()->get(); //User That are in Leave 77 | if ($leaves->isEmpty()) { 78 | array_push($notLeave, $user); 79 | } else { 80 | array_push($leave_user, $user); 81 | } 82 | } 83 | foreach ($leaves as $leave) { 84 | $start_date = $leave->start_date; 85 | $end_date = $leave->end_date; 86 | $leaveRange = $this->dateRange->date_range($start_date, $end_date); 87 | if ($this->dateRange->date_diff_task_leave($taskRange, $leaveRange)) { 88 | array_push($absentees, $user->id); 89 | break; 90 | } 91 | } 92 | if (!count($absentees)) { 93 | if ($task->save()) { 94 | $task->users()->attach($empNames); 95 | return true; 96 | } 97 | } 98 | return false; 99 | } 100 | 101 | public function delete(Task $task) 102 | { 103 | return $task->delete(); 104 | } 105 | } -------------------------------------------------------------------------------- /app/Oms/Task/Models/Task.php: -------------------------------------------------------------------------------- 1 | belongsToMany(User::class,'user_task','task_id','user_id'); 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /app/Oms/Task/Requests/TaskRequest.php: -------------------------------------------------------------------------------- 1 | 'required|min:3', 28 | 'task_description' => 'required', 29 | 'assigned_date' => 'required|date', 30 | 'completion_date' => 'required|date', 31 | 'slug' => 'required', 32 | 'emp_name' => 'required' 33 | ]; 34 | } 35 | } -------------------------------------------------------------------------------- /app/Oms/User/Exceptions/UserNotFoundException.php: -------------------------------------------------------------------------------- 1 | hasMany('App\Notice'); 58 | } 59 | 60 | public function tasks() 61 | { 62 | return $this->belongsToMany('App\Task', 'user_task', 'user_id', 'task_id'); 63 | } 64 | 65 | public function profile() 66 | { 67 | return $this->hasOne(UserProfile::class, 'user_id'); 68 | } 69 | 70 | public function leaves() 71 | { 72 | return $this->hasMany('App\Leave', 'user_id'); 73 | } 74 | 75 | } 76 | 77 | -------------------------------------------------------------------------------- /app/Oms/User/Models/UserProfile.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\User', 'user_id'); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /app/Oms/User/Requests/UserRequest.php: -------------------------------------------------------------------------------- 1 | 'required', 29 | 'last_name' => 'required', 30 | 'email' => 'required|email|unique:users', 31 | 'joined_date' => 'required|date', 32 | 'designation' => 'required|in:'.implode(',', User::DESIGNATIONS), 33 | ]; 34 | } 35 | } -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | get(5)); 18 | } 19 | 20 | /** 21 | * Register any application services. 22 | * 23 | * This service provider is a great spot to register your various container 24 | * bindings with the application. As you can see, we are registering our 25 | * "Registrar" implementation here. You can add your own bindings too! 26 | * 27 | * @return void 28 | */ 29 | public function register() 30 | { 31 | $this->app->bind( 32 | 'Illuminate\Contracts\Auth\Registrar', 33 | 'App\Services\Registrar' 34 | ); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /app/Providers/BusServiceProvider.php: -------------------------------------------------------------------------------- 1 | mapUsing(function($command) 17 | { 18 | return Dispatcher::simpleMapping( 19 | $command, 'App\Commands', 'App\Handlers\Commands' 20 | ); 21 | }); 22 | } 23 | 24 | /** 25 | * Register any application services. 26 | * 27 | * @return void 28 | */ 29 | public function register() 30 | { 31 | // 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/Providers/ConfigServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 15 | 'EventListener', 16 | ], 17 | ]; 18 | 19 | /** 20 | * Register any other events for your application. 21 | * 22 | * @return void 23 | */ 24 | public function boot() 25 | { 26 | parent::boot(); 27 | 28 | // 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | mapApiRoutes(); 39 | 40 | $this->mapWebRoutes(); 41 | } 42 | 43 | /** 44 | * Define the "web" routes for the application. 45 | * 46 | * These routes all receive session state, CSRF protection, etc. 47 | * 48 | * @return void 49 | */ 50 | protected function mapWebRoutes() 51 | { 52 | Route::group([ 53 | 'middleware' => 'web', 54 | 'namespace' => $this->namespace, 55 | ], function ($router) { 56 | require base_path('routes/web.php'); 57 | }); 58 | } 59 | 60 | /** 61 | * Define the "api" routes for the application. 62 | * 63 | * These routes are typically stateless. 64 | * 65 | * @return void 66 | */ 67 | protected function mapApiRoutes() 68 | { 69 | Route::group([ 70 | 'middleware' => 'api', 71 | 'namespace' => $this->namespace, 72 | 'prefix' => 'api', 73 | ], function ($router) { 74 | require base_path('routes/api.php'); 75 | }); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /app/Repository/DateRange.php: -------------------------------------------------------------------------------- 1 | with('users'); 18 | 19 | if ($limit) { 20 | $query->take($limit); 21 | } 22 | 23 | return $query->get(); 24 | } 25 | } -------------------------------------------------------------------------------- /app/Services/Registrar.php: -------------------------------------------------------------------------------- 1 | 'required|max:255', 19 | 'email' => 'required|email|max:255|unique:users', 20 | 'password' => 'required|confirmed|min:6', 21 | ]); 22 | } 23 | 24 | /** 25 | * Create a new user instance after a valid registration. 26 | * 27 | * @param array $data 28 | * @return User 29 | */ 30 | public function create(array $data) 31 | { 32 | return User::create([ 33 | 'name' => $data['name'], 34 | 'email' => $data['email'], 35 | 'password' => bcrypt($data['password']), 36 | ]); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /app/Task.php: -------------------------------------------------------------------------------- 1 | belongsToMany('App\User','user_task','task_id','user_id'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/User.php: -------------------------------------------------------------------------------- 1 | hasMany('App\Notice'); 41 | } 42 | 43 | public function tasks(){ 44 | return $this->belongsToMany('App\Task','user_task','user_id','task_id'); 45 | } 46 | 47 | public function profile(){ 48 | return $this->hasOne('App\UserProfile','user_id'); 49 | } 50 | public function leaves(){ 51 | return $this->hasMany('App\Leave','user_id'); 52 | } 53 | 54 | } 55 | 56 | -------------------------------------------------------------------------------- /app/UserProfile.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\User','user_id'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /artisan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | make('Illuminate\Contracts\Console\Kernel'); 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 | -------------------------------------------------------------------------------- /bootstrap/app.php: -------------------------------------------------------------------------------- 1 | singleton( 31 | 'Illuminate\Contracts\Http\Kernel', 32 | 'App\Http\Kernel' 33 | ); 34 | 35 | $app->singleton( 36 | 'Illuminate\Contracts\Console\Kernel', 37 | 'App\Console\Kernel' 38 | ); 39 | 40 | $app->singleton( 41 | 'Illuminate\Contracts\Debug\ExceptionHandler', 42 | 'App\Exceptions\Handler' 43 | ); 44 | 45 | /* 46 | |-------------------------------------------------------------------------- 47 | | Return The Application 48 | |-------------------------------------------------------------------------- 49 | | 50 | | This script returns the application instance. The instance is given to 51 | | the calling script so we can separate the building of the instances 52 | | from the actual running of the application and sending responses. 53 | | 54 | */ 55 | 56 | return $app; 57 | -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | 3 | array ( 4 | 'providers' => 5 | array ( 6 | 0 => 'Collective\\Html\\HtmlServiceProvider', 7 | ), 8 | 'aliases' => 9 | array ( 10 | 'Form' => 'Collective\\Html\\FormFacade', 11 | 'Html' => 'Collective\\Html\\HtmlFacade', 12 | ), 13 | ), 14 | ); -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel/laravel", 3 | "description": "The Laravel Framework.", 4 | "keywords": ["framework", "laravel"], 5 | "license": "MIT", 6 | "type": "FreshProject", 7 | "require": { 8 | "laravel/framework": "5.5.*", 9 | "laravelcollective/html": "5.5.*", 10 | "doctrine/dbal": "^2.7" 11 | }, 12 | "require-dev": { 13 | "phpunit/phpunit": "~4.0", 14 | "phpspec/phpspec": "~2.1" 15 | }, 16 | "autoload": { 17 | "classmap": [ 18 | "database" 19 | ], 20 | "psr-4": { 21 | "App\\": "app/" 22 | } 23 | }, 24 | "autoload-dev": { 25 | "classmap": [ 26 | "tests/TestCase.php" 27 | ] 28 | }, 29 | "scripts": { 30 | "post-install-cmd": [ 31 | "php artisan clear-compiled", 32 | "php artisan optimize" 33 | ], 34 | "pre-update-cmd": [ 35 | "php artisan clear-compiled" 36 | ], 37 | "post-update-cmd": [ 38 | "php artisan optimize" 39 | ], 40 | "post-create-project-cmd": [ 41 | "php -r \"copy('.env.example', '.env');\"", 42 | "php artisan key:generate" 43 | ] 44 | }, 45 | "config": { 46 | "preferred-install": "dist" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /config/cache.php: -------------------------------------------------------------------------------- 1 | env('CACHE_DRIVER', 'file'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Cache Stores 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here you may define all of the cache "stores" for your application as 24 | | well as their drivers. You may even define multiple stores for the 25 | | same cache driver to group types of items stored in your caches. 26 | | 27 | */ 28 | 29 | 'stores' => [ 30 | 31 | 'apc' => [ 32 | 'driver' => 'apc' 33 | ], 34 | 35 | 'array' => [ 36 | 'driver' => 'array' 37 | ], 38 | 39 | 'database' => [ 40 | 'driver' => 'database', 41 | 'table' => 'cache', 42 | 'connection' => null, 43 | ], 44 | 45 | 'file' => [ 46 | 'driver' => 'file', 47 | 'path' => storage_path().'/framework/cache', 48 | ], 49 | 50 | 'memcached' => [ 51 | 'driver' => 'memcached', 52 | 'servers' => [ 53 | [ 54 | 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100 55 | ], 56 | ], 57 | ], 58 | 59 | 'redis' => [ 60 | 'driver' => 'redis', 61 | 'connection' => 'default', 62 | ], 63 | 64 | ], 65 | 66 | /* 67 | |-------------------------------------------------------------------------- 68 | | Cache Key Prefix 69 | |-------------------------------------------------------------------------- 70 | | 71 | | When utilizing a RAM based store such as APC or Memcached, there might 72 | | be other applications utilizing the same cache. So, we'll specify a 73 | | value to get prefixed to all our keys so we can avoid collisions. 74 | | 75 | */ 76 | 77 | 'prefix' => 'laravel', 78 | 79 | ]; 80 | -------------------------------------------------------------------------------- /config/compile.php: -------------------------------------------------------------------------------- 1 | [ 17 | 18 | realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'), 19 | realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'), 20 | realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'), 21 | realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'), 22 | realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'), 23 | 24 | ], 25 | 26 | /* 27 | |-------------------------------------------------------------------------- 28 | | Compiled File Providers 29 | |-------------------------------------------------------------------------- 30 | | 31 | | Here you may list service providers which define a "compiles" function 32 | | that returns additional files that should be compiled, providing an 33 | | easy way to get common files from any packages you are utilizing. 34 | | 35 | */ 36 | 37 | 'providers' => [ 38 | // 39 | ], 40 | 41 | ]; 42 | -------------------------------------------------------------------------------- /config/filesystems.php: -------------------------------------------------------------------------------- 1 | 'local', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Default Cloud Filesystem Disk 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Many applications store files both locally and in the cloud. For this 26 | | reason, you may specify a default "cloud" driver here. This driver 27 | | will be bound as the Cloud disk implementation in the container. 28 | | 29 | */ 30 | 31 | 'cloud' => 's3', 32 | 33 | /* 34 | |-------------------------------------------------------------------------- 35 | | Filesystem Disks 36 | |-------------------------------------------------------------------------- 37 | | 38 | | Here you may configure as many filesystem "disks" as you wish, and you 39 | | may even configure multiple disks of the same driver. Defaults have 40 | | been setup for each driver as an example of the required options. 41 | | 42 | */ 43 | 44 | 'disks' => [ 45 | 46 | 'local' => [ 47 | 'driver' => 'local', 48 | 'root' => storage_path().'/app', 49 | ], 50 | 51 | 's3' => [ 52 | 'driver' => 's3', 53 | 'key' => 'your-key', 54 | 'secret' => 'your-secret', 55 | 'region' => 'your-region', 56 | 'bucket' => 'your-bucket', 57 | ], 58 | 59 | 'rackspace' => [ 60 | 'driver' => 'rackspace', 61 | 'username' => 'your-username', 62 | 'key' => 'your-key', 63 | 'container' => 'your-container', 64 | 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', 65 | 'region' => 'IAD', 66 | 'url_type' => 'publicURL' 67 | ], 68 | 69 | ], 70 | 71 | ]; 72 | -------------------------------------------------------------------------------- /config/queue.php: -------------------------------------------------------------------------------- 1 | env('QUEUE_DRIVER', 'sync'), 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | Queue Connections 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Here you may configure the connection information for each server that 27 | | is used by your application. A default configuration has been added 28 | | for each back-end shipped with Laravel. You are free to add more. 29 | | 30 | */ 31 | 32 | 'connections' => [ 33 | 34 | 'sync' => [ 35 | 'driver' => 'sync', 36 | ], 37 | 38 | 'database' => [ 39 | 'driver' => 'database', 40 | 'table' => 'jobs', 41 | 'queue' => 'default', 42 | 'expire' => 60, 43 | ], 44 | 45 | 'beanstalkd' => [ 46 | 'driver' => 'beanstalkd', 47 | 'host' => 'localhost', 48 | 'queue' => 'default', 49 | 'ttr' => 60, 50 | ], 51 | 52 | 'sqs' => [ 53 | 'driver' => 'sqs', 54 | 'key' => 'your-public-key', 55 | 'secret' => 'your-secret-key', 56 | 'queue' => 'your-queue-url', 57 | 'region' => 'us-east-1', 58 | ], 59 | 60 | 'iron' => [ 61 | 'driver' => 'iron', 62 | 'host' => 'mq-aws-us-east-1.iron.io', 63 | 'token' => 'your-token', 64 | 'FreshProject' => 'your-FreshProject-id', 65 | 'queue' => 'your-queue-name', 66 | 'encrypt' => true, 67 | ], 68 | 69 | 'redis' => [ 70 | 'driver' => 'redis', 71 | 'queue' => 'default', 72 | 'expire' => 60, 73 | ], 74 | 75 | ], 76 | 77 | /* 78 | |-------------------------------------------------------------------------- 79 | | Failed Queue Jobs 80 | |-------------------------------------------------------------------------- 81 | | 82 | | These options configure the behavior of failed queue job logging so you 83 | | can control which database and table are used to store the jobs that 84 | | have failed. You may change them to any database / table you wish. 85 | | 86 | */ 87 | 88 | 'failed' => [ 89 | 'database' => 'mysql', 'table' => 'failed_jobs', 90 | ], 91 | 92 | ]; 93 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => '', 19 | 'secret' => '', 20 | ], 21 | 22 | 'mandrill' => [ 23 | 'secret' => '', 24 | ], 25 | 26 | 'ses' => [ 27 | 'key' => '', 28 | 'secret' => '', 29 | 'region' => 'us-east-1', 30 | ], 31 | 32 | 'stripe' => [ 33 | 'model' => 'App\User', 34 | 'key' => '', 35 | 'secret' => '', 36 | ], 37 | 38 | ]; 39 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/migrations/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/database/migrations/.gitkeep -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('first_name'); 19 | $table->string('middle_name'); 20 | $table->string('last_name'); 21 | $table->timestamp('joined_date'); 22 | $table->string('email')->unique(); 23 | $table->string('username')->unique(); 24 | $table->string('password'); 25 | $table->string('designation'); 26 | $table->rememberToken(); 27 | $table->timestamps(); 28 | }); 29 | } 30 | 31 | /** 32 | * Reverse the migrations. 33 | * 34 | * @return void 35 | */ 36 | public function down() 37 | { 38 | Schema::drop('users'); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_resets_table.php: -------------------------------------------------------------------------------- 1 | string('email')->index(); 18 | $table->string('token')->index(); 19 | $table->timestamp('created_at'); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::drop('password_resets'); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2015_06_30_060045_create_user_profiles_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('gender'); 19 | $table->string('address'); 20 | $table->string('contact'); 21 | $table->string('profile_picture'); 22 | $table->integer('user_id')->unsigned(); 23 | $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 24 | $table->timestamps(); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | * 31 | * @return void 32 | */ 33 | public function down() 34 | { 35 | Schema::drop('user_profiles'); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /database/migrations/2015_06_30_060349_create_tasks_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('task_name'); 19 | $table->string('task_description'); 20 | $table->timestamp('assigned_date'); 21 | $table->timestamp('completion_date'); 22 | $table->string('slug'); 23 | $table->timestamps(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::drop('tasks'); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /database/migrations/2015_06_30_060615_user_task.php: -------------------------------------------------------------------------------- 1 | integer('user_id')->unsigned(); 18 | $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 19 | 20 | $table->integer('task_id')->unsigned(); 21 | $table->foreign('task_id')->references('id')->on('tasks')->onUpdate('cascade')->onDelete('cascade'); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | Schema::drop('user_task'); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2015_06_30_060920_create_attendances_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->timestamp('attendance_date'); 19 | $table->integer('presence'); 20 | $table->integer('user_id')->unsigned(); 21 | $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 22 | $table->timestamps(); 23 | }); 24 | } 25 | 26 | /** 27 | * Reverse the migrations. 28 | * 29 | * @return void 30 | */ 31 | public function down() 32 | { 33 | Schema::drop('attendances'); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2015_06_30_061135_create_leaves_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->timestamp('start_date'); 19 | $table->timestamp('end_date'); 20 | $table->string('reason'); 21 | $table->integer('user_id')->unsigned(); 22 | $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 23 | $table->timestamps(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::drop('leaves'); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /database/migrations/2015_07_01_090115_create_notices_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('notice'); 19 | $table->integer('user_id')->unsigned(); 20 | $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 21 | $table->timestamps(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | Schema::drop('notices'); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2015_07_10_074038_create_complaints_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('complaint'); 19 | $table->integer('user_id')->unsigned(); 20 | $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 21 | $table->timestamps(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | Schema::drop('complaints'); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2018_04_28_140408_alter_table_user_profiles_make_all_fields_nullable.php: -------------------------------------------------------------------------------- 1 | string('gender')->nullable()->change(); 18 | $table->string('address')->nullable()->change(); 19 | $table->string('contact')->nullable()->change(); 20 | $table->string('profile_picture')->nullable()->change(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::table('user_profiles', function (Blueprint $table) { 32 | $table->string('profile_picture')->nullable(false)->change(); 33 | $table->string('contact')->nullable(false)->change(); 34 | $table->string('address')->nullable(false)->change(); 35 | $table->string('gender')->nullable(false)->change(); 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /database/seeds/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/database/seeds/.gitkeep -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('UserTableSeeder'); 18 | } 19 | 20 | } 21 | 22 | class UserTableSeeder extends Seeder { 23 | 24 | /** 25 | * Run the database seeds. 26 | * 27 | * @return void 28 | */ 29 | public function run() 30 | { 31 | DB::table('users')->delete(); 32 | 33 | \App\User::create(array( 34 | 'first_name'=>'Sajan', 35 | 'middle_name' => '', 36 | 'last_name' => 'Rajbhandari', 37 | 'joined_date'=> Carbon\Carbon::now(), 38 | 'email'=>'sazanrjb@gmail.com', 39 | 'username'=>'sazanrjb', 40 | 'password'=>\Illuminate\Support\Facades\Hash::make('test123'), 41 | 'designation'=>'Administrator' 42 | )); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var elixir = require('laravel-elixir'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Elixir Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Elixir provides a clean, fluent API for defining some basic Gulp tasks 9 | | for your Laravel application. By default, we are compiling the Less 10 | | file for our application, as well as publishing vendor resources. 11 | | 12 | */ 13 | 14 | elixir(function(mix) { 15 | mix.less('app.less'); 16 | }); 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "devDependencies": { 4 | "gulp": "^3.8.8", 5 | "laravel-elixir": "^1.0.0" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /phpspec.yml: -------------------------------------------------------------------------------- 1 | suites: 2 | main: 3 | namespace: App 4 | psr4_prefix: App 5 | src_path: app -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | ./tests/ 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes... 9 | RewriteRule ^(.*)/$ /$1 [L,R=301] 10 | 11 | # Handle Front Controller... 12 | RewriteCond %{REQUEST_FILENAME} !-d 13 | RewriteCond %{REQUEST_FILENAME} !-f 14 | RewriteRule ^ index.php [L] 15 | 16 | -------------------------------------------------------------------------------- /public/css/custom.css: -------------------------------------------------------------------------------- 1 | body{ 2 | /*background-color: #c0c0c0;*/ 3 | background-color: #848484; 4 | margin-top: 70px; 5 | padding: 0; 6 | background-image: url('../img/office.jpeg'); 7 | background-size: cover; 8 | background-repeat: round; 9 | background-attachment: fixed; 10 | } 11 | 12 | #loginBG{ 13 | background-color: #848484; 14 | padding: 0; 15 | background-image: url('../img/office.jpeg'); 16 | background-size: cover; 17 | } 18 | 19 | #center-trans{ 20 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE 8 */ 21 | filter: alpha(opacity=50); /* IE 5-7 */ 22 | -moz-opacity: 0.5; /* Netscape */ 23 | -khtml-opacity: 0.5; /* Safari 1.x */ 24 | opacity: 0.5; 25 | } 26 | 27 | .navbar a{ 28 | color: #000; 29 | } 30 | 31 | footer{ 32 | padding: 2em 0; 33 | margin: 3em 0; 34 | border-top: 1px solid #ddd; 35 | color: #000000; 36 | text-align: center; 37 | } 38 | 39 | .nav-top.nav-child{ 40 | background-color: #c0c0c0; 41 | color: #555555; 42 | } 43 | 44 | #logo-back{ 45 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE 8 */ 46 | filter: alpha(opacity=50); /* IE 5-7 */ 47 | -moz-opacity: 0.5; /* Netscape */ 48 | -khtml-opacity: 0.5; /* Safari 1.x */ 49 | opacity: 0.5; 50 | } 51 | 52 | 53 | /*.change_nav-child{*/ 54 | /*background-color: #c0c0c0;*/ 55 | /*}*/ 56 | 57 | /*.unchange_nav-child{*/ 58 | /*background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)*/ 59 | /*}*/ -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/images/complaint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/complaint.gif -------------------------------------------------------------------------------- /public/images/office.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/office.png -------------------------------------------------------------------------------- /public/images/ui-bg_diagonals-thick_18_b81900_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_diagonals-thick_18_b81900_40x40.png -------------------------------------------------------------------------------- /public/images/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /public/images/ui-bg_flat_10_000000_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_flat_10_000000_40x100.png -------------------------------------------------------------------------------- /public/images/ui-bg_glass_100_f6f6f6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_glass_100_f6f6f6_1x400.png -------------------------------------------------------------------------------- /public/images/ui-bg_glass_100_fdf5ce_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_glass_100_fdf5ce_1x400.png -------------------------------------------------------------------------------- /public/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /public/images/ui-bg_gloss-wave_35_f6a828_500x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_gloss-wave_35_f6a828_500x100.png -------------------------------------------------------------------------------- /public/images/ui-bg_highlight-soft_100_eeeeee_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_highlight-soft_100_eeeeee_1x100.png -------------------------------------------------------------------------------- /public/images/ui-bg_highlight-soft_75_ffe45c_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-bg_highlight-soft_75_ffe45c_1x100.png -------------------------------------------------------------------------------- /public/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /public/images/ui-icons_228ef1_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-icons_228ef1_256x240.png -------------------------------------------------------------------------------- /public/images/ui-icons_ef8c08_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-icons_ef8c08_256x240.png -------------------------------------------------------------------------------- /public/images/ui-icons_ffd27a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-icons_ffd27a_256x240.png -------------------------------------------------------------------------------- /public/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /public/img/10348.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/10348.jpg -------------------------------------------------------------------------------- /public/img/18457.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/18457.png -------------------------------------------------------------------------------- /public/img/30100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/30100.png -------------------------------------------------------------------------------- /public/img/34059.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/34059.jpg -------------------------------------------------------------------------------- /public/img/53167.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/53167.jpg -------------------------------------------------------------------------------- /public/img/56165.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/56165.jpg -------------------------------------------------------------------------------- /public/img/59204.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/59204.jpg -------------------------------------------------------------------------------- /public/img/72190.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/72190.jpg -------------------------------------------------------------------------------- /public/img/72583.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/72583.jpg -------------------------------------------------------------------------------- /public/img/79744.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/79744.png -------------------------------------------------------------------------------- /public/img/80236.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/80236.png -------------------------------------------------------------------------------- /public/img/85245.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/85245.jpg -------------------------------------------------------------------------------- /public/img/88990.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/88990.jpg -------------------------------------------------------------------------------- /public/img/92567.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/92567.png -------------------------------------------------------------------------------- /public/img/98669.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/98669.jpeg -------------------------------------------------------------------------------- /public/img/UserGroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/UserGroup.png -------------------------------------------------------------------------------- /public/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/bg.jpg -------------------------------------------------------------------------------- /public/img/eco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/eco.png -------------------------------------------------------------------------------- /public/img/headerLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/headerLogo.png -------------------------------------------------------------------------------- /public/img/office.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/office.jpeg -------------------------------------------------------------------------------- /public/img/oms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/oms.png -------------------------------------------------------------------------------- /public/img/oms.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/oms.psd -------------------------------------------------------------------------------- /public/img/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/result.png -------------------------------------------------------------------------------- /public/img/tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/tasks.png -------------------------------------------------------------------------------- /public/img/things-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/things-logo.jpg -------------------------------------------------------------------------------- /public/img/user.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/public/img/user.bmp -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | /* 10 | |-------------------------------------------------------------------------- 11 | | Register The Auto Loader 12 | |-------------------------------------------------------------------------- 13 | | 14 | | Composer provides a convenient, automatically generated class loader for 15 | | our application. We just need to utilize it! We'll simply require it 16 | | into the script here so that we don't have to worry about manual 17 | | loading any of our classes later on. It feels nice to relax. 18 | | 19 | */ 20 | 21 | require __DIR__.'/../bootstrap/autoload.php'; 22 | 23 | /* 24 | |-------------------------------------------------------------------------- 25 | | Turn On The Lights 26 | |-------------------------------------------------------------------------- 27 | | 28 | | We need to illuminate PHP development, so let us turn on the lights. 29 | | This bootstraps the framework and gets it ready for use, then it 30 | | will load up this application so that we can run it and send 31 | | the responses back to the browser and delight our users. 32 | | 33 | */ 34 | 35 | $app = require_once __DIR__.'/../bootstrap/app.php'; 36 | 37 | /* 38 | |-------------------------------------------------------------------------- 39 | | Run The Application 40 | |-------------------------------------------------------------------------- 41 | | 42 | | Once we have the application, we can handle the incoming request 43 | | through the kernel, and send the associated response back to 44 | | the client's browser allowing them to enjoy the creative 45 | | and wonderful application we have prepared for them. 46 | | 47 | */ 48 | 49 | $kernel = $app->make('Illuminate\Contracts\Http\Kernel'); 50 | 51 | $response = $kernel->handle( 52 | $request = Illuminate\Http\Request::capture() 53 | ); 54 | 55 | $response->send(); 56 | 57 | $kernel->terminate($request, $response); 58 | -------------------------------------------------------------------------------- /public/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## OfficeManagementSystem 2 | 3 | A system that helps to perform day to day activities of an office including attendance management, task management, leave management, complaint management, etc. 4 | 5 | This system basically has two users, Administrator and Employee. Administrators controls all the activities of Employees. 6 | 7 | Development Methodology: 8 | 9 | Laravel Framework (version 5.0) 10 | HTML5/CSS 11 | AJAX (Asynchronous JavaScript and XML) 12 | JQuery 13 | Twitter Bootstrap 14 | 15 | Functions of Administrator includes: 16 | 17 | Marking attendance of employees 18 | Assigning tasks to employees 19 | Viewing reports of employees 20 | Broadcasting notice to everyone 21 | Managing users 22 | Edit profile 23 | 24 | Functions of Employee includes: 25 | 26 | Viewing attendance records of own 27 | Viewing task records of own 28 | Taking leave 29 | Reporting complaints to the adminstrators 30 | Edit profile 31 | 32 | Here is the slide of my final year presentation: http://www.slideshare.net/sazanrjb/office-management-system-54479490 33 | 34 | Need full documentation? (https://www.scribd.com/doc/296992403/Office-Management-System-Sajan-Rajbhandari) 35 | -------------------------------------------------------------------------------- /resources/assets/less/app.less: -------------------------------------------------------------------------------- 1 | @import "bootstrap/bootstrap"; 2 | 3 | @btn-font-weight: 300; 4 | @font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif; 5 | 6 | body, label, .checkbox label { 7 | font-weight: 300; 8 | } 9 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissible alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 41 | .alert-dismissible { 42 | padding-right: (@alert-padding + 20); 43 | 44 | // Adjust close link position 45 | .close { 46 | position: relative; 47 | top: -2px; 48 | right: -21px; 49 | color: inherit; 50 | } 51 | } 52 | 53 | // Alternate styles 54 | // 55 | // Generate contextual modifier classes for colorizing the alert. 56 | 57 | .alert-success { 58 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 59 | } 60 | .alert-info { 61 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 62 | } 63 | .alert-warning { 64 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 65 | } 66 | .alert-danger { 67 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 68 | } 69 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | 36 | // Hover state, but only for links 37 | a& { 38 | &:hover, 39 | &:focus { 40 | color: @badge-link-hover-color; 41 | text-decoration: none; 42 | cursor: pointer; 43 | } 44 | } 45 | 46 | // Account for badges in navs 47 | .list-group-item.active > &, 48 | .nav-pills > .active > a > & { 49 | color: @badge-active-color; 50 | background-color: @badge-active-bg; 51 | } 52 | .list-group-item > & { 53 | float: right; 54 | } 55 | .list-group-item > & + & { 56 | margin-right: 5px; 57 | } 58 | .nav-pills > li > a > & { 59 | margin-left: 3px; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset and dependencies 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | @import "glyphicons.less"; 9 | 10 | // Core CSS 11 | @import "scaffolding.less"; 12 | @import "type.less"; 13 | @import "code.less"; 14 | @import "grid.less"; 15 | @import "tables.less"; 16 | @import "forms.less"; 17 | @import "buttons.less"; 18 | 19 | // Components 20 | @import "component-animations.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "responsive-embed.less"; 39 | @import "wells.less"; 40 | @import "close.less"; 41 | 42 | // Components w/ JavaScript 43 | @import "modals.less"; 44 | @import "tooltip.less"; 45 | @import "popovers.less"; 46 | @import "carousel.less"; 47 | 48 | // Utility classes 49 | @import "utilities.less"; 50 | @import "responsive-utilities.less"; 51 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | border-radius: @border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: @kbd-color; 28 | background-color: @kbd-bg; 29 | border-radius: @border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: ((@line-height-computed - 1) / 2); 44 | margin: 0 0 (@line-height-computed / 2); 45 | font-size: (@font-size-base - 1); // 14px to 13px 46 | line-height: @line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: @pre-color; 50 | background-color: @pre-bg; 51 | border: 1px solid @pre-border-color; 52 | border-radius: @border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: @pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | visibility: hidden; 21 | 22 | &.in { display: block; visibility: visible; } 23 | tr&.in { display: table-row; } 24 | tbody&.in { display: table-row-group; } 25 | } 26 | 27 | .collapsing { 28 | position: relative; 29 | height: 0; 30 | overflow: hidden; 31 | .transition-property(~"height, visibility"); 32 | .transition-duration(.35s); 33 | .transition-timing-function(ease); 34 | } 35 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding (@jumbotron-padding / 2); 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: (@jumbotron-padding / 2); 18 | font-size: @jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | > hr { 23 | border-top-color: darken(@jumbotron-bg, 10%); 24 | } 25 | 26 | .container &, 27 | .container-fluid & { 28 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 29 | } 30 | 31 | .container { 32 | max-width: 100%; 33 | } 34 | 35 | @media screen and (min-width: @screen-sm-min) { 36 | padding: (@jumbotron-padding * 1.6) 0; 37 | 38 | .container &, 39 | .container-fluid & { 40 | padding-left: (@jumbotron-padding * 2); 41 | padding-right: (@jumbotron-padding * 2); 42 | } 43 | 44 | h1, 45 | .h1 { 46 | font-size: (@font-size-base * 4.5); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media-right, 11 | .media > .pull-right { 12 | padding-left: 10px; 13 | } 14 | 15 | .media-left, 16 | .media > .pull-left { 17 | padding-right: 10px; 18 | } 19 | 20 | .media-left, 21 | .media-right, 22 | .media-body { 23 | display: table-cell; 24 | vertical-align: top; 25 | } 26 | 27 | .media-middle { 28 | vertical-align: middle; 29 | } 30 | 31 | .media-bottom { 32 | vertical-align: bottom; 33 | } 34 | 35 | // Reset margins on headings for tighter default spacing 36 | .media-heading { 37 | margin-top: 0; 38 | margin-bottom: 5px; 39 | } 40 | 41 | // Media list variation 42 | // 43 | // Undo default ul/ol styles 44 | .media-list { 45 | padding-left: 0; 46 | list-style: none; 47 | } 48 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/text-emphasis.less"; 15 | @import "mixins/text-overflow.less"; 16 | @import "mixins/vendor-prefixes.less"; 17 | 18 | // Components 19 | @import "mixins/alerts.less"; 20 | @import "mixins/buttons.less"; 21 | @import "mixins/panels.less"; 22 | @import "mixins/pagination.less"; 23 | @import "mixins/list-group.less"; 24 | @import "mixins/nav-divider.less"; 25 | @import "mixins/forms.less"; 26 | @import "mixins/progress-bar.less"; 27 | @import "mixins/table-row.less"; 28 | 29 | // Skins 30 | @import "mixins/background-variant.less"; 31 | @import "mixins/border-radius.less"; 32 | @import "mixins/gradients.less"; 33 | 34 | // Layout 35 | @import "mixins/clearfix.less"; 36 | @import "mixins/center-block.less"; 37 | @import "mixins/nav-vertical-align.less"; 38 | @import "mixins/grid-framework.less"; 39 | @import "mixins/grid.less"; 40 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover { 6 | background-color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/buttons.less: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | .button-variant(@color; @background; @border) { 7 | color: @color; 8 | background-color: @background; 9 | border-color: @border; 10 | 11 | &:hover, 12 | &:focus, 13 | &.focus, 14 | &:active, 15 | &.active, 16 | .open > .dropdown-toggle& { 17 | color: @color; 18 | background-color: darken(@background, 10%); 19 | border-color: darken(@border, 12%); 20 | } 21 | &:active, 22 | &.active, 23 | .open > .dropdown-toggle& { 24 | background-image: none; 25 | } 26 | &.disabled, 27 | &[disabled], 28 | fieldset[disabled] & { 29 | &, 30 | &:hover, 31 | &:focus, 32 | &.focus, 33 | &:active, 34 | &.active { 35 | background-color: @background; 36 | border-color: @border; 37 | } 38 | } 39 | 40 | .badge { 41 | color: @background; 42 | background-color: @color; 43 | } 44 | } 45 | 46 | // Button sizes 47 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 48 | padding: @padding-vertical @padding-horizontal; 49 | font-size: @font-size; 50 | line-height: @line-height; 51 | border-radius: @border-radius; 52 | } 53 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/forms.less: -------------------------------------------------------------------------------- 1 | // Form validation states 2 | // 3 | // Used in forms.less to generate the form validation CSS for warnings, errors, 4 | // and successes. 5 | 6 | .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { 7 | // Color the label and help text 8 | .help-block, 9 | .control-label, 10 | .radio, 11 | .checkbox, 12 | .radio-inline, 13 | .checkbox-inline, 14 | &.radio label, 15 | &.checkbox label, 16 | &.radio-inline label, 17 | &.checkbox-inline label { 18 | color: @text-color; 19 | } 20 | // Set the border and box shadow on specific inputs to match 21 | .form-control { 22 | border-color: @border-color; 23 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work 24 | &:focus { 25 | border-color: darken(@border-color, 10%); 26 | @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); 27 | .box-shadow(@shadow); 28 | } 29 | } 30 | // Set validation states also for addons 31 | .input-group-addon { 32 | color: @text-color; 33 | border-color: @border-color; 34 | background-color: @background-color; 35 | } 36 | // Optional feedback icon 37 | .form-control-feedback { 38 | color: @text-color; 39 | } 40 | } 41 | 42 | 43 | // Form control focus state 44 | // 45 | // Generate a customized focus state and for any input with the specified color, 46 | // which defaults to the `@input-border-focus` variable. 47 | // 48 | // We highly encourage you to not customize the default value, but instead use 49 | // this to tweak colors on an as-needed basis. This aesthetic change is based on 50 | // WebKit's default styles, but applicable to a wider range of browsers. Its 51 | // usability and accessibility should be taken into account with any change. 52 | // 53 | // Example usage: change the default blue border and shadow to white for better 54 | // contrast against a dark gray background. 55 | .form-control-focus(@color: @input-border-focus) { 56 | @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); 57 | &:focus { 58 | border-color: @color; 59 | outline: 0; 60 | .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); 61 | } 62 | } 63 | 64 | // Form control sizing 65 | // 66 | // Relative text size, padding, and border-radii changes for form controls. For 67 | // horizontal sizing, wrap controls in the predefined grid classes. ` 23 | 24 |
25 | 26 |
27 | 28 |
29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 |
37 | 38 |
39 |
40 |
41 | 44 |
45 |
46 |
47 | 48 |
49 |
50 | 51 | 52 | Forgot Your Password? 53 |
54 |
55 | 56 | 57 | 58 | 59 | 60 | 61 | @endsection 62 | -------------------------------------------------------------------------------- /resources/views/auth/password.blade.php: -------------------------------------------------------------------------------- 1 | @extends('app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
Reset Password
9 |
10 | @if (session('status')) 11 |
12 | {{ session('status') }} 13 |
14 | @endif 15 | 16 | @if (count($errors) > 0) 17 |
18 | Whoops! There were some problems with your input.

19 |
    20 | @foreach ($errors->all() as $error) 21 |
  • {{ $error }}
  • 22 | @endforeach 23 |
24 |
25 | @endif 26 | 27 |
28 | 29 | 30 |
31 | 32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 | 42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | @endsection 51 | -------------------------------------------------------------------------------- /resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
Register
9 |
10 | @if (count($errors) > 0) 11 |
12 | Whoops! There were some problems with your input.

13 |
    14 | @foreach ($errors->all() as $error) 15 |
  • {{ $error }}
  • 16 | @endforeach 17 |
18 |
19 | @endif 20 | 21 |
22 | 23 | 24 |
25 | 26 |
27 | 28 |
29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 |
37 | 38 |
39 | 40 |
41 | 42 |
43 |
44 | 45 |
46 | 47 |
48 | 49 |
50 |
51 | 52 |
53 |
54 | 57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | @endsection 66 | -------------------------------------------------------------------------------- /resources/views/auth/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
Reset Password
9 |
10 | @if (count($errors) > 0) 11 |
12 | Whoops! There were some problems with your input.

13 |
    14 | @foreach ($errors->all() as $error) 15 |
  • {{ $error }}
  • 16 | @endforeach 17 |
18 |
19 | @endif 20 | 21 |
22 | 23 | 24 | 25 |
26 | 27 |
28 | 29 |
30 |
31 | 32 |
33 | 34 |
35 | 36 |
37 |
38 | 39 |
40 | 41 |
42 | 43 |
44 |
45 | 46 |
47 |
48 | 51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | @endsection 60 | -------------------------------------------------------------------------------- /resources/views/emails/password.blade.php: -------------------------------------------------------------------------------- 1 | Click here to reset your password: {{ url('password/reset/'.$token) }} 2 | -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 33 | 34 | 35 |
36 |
37 |
Be right back.
38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /resources/views/home.blade.php: -------------------------------------------------------------------------------- 1 | @extends('app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
Home
9 | 10 |
11 | You are logged in! 12 |
13 |
14 |
15 |
16 |
17 | @endsection 18 | -------------------------------------------------------------------------------- /resources/views/oms/index.blade.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/resources/views/oms/index.blade.php -------------------------------------------------------------------------------- /resources/views/oms/pages/complaints/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('oms.master') 2 | @section('content') 3 | 4 |
5 |
6 | @if(Session::has('notice')) 7 |
{{Session::get('notice')}}
8 | @endif 9 | 10 |
11 |
12 | @if(Auth::user()->designation == "Administrator") 13 |

Complaint by {{$complaint->user->name}}

14 |

{{$complaint->created_at}}


15 |

{{$complaint->complaint}}

16 |
17 |
18 | {{csrf_field()}} 19 | 20 | 23 |
24 | @endif 25 |
26 |
27 | 28 |
29 |
30 | 31 | 34 | @stop -------------------------------------------------------------------------------- /resources/views/oms/pages/dashboard.blade.php: -------------------------------------------------------------------------------- 1 | 2 | @extends('oms.master') 3 | @section('content') 4 | 5 |
6 |
7 |
8 | @if(Session::has('notice')) 9 |
{{Session::get('notice')}}
10 | @endif 11 |

Dashboard

12 | {!! HTML::image('images/office.png','',array('class'=>'img img-responsive','width'=>'100%')) !!} 13 |
14 |
15 |
16 | 17 | 20 | @stop -------------------------------------------------------------------------------- /resources/views/oms/pages/leave.blade.php: -------------------------------------------------------------------------------- 1 | @extends('oms.master') 2 | @section('content') 3 | 4 |
5 |
6 | @foreach($errors->all() as $error) 7 |

{{$error}}

8 | @endforeach 9 | @if(Session::has('notice')) 10 |

{{Session::get('notice')}}

11 | @endif 12 |
13 |
14 | {!!Form::open(array('url'=>'/makeleave','method'=>'post'))!!} 15 |

Take Leave

16 | 17 | {!!Form::text('startingDate','',array('class'=>'form-control datepicker','placeholder'=>'Starting Date'))!!} 18 | 19 | {!!Form::text('endingDate','',array('class'=>'form-control datepicker','placeholder'=>'Ending Date'))!!}
20 | 21 | {!!Form::textarea('reason','',array('class'=>'form-control','placeholder'=>'Reason'))!!}
22 |
23 | {!!Form::submit('Submit',array('class'=>'btn btn-primary form-control'))!!} 24 | {!!Form::close()!!} 25 |
26 |
27 |
28 |
29 |
30 | 31 | 34 | @stop -------------------------------------------------------------------------------- /resources/views/oms/pages/login.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Login 5 | {!!HTML::style('css/bootstrap.min.css')!!} 6 | {!!HTML::style('css/jquery-ui.min.css')!!} 7 | {!!HTML::style('css/custom.css')!!} 8 | 9 | 10 |
11 |
12 |
13 | 14 |
15 | {!!HTML::image('img/oms.png','',array('class'=>'img-responsive'))!!} 16 |
17 |
18 | @foreach($errors->all() as $error) 19 |

{{$error}}

20 | @endforeach 21 | 22 | @if(Session::has('error')) 23 |
{{Session::get('error')}}
24 | @endif 25 | {!!Form::open(array('action'=>'MainController@loginprocess','method'=>'post','class'=>'form-signin'))!!} 26 | 27 |
28 |

Members Login

29 |
30 |
31 | 34 | {!!Form::select('designation',['Administrator'=>'Administrator','Employee'=>'Employee'],null,['class'=>'form-control'])!!} 35 |
36 |
37 | 40 | {!!Form::input('text','username','',array('class'=>'form-control','placeholder'=>'Username'))!!} 41 |
42 |
43 | 46 | {!!Form::input('password','password','',array('class'=>'form-control','placeholder'=>'Password'))!!} 47 |
48 |
49 | {!!Form::checkbox('remember')!!} 50 | 51 | {{----}} 54 | {!!Form::submit('Login',array('class'=>'btn-success form-control'))!!} 55 |
56 | 57 | 58 |
59 |
60 |
61 | 62 | 63 | -------------------------------------------------------------------------------- /resources/views/oms/pages/notices/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('oms.master') 2 | @section('content') 3 | 4 |
5 |
6 |
7 |
8 | 9 |
10 | {!!Form::open(array('url'=>'notices','method'=>'post'))!!} 11 |

Broadcast Message

12 | 13 | {!!Form::textarea('notice','',array('class'=>'form-control','placeholder'=>'Enter your message..', 'rows'=>'10px'))!!} 14 | 15 |
16 |
17 | {!!Form::submit('Broadcast',array('class'=>'btn btn-primary form-control'))!!} 18 | {!!Form::close()!!} 19 |
20 |
21 | 22 |
23 |
24 |
25 | 26 | 29 | @stop -------------------------------------------------------------------------------- /resources/views/oms/pages/notices/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('oms.master') 2 | @section('content') 3 | 4 |
5 |
6 |
7 |
8 | @if(Session::has('note')) 9 |

{{Session::get('note')}}

10 | @endif 11 | 12 | 13 | 14 | 15 | 16 | 17 | @foreach($notices as $notice) 18 | 19 | 20 | 21 | 30 | 31 | @endforeach 32 |
NoticePosted onAction
{{substr($notice->notice,0,100)}}..{{$notice->created_at}} 22 |
23 | {{csrf_field()}} 24 | 25 | 28 |
29 |
33 |
34 |
35 | 36 |
37 |
38 | 39 | 42 | @stop -------------------------------------------------------------------------------- /resources/views/oms/pages/notices/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('oms.master') 2 | @section('content') 3 | 4 |
5 |
6 |
7 |
8 | 9 |

Notice by ADMINISTRATOR


10 |
11 |

{{$notice->notice}}

12 |
13 |
14 |
15 | 16 |
17 |
18 | 19 | 22 | @stop -------------------------------------------------------------------------------- /resources/views/oms/pages/profile.blade.php: -------------------------------------------------------------------------------- 1 | @extends('oms.master') 2 | @section('content') 3 | 4 |
5 |
6 |
7 | @if(Session::has('notice')) 8 |
{{Session::get('notice')}}
9 | @endif 10 | 11 |

Profile

12 | @if($user->username == Auth::user()->username) 13 | Edit Profile 14 | @endif 15 |
16 |
17 | @if($user->profile) 18 | {!!HTML::image($user->profile->profile_picture,'',array('class'=>'img-responsive center-block'))!!} 19 | @else 20 | 21 | @endif 22 |
23 | 24 | 25 | 26 |
27 | 28 | 29 |
30 | 31 | 32 |
33 | 34 | 35 |
36 | 37 | 38 |
39 |
40 |
41 | 42 |
43 |
44 |
45 | 46 | 49 | @stop -------------------------------------------------------------------------------- /resources/views/vendor/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajxraj/OfficeManagementSystem/2986955c2d82889ebe219f08a8e4056d6681caf0/resources/views/vendor/.gitkeep -------------------------------------------------------------------------------- /resources/views/welcome.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Laravel 4 | 5 | 6 | 7 | 39 | 40 | 41 |
42 |
43 |
Laravel 5
44 |
{{ Inspiring::quote() }}
45 |
46 |
47 | 48 | 49 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('home', 'HomeController@index'); 4 | 5 | $router->get('/', 'MainController@index',['middleware'=>'guest']); 6 | $router->post('loginprocess','MainController@loginprocess'); 7 | $router->get('logout','HomeController@logout'); 8 | 9 | 10 | $router->get('/dashboard', 'DashboardController'); 11 | 12 | $router->resource('tasks', 'TaskController'); 13 | 14 | $router->get('api/users/present-by-date','User\GetPresentUsersByDate'); 15 | $router->post('profile/change-password','User\ChangePassword'); 16 | $router->post('profile/update','User\ChangeProfile@update'); 17 | $router->get('profile/edit','User\ChangeProfile@index'); 18 | $router->resource('users','User\UserController'); 19 | 20 | $router->resource('complaints','ComplaintController'); 21 | 22 | $router->post('attendances/get-by-month-and-year', 'Attendance\GetByMonthAndYearForUser'); 23 | $router->post('attendances/get-by-date', 'Attendance\GetByDateController'); 24 | $router->resource('attendances','Attendance\AttendanceController'); 25 | 26 | $router->get('report','HomeController@report'); 27 | $router->post('viewreport','HomeController@viewreport'); 28 | 29 | $router->resource('notices', 'Notice\NoticeController'); 30 | 31 | $router->get('leave','HomeController@leave'); 32 | $router->post('makeleave','HomeController@makeleave'); 33 | 34 | $router->get('editprofile','HomeController@editprofile'); 35 | $router->post('editprocess','HomeController@editprocess'); 36 | $router->post('changepassword','HomeController@changePassword'); 37 | 38 | $router->post('broadcastprocess','HomeController@broadcastprocess'); 39 | 40 | 41 | $router->post('addusers','HomeController@addusers'); 42 | $router->get('edituser/{id}','HomeController@edituser'); 43 | $router->get('deleteuser/{id}','HomeController@deleteuser'); 44 | $router->get('/a','HomeController@ajax_users'); 45 | $router->get('/b','HomeController@select_user'); 46 | $router->get('/{username}','HomeController@profile'); 47 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | $uri = urldecode( 10 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 11 | ); 12 | 13 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 14 | // built-in PHP web server. This provides a convenient way to test a Laravel 15 | // application without having installed a "real" web server software here. 16 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) 17 | { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | compiled.php 4 | services.json 5 | events.scanned.php 6 | routes.scanned.php 7 | down 8 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/ExampleTest.php: -------------------------------------------------------------------------------- 1 | call('GET', '/'); 13 | 14 | $this->assertEquals(200, $response->getStatusCode()); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | make('Illuminate\Contracts\Console\Kernel')->bootstrap(); 15 | 16 | return $app; 17 | } 18 | 19 | } 20 | --------------------------------------------------------------------------------