├── public ├── .gitignore ├── favicon.ico ├── favicon │ └── .gitignore ├── img │ └── logo │ │ ├── .gitignore │ │ └── logo.png ├── robots.txt ├── vendor │ └── log-viewer │ │ ├── img │ │ ├── log-viewer-32.png │ │ ├── log-viewer-64.png │ │ └── log-viewer-128.png │ │ └── mix-manifest.json ├── application-images │ └── user-profile-image.png └── .htaccess ├── database ├── .gitignore ├── seeders │ ├── WorldSeeder.php │ ├── FeeSeeder.php │ ├── TimetableTimeSlotSeeder.php │ ├── CustomTimetableItemSeeder.php │ ├── FeeCategorySeeder.php │ ├── FeeInvoiceSeeder.php │ ├── NoticeSeeder.php │ ├── FeeInvoiceRecordSeeder.php │ ├── SyllabusSeeder.php │ ├── PromotionSeeder.php │ ├── StudentSeeder.php │ ├── AccountApplicationSeeder.php │ ├── ExamRecordSeeder.php │ ├── RunInProductionSeeder.php │ ├── TimetableSeeder.php │ ├── ExamSeeder.php │ ├── WeekdaySeeder.php │ ├── SectionSeeder.php │ └── SemesterSeeder.php ├── factories │ ├── ClassGroupFactory.php │ ├── AcademicYearFactory.php │ ├── CustomTimetableItemFactory.php │ ├── MyClassFactory.php │ ├── SectionFactory.php │ ├── FeeCategoryFactory.php │ ├── SubjectFactory.php │ ├── TimetableTimeSlotFactory.php │ ├── SemesterFactory.php │ └── TimetableFactory.php └── migrations │ ├── 2022_03_31_213839_create_weekdays_table.php │ ├── 2023_01_09_171340_make_description_nullable_on_sylabii_table.php │ ├── 2022_01_03_101855_create_teacher_records_table.php │ ├── 2022_06_22_191157_create_parent_records_table.php │ ├── 2022_11_05_200953_create_statuses_table.php │ ├── 2023_03_10_192432_add_soft_deletes_to_users_table.php │ ├── 2023_03_18_192014_add_soft_deleted_columns_to_subjects_table.php │ ├── 2023_03_19_160800_add_soft_deletes_to_my_classes_table.php │ ├── 2023_04_01_210647_add_locked_to_users_table.php │ └── 2023_03_31_184347_add_soft_deletes_to_fee_invoices_table.php ├── bootstrap └── cache │ └── .gitignore ├── storage ├── logs │ └── .gitignore ├── app │ ├── public │ │ └── .gitignore │ └── .gitignore ├── debugbar │ └── .gitignore ├── framework │ ├── testing │ │ └── .gitignore │ ├── views │ │ └── .gitignore │ ├── cache │ │ ├── data │ │ │ └── .gitignore │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── .gitignore └── fonts │ ├── installed-fonts.json │ ├── nunito_normal_34247b3036b716234db5ab3f26800c05.ttf │ ├── nunito_normal_51ab6e3e316a21ef3af811c849f34cc6.ttf │ └── nunito_normal_6c0bd57bf447898b6d51683e027e0634.ttf ├── postcss.config.js ├── resources ├── markdown │ ├── policy.md │ └── terms.md ├── views │ ├── livewire │ │ ├── show-admin-profile.blade.php │ │ ├── show-parent-profile.blade.php │ │ ├── show-teacher-profile.blade.php │ │ ├── show-syllabus.blade.php │ │ ├── create-admin-form.blade.php │ │ ├── create-parent-form.blade.php │ │ ├── create-teacher-form.blade.php │ │ ├── create-academic-year-form.blade.php │ │ ├── show-account-application.blade.php │ │ ├── create-student-form.blade.php │ │ ├── create-custom-timetable-item-form.blade.php │ │ ├── edit-class-group-form.blade.php │ │ ├── edit-admin-form.blade.php │ │ ├── edit-parent-form.blade.php │ │ ├── edit-student-form.blade.php │ │ ├── edit-teacher-form.blade.php │ │ ├── show-notice.blade.php │ │ ├── create-semester-form.blade.php │ │ ├── create-fee-category-form.blade.php │ │ ├── edit-custom-timetable-item-form.blade.php │ │ ├── edit-semester-form.blade.php │ │ └── show-promotion.blade.php │ ├── components │ │ ├── button.blade.php │ │ ├── input-year.blade.php │ │ ├── show-set-school.blade.php │ │ ├── partials │ │ │ ├── action-section.blade.php │ │ │ └── authentication-card.blade.php │ │ ├── textarea.blade.php │ │ ├── input.blade.php │ │ ├── action-message.blade.php │ │ └── dropdown.blade.php │ ├── pages │ │ ├── fee │ │ │ ├── index.blade.php │ │ │ ├── fee-category │ │ │ │ ├── index.blade.php │ │ │ │ ├── create.blade.php │ │ │ │ └── edit.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── fee-invoice │ │ │ │ ├── index.blade.php │ │ │ │ ├── create.blade.php │ │ │ │ ├── pay.blade.php │ │ │ │ ├── edit.blade.php │ │ │ │ └── show.blade.php │ │ ├── exam │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── tabulation.blade.php │ │ │ ├── result-checker.blade.php │ │ │ ├── exam-record │ │ │ │ └── index.blade.php │ │ │ ├── print-exam-tabulation.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── exam-slot │ │ │ │ ├── index.blade.php │ │ │ │ ├── create.blade.php │ │ │ │ └── edit.blade.php │ │ │ ├── semester-result-tabulation.blade.php │ │ │ └── academic-year-result-tabulation.blade.php │ │ ├── class │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── show.blade.php │ │ │ └── edit.blade.php │ │ ├── notice │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ └── show.blade.php │ │ ├── parent │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── show.blade.php │ │ │ └── assign-students.blade.php │ │ ├── syllabus │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ └── show.blade.php │ │ ├── student │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── promotion │ │ │ │ ├── promote.blade.php │ │ │ │ ├── show.blade.php │ │ │ │ └── index.blade.php │ │ │ ├── edit.blade.php │ │ │ └── graduation │ │ │ │ ├── graduate.blade.php │ │ │ │ └── index.blade.php │ │ ├── subject │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── assign-teacher.blade.php │ │ │ └── edit.blade.php │ │ ├── teacher │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── show.blade.php │ │ ├── admin │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── show.blade.php │ │ ├── section │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── show.blade.php │ │ ├── timetable │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── custom-timetable-item │ │ │ │ ├── index.blade.php │ │ │ │ └── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── manage.blade.php │ │ │ ├── show.blade.php │ │ │ └── print.blade.php │ │ ├── class-group │ │ │ ├── index.blade.php │ │ │ ├── show.blade.php │ │ │ ├── create.blade.php │ │ │ └── edit.blade.php │ │ ├── grade-system │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── show.blade.php │ │ ├── school │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── show.blade.php │ │ ├── semester │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ └── edit.blade.php │ │ ├── account-application │ │ │ ├── index.blade.php │ │ │ ├── rejected-applications.blade.php │ │ │ ├── show.blade.php │ │ │ ├── edit.blade.php │ │ │ └── change-status.blade.php │ │ └── academic-year │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ ├── show.blade.php │ │ │ └── edit.blade.php │ └── auth │ │ └── register.blade.php └── js │ └── app.js ├── .gitattributes ├── app ├── Exceptions │ ├── InvalidValueException.php │ ├── DuplicateRangeException.php │ ├── InvalidUserException.php │ ├── ResourceNotEmptyException.php │ ├── EmptyRecordsException.php │ └── InvalidClassException.php ├── Models │ ├── Weekday.php │ ├── Graduation.php │ ├── TeacherRecord.php │ ├── GradeSystem.php │ ├── Syllabus.php │ └── ClassGroup.php ├── Livewire │ ├── DisplayStatus.php │ ├── Layouts │ │ └── Header.php │ ├── ListExamsTable.php │ ├── ListFeesTable.php │ ├── CreateAdminForm.php │ ├── ListAdminsTable.php │ ├── CreateNoticeForm.php │ ├── CreateParentForm.php │ ├── CreateSchoolForm.php │ ├── CreateStudentForm.php │ ├── CreateTeacherForm.php │ ├── ListClassesTable.php │ ├── ListNoticesTable.php │ ├── ListParentsTable.php │ ├── ListSchoolsTable.php │ ├── ListSemestersTable.php │ ├── CreateClassGroupForm.php │ ├── ListClassGroupsTable.php │ ├── ListGraduationsTable.php │ ├── ShowSchool.php │ ├── CreateAcademicYearForm.php │ ├── CreateFeeCategoryForm.php │ ├── ListFeeCategoriesTable.php │ ├── EditSectionForm.php │ ├── ListAccountApplicationsTable.php │ ├── CreateCustomTimetableItemForm.php │ ├── EditFeeForm.php │ ├── ListCustomTimetableItemsTable.php │ ├── ShowClass.php │ ├── CreateUserFields.php │ ├── ShowNotice.php │ ├── EditAdminForm.php │ ├── EditParentForm.php │ ├── ShowSyllabus.php │ ├── ShowUserProfile.php │ ├── EditSchoolForm.php │ ├── EditStudentForm.php │ ├── EditTeacherForm.php │ ├── ListRejectedAccountApplicationsTable.php │ ├── ShowAdminProfile.php │ ├── CreateExamSlotForm.php │ ├── ListExamSlotsTable.php │ ├── ShowParentProfile.php │ ├── ShowTeacherProfile.php │ ├── EditSemesterForm.php │ ├── EditClassGroupForm.php │ ├── EditFeeCategoryForm.php │ ├── EditUserFields.php │ ├── EditAcademicYearForm.php │ ├── ListStudentFeeInvoices.php │ ├── CreateSemesterForm.php │ ├── EditExamSlotForm.php │ ├── EditCustomTimetableItemForm.php │ ├── MarkTabulation.php │ ├── ListStudentsTable.php │ ├── ListTeachersTable.php │ ├── PayInvoiceForm.php │ ├── ShowFeeInvoice.php │ ├── SetSchool.php │ ├── ShowAccountApplication.php │ ├── ApplicationHistory.php │ ├── CreateFeeForm.php │ ├── CreateSectionForm.php │ ├── CreateClassForm.php │ ├── ShowAcademicYear.php │ ├── ShowClassGroup.php │ ├── CreateGradeSystemForm.php │ ├── ShowSection.php │ ├── CreateTimetableForm.php │ ├── SetAcademicYear.php │ ├── SetSemester.php │ ├── ShowPromotion.php │ ├── CreateExamForm.php │ ├── ListAcademicYearsTable.php │ ├── EditClassForm.php │ ├── EditAccountApplicationForm.php │ ├── EditExamForm.php │ ├── RegistrationForm.php │ ├── ShowStudentProfile.php │ ├── EditTimetableForm.php │ ├── CreateSubjectForm.php │ ├── EditSubjectForm.php │ └── EditGradeSystemForm.php ├── Http │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── TrustHosts.php │ │ ├── PreventRequestsDuringMaintenance.php │ │ ├── TrimStrings.php │ │ ├── Authenticate.php │ │ └── EnsureAcademicYearIsSet.php │ ├── Controllers │ │ ├── Controller.php │ │ └── LockUserAccountController.php │ └── Requests │ │ ├── StudentGraduateRequest.php │ │ ├── UpdateAccountApplicationRequest.php │ │ ├── AssignStudentRequest.php │ │ ├── AssignTeacherToSubjectRequest.php │ │ ├── PayFeeInvoiceRequest.php │ │ ├── AcademicYearStoreRequest.php │ │ ├── UpdateFeeRequest.php │ │ ├── SemesterStoreRequest.php │ │ ├── StoreExamSlotRequest.php │ │ ├── UpdateExamSlotRequest.php │ │ ├── SetSemesterRequest.php │ │ ├── SubjectStoreRequest.php │ │ ├── UpdateExamRecordRequest.php │ │ ├── UpdateSyllabusRequest.php │ │ ├── UpdateFeeInvoiceRequest.php │ │ ├── StoreFeeRequest.php │ │ ├── UpdateFeeInvoiceRecordRequest.php │ │ ├── UpdateNoticeRequest.php │ │ ├── UpdateTimetableTimeSlotRequest.php │ │ ├── TimetableUpdateRequest.php │ │ ├── StoreAccountApplicationRequest.php │ │ ├── StoreExamRequest.php │ │ ├── UpdateExamRequest.php │ │ ├── TimetableStoreRequest.php │ │ ├── StoreGradeSystemRequest.php │ │ └── UpdateGradeSystemRequest.php ├── Actions │ ├── Fortify │ │ └── PasswordValidationRules.php │ └── Jetstream │ │ └── DeleteUser.php ├── Providers │ ├── BroadcastServiceProvider.php │ └── AuthServiceProvider.php └── Traits │ ├── InSchool.php │ └── FeatureTestTrait.php ├── webpack.config.js ├── tests ├── TestCase.php ├── Unit │ └── ExampleTest.php ├── Feature │ ├── RegistrationTest.php │ ├── ExampleTest.php │ └── BrowserSessionsTest.php └── CreatesApplication.php ├── tailwind.config.js ├── .gitignore ├── .editorconfig ├── phpstan.neon ├── lang ├── vendor │ └── world │ │ ├── zh │ │ └── response.php │ │ ├── ja │ │ └── response.php │ │ ├── kr │ │ └── response.php │ │ ├── ro │ │ └── response.php │ │ ├── en │ │ └── response.php │ │ ├── ru │ │ └── response.php │ │ ├── ar │ │ └── response.php │ │ ├── de │ │ └── response.php │ │ ├── pl │ │ └── response.php │ │ ├── bn │ │ └── response.php │ │ ├── br │ │ └── response.php │ │ ├── fr │ │ └── response.php │ │ ├── pt │ │ └── response.php │ │ └── es │ │ └── response.php ├── en │ ├── pagination.php │ └── auth.php └── en.json ├── vite.config.js ├── config └── model-status.php ├── SECURITY.md ├── package.json ├── .github ├── labeler.yml ├── workflows │ └── label.yml └── ISSUE_TEMPLATE │ └── feature_request.md └── routes ├── channels.php ├── api.php └── console.php /public/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite* 2 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /public/favicon/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /public/img/logo/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /public/img/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yungifez/skuul/HEAD/public/img/logo/logo.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /resources/markdown/policy.md: -------------------------------------------------------------------------------- 1 | # Privacy Policy 2 | 3 | Edit this file to define the privacy policy for your application. 4 | -------------------------------------------------------------------------------- /resources/markdown/terms.md: -------------------------------------------------------------------------------- 1 | # Terms of Service 2 | 3 | Edit this file to define the terms of service for your application. 4 | -------------------------------------------------------------------------------- /resources/views/livewire/show-admin-profile.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /resources/views/livewire/show-parent-profile.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /resources/views/livewire/show-teacher-profile.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /public/vendor/log-viewer/img/log-viewer-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yungifez/skuul/HEAD/public/vendor/log-viewer/img/log-viewer-32.png -------------------------------------------------------------------------------- /public/vendor/log-viewer/img/log-viewer-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yungifez/skuul/HEAD/public/vendor/log-viewer/img/log-viewer-64.png -------------------------------------------------------------------------------- /storage/fonts/installed-fonts.json: -------------------------------------------------------------------------------- 1 | { 2 | "nunito": { 3 | "normal": "nunito_normal_6c0bd57bf447898b6d51683e027e0634" 4 | } 5 | } -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /public/application-images/user-profile-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yungifez/skuul/HEAD/public/application-images/user-profile-image.png -------------------------------------------------------------------------------- /public/vendor/log-viewer/img/log-viewer-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yungifez/skuul/HEAD/public/vendor/log-viewer/img/log-viewer-128.png -------------------------------------------------------------------------------- /app/Exceptions/InvalidValueException.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{$slot}} {{$label}} 4 | -------------------------------------------------------------------------------- /app/Livewire/DisplayStatus.php: -------------------------------------------------------------------------------- 1 | date('Y')]) 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /app/Livewire/EditAdminForm.php: -------------------------------------------------------------------------------- 1 | call([ 13 | SeedAction::class, 14 | ]); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/Livewire/EditSemesterForm.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /database/seeders/FeeSeeder.php: -------------------------------------------------------------------------------- 1 | count(10)->create(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /database/seeders/TimetableTimeSlotSeeder.php: -------------------------------------------------------------------------------- 1 | count(5)->create(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /database/seeders/FeeInvoiceSeeder.php: -------------------------------------------------------------------------------- 1 | count(30)->create(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | includes: 2 | - ./vendor/nunomaduro/larastan/extension.neon 3 | 4 | parameters: 5 | 6 | paths: 7 | - app/ 8 | 9 | # Level 9 is the highest level 10 | level: 5 11 | 12 | 13 | # ignoreErrors: 14 | # - '#PHPDoc tag @var#' 15 | # 16 | # excludePaths: 17 | # - ./*/*/FileToBeExcluded.php 18 | # 19 | # checkMissingIterableValueType: false -------------------------------------------------------------------------------- /resources/views/pages/fee/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Fees')) 7 | 8 | @section('page_heading', __('Fees')) 9 | 10 | @section('content', ) 11 | @livewire('list-fees-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/exam/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'Exams', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Exams')) 7 | 8 | @section('page_heading', __('Exams')) 9 | 10 | @section('content', ) 11 | @livewire('list-exams-table') 12 | @endsection -------------------------------------------------------------------------------- /app/Livewire/CreateSemesterForm.php: -------------------------------------------------------------------------------- 1 | setErrorBag(session()->get('errors', new \Illuminate\Support\MessageBag())->getMessages()); 12 | 13 | return view('livewire.create-semester-form'); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lang/vendor/world/zh/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => '内部服务器错误', 6 | 'record_not_found' => '没有找到:attribute!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => '电话|电话', 10 | 'country' => '国家|国家', 11 | 'city' => '城市|城市', 12 | 'state' => '县|县', 13 | 'timezone' => '时区|时区', 14 | 'currency' => '货币|货币', 15 | 'language' => '语言|语言', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /tests/Feature/RegistrationTest.php: -------------------------------------------------------------------------------- 1 | get('register')->assertSuccessful(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /database/seeders/NoticeSeeder.php: -------------------------------------------------------------------------------- 1 | count(10)->create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /resources/views/pages/class/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('classes.index'), 'text'=> 'Classes' , 'active'] 4 | ]]) 5 | 6 | @section('title', __('Classes')) 7 | 8 | @section('page_heading', __('Classes')) 9 | 10 | @section('content') 11 | @livewire('list-classes-table') 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/notice/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('notices.index'), 'text'=> 'Notices', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Notices')) 7 | 8 | @section('page_heading', __('Notices')) 9 | 10 | @section('content', ) 11 | @livewire('list-notices-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/parent/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('parents.index'), 'text'=> 'Parents', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Parents')) 7 | 8 | @section('page_heading', __('Parents')) 9 | 10 | @section('content', ) 11 | @livewire('list-parents-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/syllabus/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('syllabi.index'), 'text'=> 'Syllabi', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Syllabi')) 7 | 8 | @section('page_heading', __('Syllabi')) 9 | 10 | @section('content', ) 11 | @livewire('list-syllabi-table') 12 | @endsection -------------------------------------------------------------------------------- /app/Livewire/EditExamSlotForm.php: -------------------------------------------------------------------------------- 1 | count(50)->create(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /database/seeders/SyllabusSeeder.php: -------------------------------------------------------------------------------- 1 | count(10)->create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /resources/views/pages/student/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('students.index'), 'text'=> 'Students', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Students')) 7 | 8 | @section('page_heading', __('Students')) 9 | 10 | @section('content', ) 11 | @livewire('list-students-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/subject/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('subjects.index'), 'text'=> 'subjects', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Subjects')) 7 | 8 | @section('page_heading', __('Subjects')) 9 | 10 | @section('content', ) 11 | @livewire('list-subjects-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/teacher/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('teachers.index'), 'text'=> 'Teachers', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Teachers')) 7 | 8 | @section('page_heading', __('Teachers')) 9 | 10 | @section('content', ) 11 | @livewire('list-teachers-table') 12 | @endsection -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /database/seeders/PromotionSeeder.php: -------------------------------------------------------------------------------- 1 | count(4)->create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lang/vendor/world/ja/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => '内部サーバーエラー', 6 | 'record_not_found' => 'いいえ :attribute が見つかりませんでした!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => '電話|電話', 10 | 'country' => '国|国', 11 | 'city' => '市|都市', 12 | 'state' => '州|州', 13 | 'timezone' => 'タイムゾーン|時間帯', 14 | 'currency' => '通貨|通貨', 15 | 'language' => '言語|言語', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /lang/vendor/world/kr/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => '인터넷 서버 오류', 6 | 'record_not_found' => '아니오 attribute: 을(를) 찾았습니다!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => '핸드폰|전화', 10 | 'country' => '국가|국가', 11 | 'city' => '도시|도시', 12 | 'state' => '군|군', 13 | 'timezone' => '시간대|시간대', 14 | 'currency' => '통화|통화', 15 | 'language' => '언어|언어', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /app/Livewire/EditCustomTimetableItemForm.php: -------------------------------------------------------------------------------- 1 | count(10)->create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /resources/views/components/show-set-school.blade.php: -------------------------------------------------------------------------------- 1 | @role('super-admin') 2 |
3 |

4 | @if (auth()->user()->school != null) 5 | You are currently on {{auth()->user()->school->name}} - {{auth()->user()->school->address}} 6 | @else 7 | Please set a school 8 | @endif 9 |

10 |
11 | @endrole -------------------------------------------------------------------------------- /resources/views/pages/admin/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('admins.index'), 'text'=> 'Administrators', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Administrators')) 7 | 8 | @section('page_heading', __('Administrators')) 9 | 10 | @section('content', ) 11 | @livewire('list-admins-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/section/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('sections.index'), 'text'=> 'Sections', 'active'] 4 | ]]) 5 | 6 | @section('title', __('Class Sections')) 7 | 8 | @section('page_heading', __('Class Sections')) 9 | 10 | @section('content', ) 11 | @livewire('list-sections-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/timetable/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'Timetables', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Timetables')) 7 | 8 | @section('page_heading', __('Timetables')) 9 | 10 | @section('content', ) 11 | @livewire('list-timetables-table') 12 | @endsection -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /resources/views/pages/class-group/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('class-groups.index'), 'text'=> 'Class Groups' , 'active'] 4 | ]]) 5 | 6 | @section('title', __('Class Groups')) 7 | 8 | @section('page_heading', __('Class Groups')) 9 | 10 | @section('content') 11 | @livewire('list-class-groups-table') 12 | @endsection 13 | -------------------------------------------------------------------------------- /app/Livewire/MarkTabulation.php: -------------------------------------------------------------------------------- 1 | [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('grade-systems.index'), 'text'=> 'Grade System', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Grade systems')) 7 | 8 | @section('page_heading', __('Grade systems')) 9 | 10 | @section('content', ) 11 | @livewire('list-grade-systems-table') 12 | @endsection -------------------------------------------------------------------------------- /database/seeders/AccountApplicationSeeder.php: -------------------------------------------------------------------------------- 1 | count(10)->create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-category/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fee-categories.index'), 'text'=> 'Fee Categories', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Fee Categories')) 7 | 8 | @section('page_heading', __('Fee Categories')) 9 | 10 | @section('content', ) 11 | @livewire('list-fee-categories-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/school/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('schools.index'), 'text'=> 'Schools' , 'active'] 4 | ]]) 5 | 6 | @section('title', __('All schools')) 7 | 8 | @section('page_heading', 'All schools') 9 | 10 | @section('content', ) 11 | @livewire('set-school') 12 | 13 | @livewire('list-schools-table') 14 | @endsection -------------------------------------------------------------------------------- /app/Actions/Fortify/PasswordValidationRules.php: -------------------------------------------------------------------------------- 1 | setErrorBag(session()->get('errors', new \Illuminate\Support\MessageBag())->getMessages()); 12 | } 13 | 14 | public function render() 15 | { 16 | return view('livewire.list-students-table'); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Livewire/ListTeachersTable.php: -------------------------------------------------------------------------------- 1 | setErrorBag(session()->get('errors', new \Illuminate\Support\MessageBag())->getMessages()); 12 | } 13 | 14 | public function render() 15 | { 16 | return view('livewire.list-teachers-table'); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 17 | 18 | //the page redirects to the dashboard 19 | $response->assertStatus(302); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Livewire/PayInvoiceForm.php: -------------------------------------------------------------------------------- 1 | feeInvoice->loadMissing('feeInvoiceRecords', 'feeInvoiceRecords.fee'); 14 | } 15 | 16 | public function render() 17 | { 18 | return view('livewire.pay-invoice-form'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Livewire/ShowFeeInvoice.php: -------------------------------------------------------------------------------- 1 | feeInvoice->loadMissing('feeInvoiceRecords', 'feeInvoiceRecords.fee'); 14 | } 15 | 16 | public function render() 17 | { 18 | return view('livewire.show-fee-invoice'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /public/vendor/log-viewer/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/app.js": "/app.js?id=957d67186ab2055921321370e7dc21a5", 3 | "/app.css": "/app.css?id=46e730db84da71f61a3f42fe6b08d8eb", 4 | "/img/log-viewer-128.png": "/img/log-viewer-128.png?id=d576c6d2e16074d3f064e60fe4f35166", 5 | "/img/log-viewer-32.png": "/img/log-viewer-32.png?id=f8ec67d10f996aa8baf00df3b61eea6d", 6 | "/img/log-viewer-64.png": "/img/log-viewer-64.png?id=8902d596fc883ca9eb8105bb683568c6" 7 | } 8 | -------------------------------------------------------------------------------- /resources/views/pages/fee/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees'], 4 | ['href'=> route('fees.create'), 'text'=> 'Create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create Fee')) 8 | 9 | @section('page_heading', __('Create Fee')) 10 | 11 | @section('content', ) 12 | @livewire('create-fee-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/semester/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('semesters.index'), 'text'=> 'Semesters', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Semesters')) 7 | 8 | @section('page_heading', __('Semesters')) 9 | 10 | @section('content', ) 11 | @livewire('set-semester') 12 | 13 | @livewire('list-semesters-table') 14 | @endsection -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | allSubdomainsOfApplicationUrl(), 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Models/GradeSystem.php: -------------------------------------------------------------------------------- 1 | belongsTo(ClassGroup::class); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /resources/views/pages/exam/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams'], 4 | ['href'=> route('exams.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create exams')) 8 | 9 | @section('page_heading', __('Create exams')) 10 | 11 | @section('content' ) 12 | @livewire('create-exam-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/notice/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('notices.index'), 'text'=> 'notices'], 4 | ['href'=> route('notices.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create notices')) 8 | 9 | @section('page_heading', __('Create notices')) 10 | 11 | @section('content' ) 12 | @livewire('create-notice-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/school/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('schools.index'), 'text'=> 'Schools'], 4 | ['href'=> route('schools.create'), 'text'=> 'Create' , 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create school')) 8 | 9 | @section('page_heading', __('Create school')) 10 | 11 | @section('content' ) 12 | @livewire('create-school-form') 13 | @endsection -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import laravel from 'laravel-vite-plugin'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | laravel({ 7 | input: [ 8 | 'resources/css/app.css', 9 | 'resources/js/app.js', 10 | ], 11 | refresh: true, 12 | }), 13 | ], 14 | server: { 15 | hmr: { 16 | host: 'localhost', 17 | }, 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /app/Livewire/SetSchool.php: -------------------------------------------------------------------------------- 1 | schools = $schoolService->getAllSchools(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.set-school'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /database/seeders/ExamRecordSeeder.php: -------------------------------------------------------------------------------- 1 | count(3)->cphreate(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lang/vendor/world/ro/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Internal Server Error', 6 | 'record_not_found' => 'Nu :attribute a fost găsit!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'telefon|telefoane', 10 | 'country' => 'țară|țări', 11 | 'city' => 'oraș|orase', 12 | 'state' => 'judet|judete', 13 | 'timezone' => 'fus orar|fusuri orare', 14 | 'currency' => 'valută|valute', 15 | 'language' => 'limba|limbi', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/pages/account-application/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('account-applications.index'), 'text'=> 'Account Applications', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Account Applications')) 7 | 8 | @section('page_heading', __('Account Applications')) 9 | 10 | @section('content', ) 11 | @livewire('list-account-applications-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/syllabus/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('syllabi.index'), 'text'=> 'syllabi'], 4 | ['href'=> route('syllabi.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title',__('Create Syllabus')) 8 | 9 | @section('page_heading', __('Create Syllabus')) 10 | 11 | @section('content' ) 12 | @livewire('create-syllabus-form') 13 | @endsection -------------------------------------------------------------------------------- /app/Http/Middleware/PreventRequestsDuringMaintenance.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /resources/views/pages/academic-year/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('academic-years.index'), 'text'=> 'Academic years' , 'active'] 4 | ]]) 5 | 6 | @section('title', __('Academic years')) 7 | 8 | @section('page_heading', __('Academic years')) 9 | 10 | @section('content', ) 11 | @livewire('set-academic-year') 12 | 13 | @livewire('list-academic-years-table') 14 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/class/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('classes.index'), 'text'=> ' Classes' ,], 4 | ['href'=> route('classes.create'), 'text'=> 'Create' , 'active'], 5 | ]]) 6 | 7 | @section('title',__('Create Class')) 8 | 9 | @section('page_heading',__('Create Class')) 10 | 11 | @section('content') 12 | @livewire('create-class-form') 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/exam/tabulation.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams'], 4 | ['href'=> route('exams.tabulation'), 'text'=> 'Exam tabulation', 'active'],]]) 5 | 6 | @section('title', __('Exam tabulation')) 7 | 8 | @section('page_heading', __('Exam tabulation')) 9 | 10 | @section('content', ) 11 | @livewire('exam-tabulation') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/subject/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('subjects.index'), 'text'=> 'subjects'], 4 | ['href'=> route('subjects.create'), 'text'=> 'Create' , 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create subject')) 8 | 9 | @section('page_heading', __('Create subject')) 10 | 11 | @section('content' ) 12 | @livewire('create-subject-form') 13 | @endsection -------------------------------------------------------------------------------- /app/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | 'current_password', 16 | 'password', 17 | 'password_confirmation', 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /app/Http/Requests/StudentGraduateRequest.php: -------------------------------------------------------------------------------- 1 | 'nullable|exists:users,id', 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Livewire/ShowAccountApplication.php: -------------------------------------------------------------------------------- 1 | applicant->loadMissing('accountApplication.statuses'); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.show-account-application'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lang/vendor/world/en/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Internal Server Error', 6 | 'record_not_found' => 'No :attribute was found!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'phone|phones', 10 | 'country' => 'country|countries', 11 | 'city' => 'city|cities', 12 | 'state' => 'state|states', 13 | 'timezone' => 'timezone|timezones', 14 | 'currency' => 'currency|currencies', 15 | 'language' => 'language|languages', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /lang/vendor/world/ru/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Внутренняя Ошибка Сервера', 6 | 'record_not_found' => 'Нет :attribute найдено!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'телефон|телефоны', 10 | 'country' => 'страна|страны', 11 | 'city' => 'город|города', 12 | 'state' => 'округ|графства', 13 | 'timezone' => 'часовой пояс|часовые пояса', 14 | 'currency' => 'валюта|валюты', 15 | 'language' => 'язык|языки', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/pages/exam/result-checker.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams'], 4 | ['href'=> route('exams.result-checker'), 'text'=> 'Result Checker', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Result Checker')) 8 | 9 | @section('page_heading', __('Result Checker')) 10 | 11 | @section('content', ) 12 | @livewire('result-checker') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/parent/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('parents.index'), 'text'=> 'Parent'], 4 | ['href'=> route('parents.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create parent')) 8 | 9 | @section('page_heading', __('Create parent')) 10 | 11 | @section('content' ) 12 | @livewire('create-parent-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/semester/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('semesters.index'), 'text'=> 'Semesters'], 4 | ['href'=> route('semesters.create'), 'text'=> 'Create' , 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create semester')) 8 | 9 | @section('page_heading', __('Create semester')) 10 | 11 | @section('content' ) 12 | @livewire('create-semester-form') 13 | @endsection -------------------------------------------------------------------------------- /database/factories/ClassGroupFactory.php: -------------------------------------------------------------------------------- 1 | $this->faker->name(), 18 | 'school_id' => 1, 19 | ]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /database/seeders/RunInProductionSeeder.php: -------------------------------------------------------------------------------- 1 | call([ 17 | WeekdaySeeder::class, 18 | RoleSeeder::class, 19 | PermissionSeeder::class, 20 | ]); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lang/vendor/world/ar/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'خطأ في الخادم', 6 | 'record_not_found' => 'لم يتم العثور على :attribute!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'الهواتف|هاتف', 10 | 'country' => 'البلدان|البلد', 11 | 'city' => 'المدن|المدينة', 12 | 'state' => 'المقاطعة|المقاطعات', 13 | 'timezone' => 'المناطق الزمنية|المنطقة الزمنية', 14 | 'currency' => 'العملات|عملة', 15 | 'language' => 'اللغات|اللغة', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/pages/exam/exam-record/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'Exams'], 4 | ['href'=> route('exam-records.index'), 'text'=> 'Exam records', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Exam records')) 8 | 9 | @section('page_heading', __('Exam records')) 10 | 11 | @section('content', ) 12 | @livewire('list-exam-records-table') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/fee/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> "Fees"], 4 | ['href'=> route('fees.edit', $fee->id), 'text'=> "Edit $fee->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("Edit $fee->name")) 8 | 9 | @section('page_heading', __("Edit $fee->name")) 10 | 11 | @section('content', ) 12 | @livewire('edit-fee-form', ['fee' => $fee]) 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-invoice/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees'], 4 | ['href'=> route('fee-invoices.index'), 'text'=> 'Fee Invoices', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Fees Invoices')) 8 | 9 | @section('page_heading', __('Fees Invoices')) 10 | 11 | @section('content', ) 12 | @livewire('list-fee-invoices-table') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/student/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('students.index'), 'text'=> 'Students'], 4 | ['href'=> route('students.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create student')) 8 | 9 | @section('page_heading', __('Create student')) 10 | 11 | @section('content' ) 12 | @livewire('create-student-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/teacher/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('teachers.index'), 'text'=> 'Teacher'], 4 | ['href'=> route('teachers.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create teacher')) 8 | 9 | @section('page_heading', __('Create teacher')) 10 | 11 | @section('content' ) 12 | @livewire('create-teacher-form') 13 | @endsection -------------------------------------------------------------------------------- /app/Livewire/ApplicationHistory.php: -------------------------------------------------------------------------------- 1 | applicant->loadMissing('accountApplication', 'accountApplication.statuses'); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.application-history'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Livewire/CreateFeeForm.php: -------------------------------------------------------------------------------- 1 | feeCategories = FeeCategory::where('school_id', auth()->user()->school_id)->get(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.create-fee-form'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lang/vendor/world/de/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Interner Serverfehler', 6 | 'record_not_found' => 'Es wurde kein :attribute gefunden!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'Telefon|Telefone', 10 | 'country' => 'Land|Länder', 11 | 'city' => 'Stadt|Städte', 12 | 'state' => 'Zustand|Zustände', 13 | 'timezone' => 'Zeitzone|Zeitzonen', 14 | 'currency' => 'Währung|Währungen', 15 | 'language' => 'Sprache|Sprachen', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /lang/vendor/world/pl/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Wewnętrzny błąd serwera', 6 | 'record_not_found' => 'Nie znaleziono :attribute!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'telefon|telefony', 10 | 'country' => 'kraj|kraje', 11 | 'city' => 'miasto|miasta', 12 | 'polish' => 'hrabstwo|hrabstwa', 13 | 'timezone' => 'strefa czasowa|strefy czasowe', 14 | 'currency' => 'waluta|waluty', 15 | 'language' => 'język|języki', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/pages/exam/print-exam-tabulation.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.print') 2 | 3 | @section('title', 'Print exam tabulation') 4 | 5 | @section('content') 6 | @livewire('mark-tabulation', ['tabulatedRecords' => $tabulatedRecords,'totalMarksAttainableInEachSubject' => $totalMarksAttainableInEachSubject, 'subjects' => $subjects]) 7 | @endsection 8 | 9 | @section('style') 10 | 15 | @endSection -------------------------------------------------------------------------------- /tests/CreatesApplication.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'অভ্যন্তরীণ সার্ভার ত্রুটি', 6 | 'record_not_found' => ':attribute রেকর্ডটি পাওয়া যায় নি!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'ফোন|ফোনগুলি', 10 | 'country' => 'দেশ|দেশগুলি', 11 | 'city' => 'শহর|শহরগুলি', 12 | 'state' => 'কাউন্টি|কাউন্টিগুলি', 13 | 'timezone' => 'সময় অঞ্চল|সময় অঞ্চলগুলো', 14 | 'currency' => 'মুদ্রা|মুদ্রাগুলি', 15 | 'language' => 'ভাষা|ভাষাগুলো', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /lang/vendor/world/br/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Erro do Servidor Interno', 6 | 'record_not_found' => 'Não :atribute foi encontrado!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'telefone|telefones', 10 | 'country' => 'país|países', 11 | 'city' => 'cidade|cidades', 12 | 'state' => 'estado|estados', 13 | 'timezone' => 'fuso horário|fusos horários', 14 | 'currency' => 'moeda|moedas', 15 | 'language' => 'língua|línguas', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /lang/vendor/world/fr/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Erreur Interne du Serveur', 6 | 'record_not_found' => 'Non :attribute a été trouvé !', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'téléphone|téléphones', 10 | 'country' => 'pays|pays', 11 | 'city' => 'ville|villes', 12 | 'state' => 'état|états', 13 | 'timezone' => 'fuseau horaire|fuseaux horaires', 14 | 'currency' => 'devise|devises', 15 | 'language' => 'langue|langues', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /lang/vendor/world/pt/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Erro do Servidor Interno', 6 | 'record_not_found' => 'Não :atribute foi encontrado!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'telefone|telefones', 10 | 'country' => 'país|países', 11 | 'city' => 'cidade|cidades', 12 | 'state' => 'estados|estado', 13 | 'timezone' => 'fuso horário|fusos horários', 14 | 'currency' => 'moeda|moedas', 15 | 'language' => 'língua|línguas', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/pages/account-application/rejected-applications.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('account-applications.index'), 'text'=> 'Account Applications', 'active'], 4 | ]]) 5 | 6 | @section('title', __('Account Applications')) 7 | 8 | @section('page_heading', __('Account Applications')) 9 | 10 | @section('content', ) 11 | @livewire('list-rejected-account-applications-table') 12 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/admin/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('admins.index'), 'text'=> 'Administrator'], 4 | ['href'=> route('admins.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create administrator')) 8 | 9 | @section('page_heading', __('Create Administrator')) 10 | 11 | @section('content' ) 12 | @livewire('create-admin-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/grade-system/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('grade-systems.index'), 'text'=> 'grade-systems'], 4 | ['href'=> route('grade-systems.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create Grade')) 8 | 9 | @section('page_heading', __('Create Grade')) 10 | 11 | @section('content') 12 | @livewire('create-grade-system-form') 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/section/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('sections.index'), 'text'=> 'Sections'], 4 | ['href'=> route('sections.create'), 'text'=> 'Create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create Class Section')) 8 | 9 | @section('page_heading', __('Create Class Section')) 10 | 11 | @section('content' ) 12 | @livewire('create-section-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/student/promotion/promote.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('students.index'), 'text'=> 'Students'], 4 | ['href'=> route('students.promote'), 'text'=> 'Promote Students', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Promote Students')) 8 | 9 | @section('page_heading', __('Promote Students')) 10 | 11 | @section('content' ) 12 | @livewire('promote-students') 13 | @endsection -------------------------------------------------------------------------------- /app/Actions/Jetstream/DeleteUser.php: -------------------------------------------------------------------------------- 1 | deleteProfilePhoto(); 19 | $user->tokens->each->delete(); 20 | $user->delete(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Livewire/CreateSectionForm.php: -------------------------------------------------------------------------------- 1 | myClasses = $classService->getAllClasses(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.create-section-form'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lang/vendor/world/es/response.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'server_error' => 'Error de servidor interno', 6 | 'record_not_found' => '¡No se encontró ningún :attribute!', 7 | ], 8 | 'attributes' => [ 9 | 'phone' => 'teléfono|telefonos', 10 | 'country' => 'país|países', 11 | 'city' => 'ciudad|ciudades', 12 | 'state' => 'estado|estados', 13 | 'timezone' => 'zona horaria|zonas horarias', 14 | 'currency' => 'divisa|monedas', 15 | 'language' => 'idioma|idiomas', 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/views/components/partials/action-section.blade.php: -------------------------------------------------------------------------------- 1 |
merge(['class' => 'md:grid grid-cols-12']) }}> 2 |
3 |

{{$title}}

4 |

{{$description}}

5 |
6 | 7 |
8 |
9 |
10 | {{ $content }} 11 |
12 |
13 |
14 |
-------------------------------------------------------------------------------- /resources/views/pages/timetable/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'Timetable'], 4 | ['href'=> route('timetables.create'), 'text'=> 'create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create timetable')) 8 | 9 | @section('page_heading', __('Create timetable')) 10 | 11 | @section('content' ) 12 | @livewire('create-timetable-form') 13 | @endsection -------------------------------------------------------------------------------- /app/Http/Requests/UpdateAccountApplicationRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules() 15 | { 16 | return [ 17 | 'role_id' => 'required|exists:roles,id', 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Livewire/CreateClassForm.php: -------------------------------------------------------------------------------- 1 | classGroups = $myClassService->getAllClassGroups(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.create-class-form'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/class-group/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('class-groups.index'), 'text'=> 'Class Groups'], 3 | ['href'=> route('class-groups.show', $classGroup->id), 'text'=> "View $classGroup->name", 'active'], 4 | ]]) 5 | 6 | @section('title', __("View $classGroup->name")) 7 | 8 | @section('page_heading', __("View $classGroup->name")) 9 | 10 | @section('content') 11 | @livewire('show-class-group', ['classGroup' => $classGroup]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/school/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('schools.index'), 'text'=> 'Schools'], 4 | ['href'=> route('schools.edit', $school->id), 'text'=> 'Settings' , 'active'] 5 | ]]) 6 | @section('title', __("Edit $school->name")) 7 | 8 | @section('page_heading', __("Edit $school->name")) 9 | 10 | @section('content') 11 | @livewire('edit-school-form', ['school' => $school]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /app/Livewire/ShowAcademicYear.php: -------------------------------------------------------------------------------- 1 | academicYear = $academicYear->loadMissing('semesters'); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.show-academic-year'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Livewire/ShowClassGroup.php: -------------------------------------------------------------------------------- 1 | setErrorBag(session()->get('errors', new \Illuminate\Support\MessageBag())->getMessages()); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.show-class-group'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.guest') 2 | 3 | @section('title', 'Login') 4 | 5 | @section('body') 6 | 7 | 8 | 9 |
10 |

Have An Account? Login

11 |
12 |
13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/class-group/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('class-groups.index'), 'text'=> 'Class Groups' ], 4 | ['href'=> route('class-groups.create'), 'text'=> 'Create', 'active'], 5 | ]]) 6 | 7 | @section('title',__('Create Class Group')) 8 | 9 | @section('page_heading',__('Create Class Group')) 10 | 11 | @section('content') 12 | @livewire('create-class-group-form') 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/exam/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams' , ], 4 | ['href'=> route('exams.edit', $exam->id), 'text'=> "Edit $exam->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $exam->name")) 7 | 8 | @section('page_heading', __("Edit $exam->name")) 9 | 10 | @section('content') 11 | @livewire('edit-exam-form', ['exam' => $exam]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-category/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fee-categories.index'), 'text'=> 'Fee Categories'], 4 | ['href'=> route('fee-categories.create'), 'text'=> 'Create', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Create Fee Category')) 8 | 9 | @section('page_heading', __('Create Fee Category')) 10 | 11 | @section('content', ) 12 | @livewire('create-fee-category-form') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/components/textarea.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | @error($name) 5 |

{{$message}}

6 | @enderror 7 |
-------------------------------------------------------------------------------- /resources/views/livewire/show-syllabus.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{$syllabus->name}}

4 |
5 |
6 |

7 | {{$syllabus->description}} 8 |

9 | 10 | 11 | Download 12 | 13 |
14 |
15 | -------------------------------------------------------------------------------- /resources/views/pages/academic-year/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('academic-years.index'), 'text'=> ' Academic years' ,], 4 | ['href'=> route('academic-years.create'), 'text'=> 'Create' , 'active'], 5 | 6 | ]]) 7 | 8 | @section('title', __('Create academic year')) 9 | 10 | @section('page_heading', __('Create academic year')) 11 | 12 | @section('content' ) 13 | @livewire('create-academic-year-form') 14 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/admin/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('admins.index'), 'text'=> 'admins' , ], 4 | ['href'=> route('admins.edit', $admin->id), 'text'=> "Edit $admin->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $admin->name")) 7 | 8 | @section('page_heading', __("Edit $admin->name")) 9 | 10 | @section('content') 11 | @livewire('edit-admin-form', ['admin' => $admin]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/class/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('classes.index'), 'text'=> 'Classes'], 4 | ['href'=> route('classes.show', $class->id), 'text'=> "View $class->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $class->name")) 8 | 9 | @section('page_heading', __("View $class->name")) 10 | 11 | @section('content') 12 | @livewire('show-class', ['class' => $class]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/notice/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('notices.index'), 'text'=> 'notices'], 4 | ['href'=> route('notices.show', $notice->id), 'text'=> "View $notice->title", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $notice->title")) 8 | 9 | @section('page_heading', __("View $notice->title") ) 10 | 11 | @section('content') 12 | @livewire('show-notice', ['notice' => $notice]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /app/Livewire/CreateGradeSystemForm.php: -------------------------------------------------------------------------------- 1 | classGroups = $myClassService->getAllClassGroups(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.create-grade-system-form'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Livewire/ShowSection.php: -------------------------------------------------------------------------------- 1 | section = $this->section->load('studentRecords', 'studentRecords.user'); 16 | $this->students = $this->section->students(); 17 | } 18 | 19 | public function render() 20 | { 21 | return view('livewire.show-section'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /resources/views/pages/parent/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('parents.index'), 'text'=> 'parents' , ], 4 | ['href'=> route('parents.edit', $parent->id), 'text'=> "Edit $parent->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $parent->name")) 7 | 8 | @section('page_heading', __("Edit $parent->name")) 9 | 10 | @section('content') 11 | @livewire('edit-parent-form', ['parent' => $parent]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/subject/assign-teacher.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('subjects.index'), 'text'=> 'subjects'], 4 | ['href'=> route('subjects.assign-teacher'), 'text'=> 'Assign teacher', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Assign teachers to subjects')) 8 | 9 | @section('page_heading', __('Assign teachers to subjects')) 10 | 11 | @section('content' ) 12 | @livewire('assign-teacher-to-subjects') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/subject/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('subjects.index'), 'text'=> 'Subjects' , ], 4 | ['href'=> route('subjects.edit', $subject->id), 'text'=> "Edit $subject->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $subject->name")) 7 | 8 | @section('page_heading', __("Edit $subject->name")) 9 | 10 | @section('content') 11 | @livewire('edit-subject-form', ['subject' => $subject]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /app/Livewire/CreateTimetableForm.php: -------------------------------------------------------------------------------- 1 | classes = $myClassService->getAllClasses(); 17 | } 18 | 19 | public function render() 20 | { 21 | return view('livewire.create-timetable-form'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Livewire/SetAcademicYear.php: -------------------------------------------------------------------------------- 1 | academicYears = $academicYearService->getAllAcademicYears(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.set-academic-year'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/class/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('classes.index'), 'text'=> 'Classes' ], 4 | ['href'=> route('classes.edit', $myClass->id), 'text'=> "Edit $myClass->name" ] 5 | ]]) 6 | @section('title', __("Edit class $myClass->name")) 7 | 8 | @section('page_heading', __("Edit class $myClass->name ")) 9 | 10 | @section('content') 11 | @livewire('edit-class-form', ['myClass' => $myClass]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/exam/exam-slot/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'Exams'], 4 | ['href'=> route('exam-slots.index' ,$exam->id), 'text'=> 'Exam slots', 'active'], 5 | ]]) 6 | 7 | @section('title', __("Exam Slots In $exam->name")) 8 | 9 | @section('page_heading', __("Exam Slots In $exam->name")) 10 | 11 | @section('content', ) 12 | @livewire('list-exam-slots-table', ['exam'=> $exam]) 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/syllabus/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('syllabi.index'), 'text'=> 'syllabi'], 4 | ['href'=> route('syllabi.show', $syllabus->id), 'text'=> "View $syllabus->title", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $syllabus->name")) 8 | 9 | @section('page_heading', __("View $syllabus->name") ) 10 | 11 | @section('content') 12 | @livewire('show-syllabus', ['syllabus' => $syllabus]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/school/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('schools.index'), 'text'=> 'schools'], 4 | ['href'=> route('schools.show', $school->id), 'text'=> "View $school->name details", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $school->name details")) 8 | 9 | @section('page_heading', __("View $school->name details") ) 10 | 11 | @section('content') 12 | @livewire('show-school', ['school' => $school]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/section/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('sections.index'), 'text'=> 'sections' , ], 4 | ['href'=> route('sections.edit', $section->id), 'text'=> "Edit $section->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $section->name")) 7 | 8 | @section('page_heading', __("Edit $section->name")) 9 | 10 | @section('content') 11 | @livewire('edit-section-form', ['section' => $section]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/semester/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('semesters.index'), 'text'=> 'semesters' , ], 4 | ['href'=> route('semesters.edit', $semester->id), 'text'=> "Edit $semester->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $semester->name")) 7 | 8 | @section('page_heading', __("Edit $semester->name")) 9 | 10 | @section('content') 11 | @livewire('edit-semester-form', ['semester' => $semester] 12 | )@endsection 13 | -------------------------------------------------------------------------------- /app/Livewire/SetSemester.php: -------------------------------------------------------------------------------- 1 | semesters = $semesterService->getAllSemestersInAcademicYear(auth()->user()->school->academicYear->id); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.set-semester'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/admin/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('admins.index'), 'text'=> 'Administrators'], 4 | ['href'=> route('admins.show', $admin->id), 'text'=> "View $admin->name's profile", 'active'], 5 | ]]) 6 | 7 | @section('title', __("$admin->name's profile")) 8 | 9 | @section('page_heading', __("$admin->name's profile") ) 10 | 11 | @section('content') 12 | @livewire('show-admin-profile', ['admin' => $admin]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/parent/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('parents.index'), 'text'=> 'Parents'], 4 | ['href'=> route('parents.show', $parent->id), 'text'=> "View $parent->name's profile", 'active'], 5 | ]]) 6 | 7 | @section('title', __("$parent->name's profile")) 8 | 9 | @section('page_heading', __("$parent->name's profile") ) 10 | 11 | @section('content') 12 | @livewire('show-parent-profile', ['parent' => $parent]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/student/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('students.index'), 'text'=> 'students' , ], 4 | ['href'=> route('students.edit', $student->id), 'text'=> "Edit $student->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $student->name")) 7 | 8 | @section('page_heading', __("Edit $student->name")) 9 | 10 | @section('content') 11 | @livewire('edit-student-form', ['student' => $student]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/teacher/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('teachers.index'), 'text'=> 'teachers' , ], 4 | ['href'=> route('teachers.edit', $teacher->id), 'text'=> "Edit $teacher->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $teacher->name")) 7 | 8 | @section('page_heading', __("Edit $teacher->name")) 9 | 10 | @section('content') 11 | @livewire('edit-teacher-form', ['teacher' => $teacher]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /app/Http/Requests/AssignStudentRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules() 15 | { 16 | return [ 17 | 'student_id' => 'required|integer|exists:users,id', 18 | 'assign' => 'nullable|boolean', 19 | ]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Livewire/ShowPromotion.php: -------------------------------------------------------------------------------- 1 | students = $studentService->getStudentById($this->promotion->students); 17 | } 18 | 19 | public function render() 20 | { 21 | return view('livewire.show-promotion'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /resources/views/components/input.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | $errors->$errorBag->has($name)]) {{$attributes}} value="{{old($name) ?? ($value != null ? $value : '')}}"> 4 | @error($name, $errorBag) 5 |

{{$message}}

6 | @enderror 7 |
-------------------------------------------------------------------------------- /resources/views/pages/exam/semester-result-tabulation.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams'], 4 | ['href'=> route('exams.semester-result-tabulation'), 'text'=> 'Semester Result tabulation', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Semester result tabulation')) 8 | 9 | @section('page_heading', __('Semester result tabulation')) 10 | 11 | @section('content', ) 12 | @livewire('semester-result-tabulation') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/section/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('sections.index'), 'text'=> 'sections'], 4 | ['href'=> route('sections.show', $section->id), 'text'=> "View $section->name details", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $section->name details")) 8 | 9 | @section('page_heading', __("View $section->name details") ) 10 | 11 | @section('content') 12 | @livewire('show-section', ['section' => $section]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /app/Http/Requests/AssignTeacherToSubjectRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules() 15 | { 16 | return [ 17 | 'subjects' => 'required', 18 | 'subjects.*' => 'nullable|exists:subjects,id', 19 | ]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Livewire/CreateExamForm.php: -------------------------------------------------------------------------------- 1 | semesters = $semesterService->getAllSemestersInAcademicYear(auth()->user()->school->academic_year_id); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.create-exam-form'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/teacher/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('teachers.index'), 'text'=> 'Teachers'], 4 | ['href'=> route('teachers.show', $teacher->id), 'text'=> "View $teacher->name's profile", 'active'], 5 | ]]) 6 | 7 | @section('title', __("$teacher->name's profile")) 8 | 9 | @section('page_heading', __("$teacher->name's profile") ) 10 | 11 | @section('content') 12 | @livewire('show-teacher-profile', ['teacher' => $teacher]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /app/Livewire/ListAcademicYearsTable.php: -------------------------------------------------------------------------------- 1 | academicYears = $academicYearService->getAllAcademicYears(); 15 | } 16 | 17 | public function render() 18 | { 19 | return view('livewire.list-academic-years-table'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/grade-system/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('grade-systems.index'), 'text'=> 'Grade systems' , ], 4 | ['href'=> route('grade-systems.edit', $gradeSystem->id), 'text'=> "Edit $gradeSystem->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $gradeSystem->name")) 7 | 8 | @section('page_heading', __("Edit $gradeSystem->name")) 9 | 10 | @section('content') 11 | @livewire('edit-grade-system-form', ['grade' => $gradeSystem]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/timetable/custom-timetable-item/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'Timetables'], 4 | ['href'=> route('custom-timetable-items.index'), 'text'=> 'Custom timetable items', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Custom timetable items')) 8 | 9 | @section('page_heading', __('Custom timetable items')) 10 | 11 | @section('content', ) 12 | @livewire('list-custom-timetable-items-table') 13 | @endsection -------------------------------------------------------------------------------- /app/Http/Requests/PayFeeInvoiceRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules(): array 15 | { 16 | return [ 17 | 'pay' => 'required|integer|min:-10000000000000|max:10000000000000', 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-invoice/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees'], 4 | ['href'=> route('fee-invoices.index'), 'text'=> 'Fee Invoices'], 5 | ['href'=> route('fee-invoices.create'), 'text'=> 'Create', 'active'], 6 | ]]) 7 | 8 | @section('title', __('Create Fees Invoice')) 9 | 10 | @section('page_heading', __('Create Fees Invoice')) 11 | 12 | @section('content', ) 13 | @livewire('create-fee-invoice-form') 14 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/student/promotion/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('students.promotions'), 'text'=> 'promotions'], 4 | ['href'=> route('students.promotions.show', $promotion->id), 'text'=> "View $promotion->label", 'active'], 5 | ]]) 6 | 7 | @section('title', __("$promotion->label")) 8 | 9 | @section('page_heading', __("$promotion->label") ) 10 | 11 | @section('content') 12 | @livewire('show-promotion', ['promotion' => $promotion]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/timetable/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'timetables' , ], 4 | ['href'=> route('timetables.edit', $timetable->id), 'text'=> "Edit $timetable->name" , 'active'] 5 | ]]) 6 | @section('title', __("Edit $timetable->name")) 7 | 8 | @section('page_heading', __("Edit $timetable->name")) 9 | 10 | @section('content') 11 | @livewire('edit-timetable-form', ['timetable' => $timetable]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /resources/views/pages/timetable/manage.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'timetables' , ], 4 | ['href'=> route('timetables.manage', $timetable->id), 'text'=> "Manage $timetable->name" , 'active'] 5 | ]]) 6 | 7 | @section('title', __("Manage $timetable->name")) 8 | 9 | @section('page_heading', __("Manage $timetable->name") ) 10 | 11 | @section('content') 12 | @livewire('manage-timetable', ['timetable' => $timetable]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /app/Livewire/EditClassForm.php: -------------------------------------------------------------------------------- 1 | classGroups = $myClassService->getAllClassGroups(); 18 | } 19 | 20 | public function render() 21 | { 22 | return view('livewire.edit-class-form'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /database/factories/AcademicYearFactory.php: -------------------------------------------------------------------------------- 1 | faker->year; 17 | 18 | return [ 19 | 'start_year' => $year, 20 | 'stop_year' => $year + 1, 21 | 'school_id' => 1, 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Http/Requests/AcademicYearStoreRequest.php: -------------------------------------------------------------------------------- 1 | 'required|digits:4|integer|min:1900', 18 | 'stop_year' => 'required|digits:4|integer|min:1900|gt:start_year', 19 | ]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/livewire/create-admin-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create Admin

4 |
5 |
6 |
7 | 8 | @csrf 9 | 10 |
11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /app/Livewire/EditAccountApplicationForm.php: -------------------------------------------------------------------------------- 1 | roles = Role::whereIn('name', ['teacher', 'student', 'parent'])->get(); 18 | } 19 | 20 | public function render() 21 | { 22 | return view('livewire.edit-account-application-form'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /config/model-status.php: -------------------------------------------------------------------------------- 1 | Spatie\ModelStatus\Status::class, 11 | 12 | /* 13 | * The name of the column which holds the ID of the model related to the statuses. 14 | * 15 | * You can change this value if you have set a different name in the migration for the statuses table. 16 | */ 17 | 'model_primary_key_attribute' => 'model_id', 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/views/livewire/create-parent-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create Parent

4 |
5 |
6 |
7 | 8 | @csrf 9 | 10 |
11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /resources/views/pages/exam/academic-year-result-tabulation.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams'], 4 | ['href'=> route('exams.academic-year-result-tabulation'), 'text'=> 'Academic Year Result tabulation', 'active'], 5 | ]]) 6 | 7 | @section('title', __('Aademic Year Result Tabulation')) 8 | 9 | @section('page_heading', __('Aademic Year Result Tabulation')) 10 | 11 | @section('content', ) 12 | @livewire('academic-year-result-tabulation') 13 | @endsection -------------------------------------------------------------------------------- /resources/views/livewire/create-teacher-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create Teacher

4 |
5 |
6 |
7 | 8 | @csrf 9 | 10 |
11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-category/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fee-categories.index'), 'text'=> 'Fee Categories'], 4 | ['href'=> route('fee-categories.edit', $feeCategory->id), 'text'=> "Edit $feeCategory->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("Edit $feeCategory->name")) 8 | 9 | @section('page_heading', __("Edit $feeCategory->name")) 10 | 11 | @section('content', ) 12 | @livewire('edit-fee-category-form',['feeCategory' => $feeCategory]) 13 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/student/graduation/graduate.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('students.index'), 'text'=> 'Students'], 4 | ['href'=> route('students.graduations'), 'text'=> "Graduated Students"], 5 | ['href'=> route('students.graduate'), 'text'=> 'Graduate Students', 'active'], 6 | ]]) 7 | 8 | @section('title', __('Graduate Students')) 9 | 10 | @section('page_heading', __('Graduate Students')) 11 | 12 | @section('content' ) 13 | @livewire('graduate-students') 14 | @endsection -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 19 | return route('login'); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Http/Requests/UpdateFeeRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules(): array 15 | { 16 | return [ 17 | 'name' => 'required|max:1024', 18 | 'description' => 'nullable|max:10000', 19 | ]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Requests/SemesterStoreRequest.php: -------------------------------------------------------------------------------- 1 | 'string|max:255', 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Http/Requests/StoreExamSlotRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string|max:255', 18 | 'description' => 'nullable|string|max:10000', 19 | 'total_marks' => 'required|integer|min:1', 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Http/Requests/UpdateExamSlotRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string|max:255', 18 | 'description' => 'nullable|string|max:10000', 19 | 'total_marks' => 'required|integer|min:1', 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Traits/InSchool.php: -------------------------------------------------------------------------------- 1 | user()->school_id : $school->id; 18 | 19 | return $query->where('school_id', $school); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/academic-year/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('academic-years.index'), 'text'=> 'academic years'], 4 | ['href'=> route('academic-years.show', $academicYear->id), 'text'=> "View {$academicYear->name}", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View {$academicYear->name}")) 8 | 9 | @section('page_heading', __("View {$academicYear->name}") ) 10 | 11 | @section('content') 12 | @livewire('show-academic-year', ['academicYear' => $academicYear]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/parent/assign-students.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('parents.index'), 'text'=> 'Parents'], 4 | ['href'=> route('parents.assign-student',$parent->id), 'text'=> "Assign students to $parent->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("Assign students to $parent->name")) 8 | 9 | @section('page_heading', __("Assign students to $parent->name") ) 10 | 11 | @section('content') 12 | @livewire('assign-students-to-parent', ['parent' => $parent]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Currently all Versions excluding the pre release would receive security updates 6 | 7 | | Version | Supported | 8 | | ------- | ------------------ | 9 | | 1.x | :white_check_mark: | 10 | 11 | ## Reporting a Vulnerability 12 | 13 | Notice any vulnerability, please email me at ifezueyoung@gmail.com or chat me up on WhatsApp at +2349074112860. 14 | I'd try to take all vulnerability threats seriously 15 | 16 | Do provide full specifications on how it could potentially affect the app and if possible create a PR fixing said issue 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "vite --host", 5 | "build": "vite build" 6 | }, 7 | "devDependencies": { 8 | "autoprefixer": "^10.4.13", 9 | "axios": "^1.8.2", 10 | "laravel-vite-plugin": "^1.2.0", 11 | "lodash": "^4.17.19", 12 | "postcss": "^8.4.31", 13 | "tailwindcss": "^3.2.4", 14 | "vite": "^6.4.1" 15 | }, 16 | "dependencies": { 17 | "@alpinejs/persist": "^3.10.5", 18 | "@fortawesome/fontawesome-free": "^6.2.1", 19 | "alpinejs": "^3.10.5" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/pages/class-group/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('class-groups.index'), 'text'=> 'class group' ], 4 | ['href'=> route('class-groups.edit', $classGroup->id), 'text'=> "Edit $classGroup->name" , 'active'] 5 | ]]) 6 | 7 | @section('title', __("Edit Class Group $classGroup->name")) 8 | 9 | @section('page_heading', __("Edit Class Group $classGroup->name")) 10 | 11 | @section('content') 12 | @livewire('edit-class-group-form', ['classGroup' => $classGroup]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- 1 | 2 | # Label definitions for php files 3 | PHP: 4 | - app/** 5 | - config/** 6 | - database/** 7 | - routes/** 8 | - tests/** 9 | 10 | # label definition for blade files 11 | blade: 12 | - resources/views/** 13 | 14 | # label definition for js files 15 | js: 16 | - resources/js/** 17 | 18 | # label definition for dependencies 19 | dependencies: 20 | - composer.json 21 | - package.json 22 | - yarn.lock 23 | - composer.lock 24 | 25 | # label definition for tests 26 | tests: 27 | - tests/** 28 | 29 | # label definition for github 30 | github: 31 | - .github/** 32 | 33 | -------------------------------------------------------------------------------- /resources/views/pages/academic-year/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('academic-years.index'), 'text' => 'academic-years' , ], 4 | ['href'=> route('academic-years.edit', $academicYear->id), 'text'=> "Edit {$academicYear->name}" , 'active'] 5 | ]]) 6 | @section('title', __("Edit {$academicYear->name}")) 7 | 8 | @section('page_heading', __("Edit {$academicYear->name}")) 9 | 10 | @section('content') 11 | @livewire('edit-academic-year-form', ['academicYear' => $academicYear]) 12 | @endsection 13 | -------------------------------------------------------------------------------- /app/Http/Requests/SetSemesterRequest.php: -------------------------------------------------------------------------------- 1 | 'required|exists:semesters,id', 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Livewire/EditExamForm.php: -------------------------------------------------------------------------------- 1 | semesters = $semesterService->getAllSemestersInAcademicYear(auth()->user()->school->academic_year_id); 18 | } 19 | 20 | public function render() 21 | { 22 | return view('livewire.edit-exam-form'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-invoice/pay.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees'], 4 | ['href'=> route('fee-invoices.index'), 'text'=> 'Fee Invoices'], 5 | ['href'=> route('fee-invoices.pay', $feeInvoice->id), 'text'=> 'Pay', 'active'], 6 | ]]) 7 | 8 | @section('title', __('Add Payments to Fees Invoice')) 9 | 10 | @section('page_heading', __('Add Payments to Fees Invoice')) 11 | 12 | @section('content', ) 13 | @livewire('pay-invoice-form' , compact('feeInvoice')) 14 | @endsection -------------------------------------------------------------------------------- /resources/views/livewire/create-academic-year-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 | @csrf 8 | 9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /resources/views/pages/grade-system/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('account-applications.index'), 'text'=> 'Account Applications'], 4 | ['href'=> route('account-applications.show', $applicant->id), 'text'=> "View $applicant->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $applicant->name's application")) 8 | 9 | @section('page_heading', __("View $applicant->name's application") ) 10 | 11 | @section('content') 12 | @livewire('show-account-application', ['applicant' => $applicant]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /database/migrations/2022_03_31_213839_create_weekdays_table.php: -------------------------------------------------------------------------------- 1 | id(); 12 | $table->string('name'); 13 | $table->timestamps(); 14 | }); 15 | } 16 | 17 | public function down(): void 18 | { 19 | Schema::dropIfExists('weekdays'); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/views/pages/exam/exam-slot/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'Exams'], 4 | ['href'=> route('exam-slots.index' ,$exam->id), 'text'=> 'Exam slots'], 5 | ['href'=> route('exam-slots.create',$exam->id), 'text'=> 'Create', 'active'], 6 | ]]) 7 | 8 | @section('title', __("Create Exam slots in $exam->name")) 9 | 10 | @section('page_heading', __("Create Exam slots in $exam->name")) 11 | 12 | @section('content' ) 13 | @livewire('create-exam-slot-form', ['exam' => $exam]) 14 | @endsection -------------------------------------------------------------------------------- /resources/views/pages/fee/fee-invoice/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees'], 4 | ['href'=> route('fee-invoices.index'), 'text'=> 'Fee Invoices'], 5 | ['href'=> route('fee-invoices.edit', $feeInvoice->id), 'text'=> $feeInvoice->name , 'active'], 6 | ]]) 7 | 8 | @section('title', __("Edit $feeInvoice->name")) 9 | 10 | @section('page_heading', __("Edit $feeInvoice->name")) 11 | 12 | @section('content', ) 13 | @livewire('edit-fee-invoice-form', ['feeInvoice' => $feeInvoice]) 14 | @endsection -------------------------------------------------------------------------------- /app/Http/Requests/SubjectStoreRequest.php: -------------------------------------------------------------------------------- 1 | 'required|max:255', 18 | 'short_name' => 'required|max:255', 19 | 'my_class_id' => 'exists:my_classes,id', 20 | 'teachers.*' => 'exists:users,id', 21 | ]; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Models/Syllabus.php: -------------------------------------------------------------------------------- 1 | belongsTo(Subject::class); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /resources/views/pages/account-application/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('account-applications.index'), 'text'=> 'Account Applications'], 4 | ['href'=> route('account-applications.show', $applicant->id), 'text'=> "View $applicant->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $applicant->name's application")) 8 | 9 | @section('page_heading', __("View $applicant->name's application") ) 10 | 11 | @section('content') 12 | @livewire('show-account-application', ['applicant' => $applicant]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /database/factories/CustomTimetableItemFactory.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class CustomTimetableItemFactory extends Factory 11 | { 12 | /** 13 | * Define the model's default state. 14 | * 15 | * @return array 16 | */ 17 | public function definition() 18 | { 19 | return [ 20 | 'name' => $this->faker->name(), 21 | 'school_id' => 1, 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/views/livewire/show-account-application.blade.php: -------------------------------------------------------------------------------- 1 |
2 | @livewire('show-user-profile', ['user' => $applicant]) 3 | 4 |
5 |
6 |
7 |

Application information

8 | 12 |
13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /resources/views/pages/student/graduation/index.blade.php: -------------------------------------------------------------------------------- 1 | @php 2 | $currentAcademicYear = auth()->user()->school->load('academicYear')->academicYear; 3 | @endphp 4 | 5 | @extends('layouts.app', ['breadcrumbs' => [ 6 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 7 | ['href'=> route('students.index'), 'text'=> 'Students'], 8 | ['href'=> route('students.graduate'), 'text'=> "Graduated Students", 'active'], 9 | ]]) 10 | 11 | @section('title', __('Manage Graduations')) 12 | 13 | @section('page_heading', __('Manage Graduations')) 14 | 15 | @section('content', ) 16 | 17 | @livewire('list-graduations-table') 18 | @endsection -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 18 | }); 19 | -------------------------------------------------------------------------------- /database/factories/MyClassFactory.php: -------------------------------------------------------------------------------- 1 | where('school_id', 1)->inRandomOrder()->first(); 18 | 19 | return [ 20 | 'name' => $this->faker->name, 21 | 'class_group_id' => $classGroup->id, 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /database/factories/SectionFactory.php: -------------------------------------------------------------------------------- 1 | whereRelation('classGroup', 'school_id', 1)->inRandomOrder()->first(); 18 | 19 | return [ 20 | 'name' => $this->faker->name, 21 | 'my_class_id' => $class->id, 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /.github/workflows/label.yml: -------------------------------------------------------------------------------- 1 | # This workflow will triage pull requests and apply a label based on the 2 | # paths that are modified in the pull request. 3 | # 4 | # To use this workflow, you will need to set up a .github/labeler.yml 5 | # file with configuration. For more information, see: 6 | # https://github.com/actions/labeler 7 | 8 | name: Labeler 9 | on: [pull_request_target] 10 | 11 | jobs: 12 | label: 13 | 14 | runs-on: ubuntu-latest 15 | permissions: 16 | contents: read 17 | pull-requests: write 18 | 19 | steps: 20 | - uses: actions/labeler@v4 21 | with: 22 | repo-token: "${{ secrets.GITHUB_TOKEN }}" 23 | -------------------------------------------------------------------------------- /resources/views/livewire/create-student-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create Student

4 |
5 |
6 |
7 | 8 | @csrf 9 | 10 | 11 |
12 | 13 |
14 | 15 | -------------------------------------------------------------------------------- /resources/views/pages/account-application/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('account-applications.index'), 'text'=> 'Account applications' , ], 4 | ['href'=> route('account-applications.edit', $applicant->id), 'text'=> "Edit ".$applicant->firstname()."'s application" , 'active'] 5 | 6 | ]]) 7 | @section('title', __("Edit $applicant->name's application")) 8 | 9 | @section('page_heading', __("Edit $applicant->name's application")) 10 | 11 | @section('content') 12 | @livewire('edit-account-application-form', ['applicant' => $applicant]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /app/Livewire/RegistrationForm.php: -------------------------------------------------------------------------------- 1 | schools = $schoolService->getAllSchools(); 18 | $this->roles = Role::whereIn('name', ['teacher', 'student', 'parent'])->get(); 19 | } 20 | 21 | public function render() 22 | { 23 | return view('livewire.registration-form'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /resources/views/livewire/create-custom-timetable-item-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create Custom Timetable Item

4 |
5 |
6 |
7 | 8 | 9 | @csrf 10 | 11 | 12 |
13 |
-------------------------------------------------------------------------------- /resources/views/pages/exam/exam-slot/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('exams.index'), 'text'=> 'exams' , ], 4 | ['href'=> route('exam-slots.index', [ $exam]), 'text'=> 'exam slots' , ], 5 | ['href'=> route('exam-slots.edit', [$exam, $examSlot->id]), 'text'=> "Edit $examSlot->name" , 'active'] 6 | ]]) 7 | @section('title', __("Edit $examSlot->name")) 8 | 9 | @section('page_heading', __("Edit $examSlot->name")) 10 | 11 | @section('content') 12 | @livewire('edit-exam-slot-form', ['exam' => $exam, 'examSlot' => $examSlot]) 13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/pages/timetable/custom-timetable-item/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'Timetables'], 4 | ['href'=> route('custom-timetable-items.index'), 'text'=> 'Custom timetable items'], 5 | ['href'=> route('custom-timetable-items.create'), 'text'=> 'Create', 'active'], 6 | ]]) 7 | 8 | @section('title', __('Create Custom Timetable Item')) 9 | 10 | @section('page_heading', __('Create Custom Timetable Item')) 11 | 12 | @section('content' ) 13 | @livewire('create-custom-timetable-item-form') 14 | @endsection -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 18 | return $request->user(); 19 | }); 20 | -------------------------------------------------------------------------------- /app/Livewire/ShowStudentProfile.php: -------------------------------------------------------------------------------- 1 | student = $this->student->loadMissing('studentRecord'); 18 | $this->studentRecord = $this->student->studentRecord()->withoutGlobalScopes()->first(); 19 | } 20 | 21 | public function render() 22 | { 23 | return view('livewire.show-student-profile'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Http/Requests/UpdateExamRecordRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules(): array 15 | { 16 | return [ 17 | 'issue_date' => 'required|date', 18 | 'due_date' => 'required|date|after_or_equal:issue_date', 19 | 'note' => 'nullable|max:10000', 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Livewire/EditTimetableForm.php: -------------------------------------------------------------------------------- 1 | classes = $myClassService->getAllClasses(); 20 | $this->class = $this->timetable->myClass->id; 21 | } 22 | 23 | public function render() 24 | { 25 | return view('livewire.edit-timetable-form'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Requests/StoreFeeRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules(): array 15 | { 16 | return [ 17 | 'fee_category_id' => 'required|integer|exists:fee_categories,id', 18 | 'name' => 'required|max:1024', 19 | 'description' => 'nullable|max:10000', 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Http/Requests/UpdateFeeInvoiceRecordRequest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function rules(): array 15 | { 16 | return [ 17 | 'amount' => 'required|integer|min:1', 18 | 'waiver' => 'nullable|integer|min:0|lt:amount', 19 | 'fine' => 'nullable|integer|min:0', 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Http/Requests/UpdateNoticeRequest.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | public function rules() 25 | { 26 | return [ 27 | // 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Models/ClassGroup.php: -------------------------------------------------------------------------------- 1 | belongsTo(School::class); 19 | } 20 | 21 | public function classes() 22 | { 23 | return $this->hasMany(MyClass::class); 24 | } 25 | 26 | public function gradeSystem() 27 | { 28 | return $this->hasMany(GradeSystem::class); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2023_01_09_171340_make_description_nullable_on_sylabii_table.php: -------------------------------------------------------------------------------- 1 | longText('description')->nullable()->change(); 11 | }); 12 | } 13 | 14 | public function down(): void 15 | { 16 | Schema::table('syllabi', function ($table) { 17 | $table->longText('description')->notNullable()->default('No description')->change(); 18 | }); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /resources/views/pages/account-application/change-status.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('account-applications.index'), 'text'=> 'Account application' ], 4 | ['href'=> route('account-applications.change-status', $applicant->id), 'text'=> "Change application status of $applicant->name" , 'active'] 5 | 6 | ]]) 7 | 8 | @section('title', __('Change application status')) 9 | 10 | @section('page_heading', __('Change application status')) 11 | 12 | @section('content' ) 13 | @livewire('change-account-application-status', ['applicant' => $applicant]) 14 | @endsection -------------------------------------------------------------------------------- /app/Http/Requests/UpdateTimetableTimeSlotRequest.php: -------------------------------------------------------------------------------- 1 | classes = $myClassService->getAllClasses(); 18 | $this->teachers = $teacherService->getAllTeachers(); 19 | } 20 | 21 | public function render() 22 | { 23 | return view('livewire.create-subject-form'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Livewire/EditSubjectForm.php: -------------------------------------------------------------------------------- 1 | teachers = $teacherService->getAllTeachers(); 19 | $this->assignedTeachersId = $this->subject->teachers()->get()->pluck('id')->all(); 20 | } 21 | 22 | public function render() 23 | { 24 | return view('livewire.edit-subject-form'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Traits/FeatureTestTrait.php: -------------------------------------------------------------------------------- 1 | create(); 15 | 16 | return $this->actingAs($user); 17 | } 18 | 19 | /** 20 | * Create an authorized user. 21 | */ 22 | public function authorized_user(array $permissions): object 23 | { 24 | $user = User::factory()->create(); 25 | $user->givePermissionTo($permissions); 26 | 27 | return $this->actingAs($user); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 19 | })->purpose('Display an inspiring quote'); 20 | -------------------------------------------------------------------------------- /app/Http/Requests/TimetableUpdateRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string|max:255', 24 | 'description' => 'nullable|string|max:10000', 25 | ]; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /database/factories/FeeCategoryFactory.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class FeeCategoryFactory extends Factory 11 | { 12 | /** 13 | * Define the model's default state. 14 | * 15 | * @return array 16 | */ 17 | public function definition(): array 18 | { 19 | return [ 20 | 'name' => $this->faker->name(), 21 | 'school_id' => 1, 22 | 'description' => $this->faker->sentence(), 23 | ]; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /database/seeders/TimetableSeeder.php: -------------------------------------------------------------------------------- 1 | 1, 19 | ], [ 20 | 'name' => 'Timetable 1', 21 | 'description' => 'Timetable 1 description', 22 | 'my_class_id' => 1, 23 | 'semester_id' => 1, 24 | ]); 25 | Timetable::factory()->count(10)->create(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lang/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "The :attribute must contain at least one letter.": "The :attribute must contain at least one letter.", 3 | "The :attribute must contain at least one number.": "The :attribute must contain at least one number.", 4 | "The :attribute must contain at least one symbol.": "The :attribute must contain at least one symbol.", 5 | "The :attribute must contain at least one uppercase and one lowercase letter.": "The :attribute must contain at least one uppercase and one lowercase letter.", 6 | "The given :attribute has appeared in a data leak. Please choose a different :attribute.": "The given :attribute has appeared in a data leak. Please choose a different :attribute." 7 | } 8 | -------------------------------------------------------------------------------- /resources/views/components/partials/authentication-card.blade.php: -------------------------------------------------------------------------------- 1 | @props(['class' => '', 'width' => 'w-10/12 md:w-8/12 lg:w-5/12 xl:w-4/12', 'height' => 'min-h-[20%]']) 2 |
3 | 4 |
5 |
6 | {{$slot}} 7 |
8 |
9 | {{$footer ?? null}} 10 |
11 |
12 |
-------------------------------------------------------------------------------- /resources/views/pages/timetable/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('timetables.index'), 'text'=> 'timetables'], 4 | ['href'=> route('timetables.show', $timetable->id), 'text'=> "View $timetable->name", 'active'], 5 | ]]) 6 | 7 | @section('title', __("View $timetable->name")) 8 | 9 | @section('page_heading', __("View $timetable->name") ) 10 | 11 | @section('content') 12 | Print Timetable 13 | @livewire('show-timetable', ['timetable' => $timetable]) 14 | @endsection 15 | -------------------------------------------------------------------------------- /app/Http/Requests/StoreAccountApplicationRequest.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | public function rules() 25 | { 26 | return [ 27 | // 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Livewire/EditGradeSystemForm.php: -------------------------------------------------------------------------------- 1 | classGroups = $myClassService->getAllClassGroups(); 20 | $this->classGroup = $this->grade->class_group_id; 21 | } 22 | 23 | public function render() 24 | { 25 | return view('livewire.edit-grade-system-form'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Send Requests To Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /database/factories/SubjectFactory.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class SubjectFactory extends Factory 11 | { 12 | /** 13 | * Define the model's default state. 14 | * 15 | * @return array 16 | */ 17 | public function definition() 18 | { 19 | return [ 20 | 'name' => $this->faker->name, 21 | 'short_name' => $this->faker->lexify('???'), 22 | 'my_class_id' => 1, 23 | 'school_id' => 1, 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /resources/views/components/action-message.blade.php: -------------------------------------------------------------------------------- 1 | @props(['on']) 2 |
3 | 12 |
13 | -------------------------------------------------------------------------------- /resources/views/livewire/edit-class-group-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit class group {{$classGroup->name}}

4 |
5 |
6 |
7 | 8 | 9 | @csrf 10 | @method('PUT') 11 | 12 | 13 |
14 |
-------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /resources/views/components/dropdown.blade.php: -------------------------------------------------------------------------------- 1 | @props(['buttonLabel' => 'Actions', 'links', 'groupClass' => null, 'buttonClass' => null, 'dropdownClass' => null]) 2 | 3 |
4 |
-------------------------------------------------------------------------------- /resources/views/livewire/edit-admin-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit admin form

4 |
5 |
6 |
7 | @livewire('edit-user-fields', ['role' => 'Admin', 'user'=> $admin] 8 | ) 9 | @csrf 10 | @method('PUT') 11 |
12 | 13 |
14 |
15 |
16 |
-------------------------------------------------------------------------------- /database/factories/TimetableTimeSlotFactory.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class TimetableTimeSlotFactory extends Factory 11 | { 12 | /** 13 | * Define the model's default state. 14 | * 15 | * @return array 16 | */ 17 | public function definition() 18 | { 19 | return [ 20 | 'timetable_id' => 1, 21 | 'start_time' => $this->faker->time('H:i'), 22 | 'stop_time' => $this->faker->time('H:i'), 23 | 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /database/seeders/ExamSeeder.php: -------------------------------------------------------------------------------- 1 | 1, 19 | 'name' => 'Exam 1', 20 | 'description' => 'Exam 1 description', 21 | 'semester_id' => '1', 22 | 'start_date' => '2020-01-01', 23 | 'stop_date' => '2020-01-31', 24 | ]); 25 | 26 | Exam::factory()->count(10)->create(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /database/seeders/WeekdaySeeder.php: -------------------------------------------------------------------------------- 1 | $weekday]); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /resources/views/livewire/edit-parent-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit parent form

4 |
5 |
6 |
7 | @livewire('edit-user-fields', ['role' => 'Parent', 'user'=> $parent] 8 | ) 9 | @csrf 10 | @method('PUT') 11 |
12 | 13 |
14 |
15 |
16 |
-------------------------------------------------------------------------------- /resources/views/livewire/edit-student-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit student form

4 |
5 |
6 |
7 | @livewire('edit-user-fields', ['role' => 'Student', 'user'=> $student] 8 | ) 9 | @csrf 10 | @method('PUT') 11 |
12 | 13 |
14 |
15 |
16 |
-------------------------------------------------------------------------------- /resources/views/livewire/edit-teacher-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit teacher form

4 |
5 |
6 |
7 | @livewire('edit-user-fields', ['role' => 'Teacher', 'user'=> $teacher] 8 | ) 9 | @csrf 10 | @method('PUT') 11 |
12 | 13 |
14 |
15 |
16 |
-------------------------------------------------------------------------------- /tests/Feature/BrowserSessionsTest.php: -------------------------------------------------------------------------------- 1 | actingAs($user = User::factory()->create()); 18 | 19 | Livewire::test(LogoutOtherBrowserSessionsForm::class) 20 | ->set('password', 'password') 21 | ->call('logoutOtherBrowserSessions'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /database/migrations/2022_01_03_101855_create_teacher_records_table.php: -------------------------------------------------------------------------------- 1 | id(); 12 | $table->foreignId('user_id')->nullable()->constrained()->onUpdate('cascade')->onDelete('cascade'); 13 | $table->timestamps(); 14 | }); 15 | } 16 | 17 | public function down(): void 18 | { 19 | Schema::dropIfExists('teacher_records'); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /database/migrations/2022_06_22_191157_create_parent_records_table.php: -------------------------------------------------------------------------------- 1 | id(); 12 | $table->foreignId('user_id')->nullable()->constrained()->onUpdate('cascade')->onDelete('cascade'); 13 | $table->timestamps(); 14 | }); 15 | } 16 | 17 | public function down(): void 18 | { 19 | Schema::dropIfExists('parent_records'); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /database/migrations/2022_11_05_200953_create_statuses_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 13 | $table->string('name'); 14 | $table->text('reason')->nullable(); 15 | $table->morphs('model'); 16 | $table->timestamps(); 17 | }); 18 | } 19 | 20 | public function down() 21 | { 22 | Schema::dropIfExists('statuses'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/views/livewire/show-notice.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

View {{$notice->title}}

4 |
5 |
6 |

7 | {{$notice->content}} 8 |

9 |
10 | @isset($notice->attachment) 11 | 12 | 13 | Download attachment 14 | 15 | @endisset 16 |
17 |
18 |
19 | -------------------------------------------------------------------------------- /app/Http/Requests/StoreExamRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string|max:255', 18 | 'description' => 'nullable|string|max:10000', 19 | 'semester_id' => 'required|integer|exists:semesters,id', 20 | 'start_date' => 'required|date', 21 | 'stop_date' => 'required|date|after_or_equal:start_date', 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Http/Requests/UpdateExamRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string|max:255', 18 | 'description' => 'nullable|string|max:10000', 19 | 'semester_id' => 'required|integer|exists:semesters,id', 20 | 'start_date' => 'required|date', 21 | 'stop_date' => 'required|date|after_or_equal:start_date', 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $policies = [ 15 | // 'App\Models\Model' => 'App\Policies\ModelPolicy', 16 | ]; 17 | 18 | /** 19 | * Register any authentication / authorization services. 20 | * 21 | * @return void 22 | */ 23 | public function boot() 24 | { 25 | $this->registerPolicies(); 26 | 27 | // 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /resources/views/livewire/create-semester-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create semester in session {{auth()->user()->school->academicYear->name}}

4 |
5 |
6 |
7 | 8 | 9 | @csrf 10 |
11 | 12 |
13 | 14 |
15 |
-------------------------------------------------------------------------------- /resources/views/pages/fee/fee-invoice/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['breadcrumbs' => [ 2 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 3 | ['href'=> route('fees.index'), 'text'=> 'Fees'], 4 | ['href'=> route('fee-invoices.index'), 'text'=> 'Fee Invoices'], 5 | ['href'=> route('fee-invoices.show', $feeInvoice->id), 'text'=> $feeInvoice->name, 'active'], 6 | ]]) 7 | 8 | @section('title', __($feeInvoice->name)) 9 | 10 | @section('page_heading', __($feeInvoice->name)) 11 | 12 | @section('content', ) 13 | Print Invoice 14 | @livewire('show-fee-invoice', ['feeInvoice' => $feeInvoice]) 15 | @endsection -------------------------------------------------------------------------------- /database/factories/SemesterFactory.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class SemesterFactory extends Factory 11 | { 12 | /** 13 | * Define the model's default state. 14 | * 15 | * @return array 16 | */ 17 | public function definition() 18 | { 19 | return [ 20 | 'id' => $this->faker->numberBetween(1, 10000), 21 | 'name' => $this->faker->unique()->word, 22 | 'academic_year_id' => 1, 23 | 'school_id' => 1, 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /database/seeders/SectionSeeder.php: -------------------------------------------------------------------------------- 1 | 1, 19 | 'name' => 'Gold', 20 | 'my_class_id' => 1, 21 | ]); 22 | 23 | Section::firstOrCreate([ 24 | 'id' => 2, 25 | 'name' => 'Ruby', 26 | 'my_class_id' => 1, 27 | ]); 28 | 29 | Section::factory()->count(10)->create(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /resources/views/livewire/create-fee-category-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Create Fee Category

4 |
5 |
6 | 7 |
8 | 9 | 10 | @csrf 11 | 12 | 13 |
14 |
15 | -------------------------------------------------------------------------------- /resources/views/livewire/edit-custom-timetable-item-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit {{$customTimetableItem->name}}

4 |
5 |
6 |
7 | 8 | 9 | @csrf 10 | @method('PUT') 11 | 12 | 13 |
14 |
-------------------------------------------------------------------------------- /app/Http/Middleware/EnsureAcademicYearIsSet.php: -------------------------------------------------------------------------------- 1 | user()->school->academicYear) { 20 | return redirect()->route('academic-years.index'); 21 | } 22 | 23 | return $next($request); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Http/Requests/TimetableStoreRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string|max:255', 24 | 'description' => 'nullable|string|max:10000', 25 | 'my_class_id' => 'required|integer|exists:my_classes,id', 26 | ]; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /database/migrations/2023_03_10_192432_add_soft_deletes_to_users_table.php: -------------------------------------------------------------------------------- 1 | softDeletes(); 15 | }); 16 | } 17 | 18 | /** 19 | * Reverse the migrations. 20 | */ 21 | public function down(): void 22 | { 23 | Schema::table('users', function (Blueprint $table) { 24 | $table->dropSoftDeletes(); 25 | }); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /resources/views/livewire/edit-semester-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Edit {{$semester->name}} in session {{auth()->user()->school->academicYear->name}}

4 |
5 |
6 |
7 | 8 | 9 | @csrf 10 | @method('PUT') 11 | 12 | 13 |
14 |
-------------------------------------------------------------------------------- /resources/views/livewire/show-promotion.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Promotion details

5 | 11 |
12 |

Students promoted

13 |
    14 | @foreach ($students as $student) 15 |
  • {{$student->name}}
  • 16 | @endforeach 17 |
18 |
19 | -------------------------------------------------------------------------------- /resources/views/pages/student/promotion/index.blade.php: -------------------------------------------------------------------------------- 1 | @php 2 | $currentAcademicYear = auth()->user()->school->load('academicYear')->academicYear; 3 | @endphp 4 | 5 | @extends('layouts.app', ['breadcrumbs' => [ 6 | ['href'=> route('dashboard'), 'text'=> 'Dashboard'], 7 | ['href'=> route('students.index'), 'text'=> 'Students'], 8 | ['href'=> route('students.promote'), 'text'=> "Promotions for $currentAcademicYear->start_year - $currentAcademicYear->stop_year", 'active'], 9 | 10 | ]]) 11 | 12 | @section('title', __('Manage Promotions')) 13 | 14 | @section('page_heading', __('Manage Promotions')) 15 | 16 | @section('content', ) 17 | 18 | @livewire('list-promotions-table',['academicYear'=> $currentAcademicYear->id]) 19 | @endsection -------------------------------------------------------------------------------- /app/Http/Controllers/LockUserAccountController.php: -------------------------------------------------------------------------------- 1 | authorize('lockAccount', [$user]); 17 | 18 | $lock = $request->lock; 19 | 20 | $userService->lockUserAccount($user, $lock); 21 | 22 | return back()->with('success', ($lock == true ? 'Locked' : 'Unlocked')." {$user->name}'s account successfully"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Http/Requests/StoreGradeSystemRequest.php: -------------------------------------------------------------------------------- 1 | 'required|numeric|gte:0|max:100', 18 | 'grade_till' => 'required|numeric|gt:grade_from|max:100', 19 | 'name' => 'required|string', 20 | 'remark' => 'nullable|string', 21 | 'class_group_id' => 'required|integer|exists:class_groups,id', 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'password' => 'The provided password is incorrect.', 18 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /database/factories/TimetableFactory.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class TimetableFactory extends Factory 11 | { 12 | /** 13 | * Define the model's default state. 14 | * 15 | * @return array 16 | */ 17 | public function definition() 18 | { 19 | return [ 20 | 'id' => $this->faker->numberBetween(1, 10000), 21 | 'name' => $this->faker->name, 22 | 'description' => $this->faker->text, 23 | 'my_class_id' => 1, 24 | 'semester_id' => 1, 25 | ]; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /database/migrations/2023_03_18_192014_add_soft_deleted_columns_to_subjects_table.php: -------------------------------------------------------------------------------- 1 | softDeletes(); 15 | }); 16 | } 17 | 18 | /** 19 | * Reverse the migrations. 20 | */ 21 | public function down(): void 22 | { 23 | Schema::table('subjects', function (Blueprint $table) { 24 | $table->dropSoftDeletes(); 25 | }); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /database/migrations/2023_03_19_160800_add_soft_deletes_to_my_classes_table.php: -------------------------------------------------------------------------------- 1 | softDeletes(); 15 | }); 16 | } 17 | 18 | /** 19 | * Reverse the migrations. 20 | */ 21 | public function down(): void 22 | { 23 | Schema::table('my_classes', function (Blueprint $table) { 24 | $table->dropSoftDeletes(); 25 | }); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /database/migrations/2023_04_01_210647_add_locked_to_users_table.php: -------------------------------------------------------------------------------- 1 | boolean('locked')->default(false); 15 | }); 16 | } 17 | 18 | /** 19 | * Reverse the migrations. 20 | */ 21 | public function down(): void 22 | { 23 | Schema::table('users', function (Blueprint $table) { 24 | $table->dropColumn('locked'); 25 | }); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /database/seeders/SemesterSeeder.php: -------------------------------------------------------------------------------- 1 | 1, ], [ 19 | 'name' => 'Semester 1', 20 | 'academic_year_id' => 1, 21 | 'school_id' => 1, 22 | ]); 23 | $semester->school->semester_id = $semester->id; 24 | $semester->school->save(); 25 | Semester::factory()->count(4)->create(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/views/pages/timetable/print.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.print') 2 | 3 | @section('title', $timetable->name) 4 | 5 | @section('content') 6 |

{{auth()->user()->school->name}}

7 | @livewire('show-timetable', ['timetable' => $timetable]) 8 | @endsection 9 | 10 | @section('style') 11 | 31 | @endSection -------------------------------------------------------------------------------- /app/Http/Requests/UpdateGradeSystemRequest.php: -------------------------------------------------------------------------------- 1 | 'required|numeric|gte:0|max:100', 18 | 'grade_till' => 'required|numeric|gt:grade_from|max:100', 19 | 'name' => 'required|string|max:255', 20 | 'remark' => 'nullable|string|max:255', 21 | 'class_group_id' => 'required|integer|exists:class_groups,id', 22 | ]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /database/migrations/2023_03_31_184347_add_soft_deletes_to_fee_invoices_table.php: -------------------------------------------------------------------------------- 1 | softDeletes(); 15 | }); 16 | } 17 | 18 | /** 19 | * Reverse the migrations. 20 | */ 21 | public function down(): void 22 | { 23 | Schema::table('fee_invoices', function (Blueprint $table) { 24 | $table->dropSoftDeletes(); 25 | }); 26 | } 27 | }; 28 | --------------------------------------------------------------------------------