├── .browserslistrc
├── .editorconfig
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
└── tasks.json
├── 5dd731efde7c10d561daac32cac85cc550b64879.gif
├── README.md
├── adminpage.gif
├── angular.json
├── karma.conf.js
├── kodlamaioBootcampProject.mp4
├── package-lock.json
├── package.json
├── src
├── api
│ └── db.json
├── app
│ ├── app-routing.module.ts
│ ├── app.component.css
│ ├── app.component.html
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ ├── app.module.ts
│ ├── component
│ │ ├── admin
│ │ │ ├── admin-page
│ │ │ │ ├── admin-page.component.css
│ │ │ │ ├── admin-page.component.html
│ │ │ │ ├── admin-page.component.spec.ts
│ │ │ │ └── admin-page.component.ts
│ │ │ ├── admin-response-navbar
│ │ │ │ └── responsivenavbar
│ │ │ │ │ ├── responsivenavbar.component.css
│ │ │ │ │ ├── responsivenavbar.component.html
│ │ │ │ │ ├── responsivenavbar.component.spec.ts
│ │ │ │ │ └── responsivenavbar.component.ts
│ │ │ └── admin-sidebar
│ │ │ │ └── admin-sidebar
│ │ │ │ ├── admin-sidebar.component.css
│ │ │ │ ├── admin-sidebar.component.html
│ │ │ │ ├── admin-sidebar.component.spec.ts
│ │ │ │ └── admin-sidebar.component.ts
│ │ ├── applicant
│ │ │ ├── applicant-add
│ │ │ │ ├── applicant-add.component.css
│ │ │ │ ├── applicant-add.component.html
│ │ │ │ ├── applicant-add.component.spec.ts
│ │ │ │ └── applicant-add.component.ts
│ │ │ ├── applicant-detail
│ │ │ │ ├── applicant-detail.component.css
│ │ │ │ ├── applicant-detail.component.html
│ │ │ │ ├── applicant-detail.component.spec.ts
│ │ │ │ └── applicant-detail.component.ts
│ │ │ ├── applicant-list
│ │ │ │ ├── applicant-list.component.css
│ │ │ │ ├── applicant-list.component.html
│ │ │ │ ├── applicant-list.component.spec.ts
│ │ │ │ └── applicant-list.component.ts
│ │ │ ├── applicant-login
│ │ │ │ ├── applicant-login.component.css
│ │ │ │ ├── applicant-login.component.html
│ │ │ │ ├── applicant-login.component.spec.ts
│ │ │ │ └── applicant-login.component.ts
│ │ │ └── applicant-update
│ │ │ │ ├── applicant-update.component.css
│ │ │ │ ├── applicant-update.component.html
│ │ │ │ ├── applicant-update.component.spec.ts
│ │ │ │ └── applicant-update.component.ts
│ │ ├── application
│ │ │ ├── application-add
│ │ │ │ ├── application-add.component.css
│ │ │ │ ├── application-add.component.html
│ │ │ │ ├── application-add.component.spec.ts
│ │ │ │ └── application-add.component.ts
│ │ │ ├── application-detail
│ │ │ │ ├── application-detail.component.css
│ │ │ │ ├── application-detail.component.html
│ │ │ │ ├── application-detail.component.spec.ts
│ │ │ │ └── application-detail.component.ts
│ │ │ ├── application-list
│ │ │ │ ├── application-list.component.css
│ │ │ │ ├── application-list.component.html
│ │ │ │ ├── application-list.component.spec.ts
│ │ │ │ └── application-list.component.ts
│ │ │ └── application-update
│ │ │ │ ├── application-update.component.css
│ │ │ │ ├── application-update.component.html
│ │ │ │ ├── application-update.component.spec.ts
│ │ │ │ └── application-update.component.ts
│ │ ├── blacklist
│ │ │ ├── black-list
│ │ │ │ ├── black-list.component.css
│ │ │ │ ├── black-list.component.html
│ │ │ │ ├── black-list.component.spec.ts
│ │ │ │ ├── black-list.component.ts
│ │ │ │ └── blacklist-detail
│ │ │ │ │ ├── blacklist-detail.component.css
│ │ │ │ │ ├── blacklist-detail.component.html
│ │ │ │ │ ├── blacklist-detail.component.spec.ts
│ │ │ │ │ └── blacklist-detail.component.ts
│ │ │ ├── blacklist-add
│ │ │ │ ├── blacklist-add.component.css
│ │ │ │ ├── blacklist-add.component.html
│ │ │ │ ├── blacklist-add.component.spec.ts
│ │ │ │ └── blacklist-add.component.ts
│ │ │ └── blacklist-update
│ │ │ │ ├── blacklist-update.component.css
│ │ │ │ ├── blacklist-update.component.html
│ │ │ │ ├── blacklist-update.component.spec.ts
│ │ │ │ └── blacklist-update.component.ts
│ │ ├── bootcamp
│ │ │ ├── bootcamp-add
│ │ │ │ ├── bootcamp-add.component.css
│ │ │ │ ├── bootcamp-add.component.html
│ │ │ │ ├── bootcamp-add.component.spec.ts
│ │ │ │ └── bootcamp-add.component.ts
│ │ │ ├── bootcamp-detail
│ │ │ │ ├── bootcamp-detail.component.css
│ │ │ │ ├── bootcamp-detail.component.html
│ │ │ │ ├── bootcamp-detail.component.spec.ts
│ │ │ │ └── bootcamp-detail.component.ts
│ │ │ ├── bootcamp-list
│ │ │ │ ├── bootcamp-list.component.css
│ │ │ │ ├── bootcamp-list.component.html
│ │ │ │ ├── bootcamp-list.component.spec.ts
│ │ │ │ └── bootcamp-list.component.ts
│ │ │ └── bootcamp-update
│ │ │ │ ├── bootcamp-update.component.css
│ │ │ │ ├── bootcamp-update.component.html
│ │ │ │ ├── bootcamp-update.component.spec.ts
│ │ │ │ └── bootcamp-update.component.ts
│ │ ├── employee
│ │ │ ├── employe-list
│ │ │ │ ├── employe-list.component.css
│ │ │ │ ├── employe-list.component.html
│ │ │ │ ├── employe-list.component.spec.ts
│ │ │ │ └── employe-list.component.ts
│ │ │ ├── employee-add
│ │ │ │ ├── employee-add.component.css
│ │ │ │ ├── employee-add.component.html
│ │ │ │ ├── employee-add.component.spec.ts
│ │ │ │ └── employee-add.component.ts
│ │ │ ├── employee-detail
│ │ │ │ ├── employee-detail.component.css
│ │ │ │ ├── employee-detail.component.html
│ │ │ │ ├── employee-detail.component.spec.ts
│ │ │ │ └── employee-detail.component.ts
│ │ │ ├── employee-login
│ │ │ │ ├── employee-login.component.css
│ │ │ │ ├── employee-login.component.html
│ │ │ │ ├── employee-login.component.spec.ts
│ │ │ │ └── employee-login.component.ts
│ │ │ └── employee-update
│ │ │ │ ├── employee-update.component.css
│ │ │ │ ├── employee-update.component.html
│ │ │ │ ├── employee-update.component.spec.ts
│ │ │ │ └── employee-update.component.ts
│ │ ├── home
│ │ │ ├── home-about
│ │ │ │ ├── home-about.component.css
│ │ │ │ ├── home-about.component.html
│ │ │ │ ├── home-about.component.spec.ts
│ │ │ │ ├── home-about.component.ts
│ │ │ │ └── img
│ │ │ │ │ ├── team-1.jpg
│ │ │ │ │ ├── team-2.jpg
│ │ │ │ │ └── team-3.jpg
│ │ │ ├── home-bootcamp-detail
│ │ │ │ └── home-bootcamp-detail
│ │ │ │ │ ├── home-bootcamp-detail.component.css
│ │ │ │ │ ├── home-bootcamp-detail.component.html
│ │ │ │ │ ├── home-bootcamp-detail.component.spec.ts
│ │ │ │ │ └── home-bootcamp-detail.component.ts
│ │ │ ├── home-bootcamp-list
│ │ │ │ ├── home-bootcamp-list.component.css
│ │ │ │ ├── home-bootcamp-list.component.html
│ │ │ │ ├── home-bootcamp-list.component.spec.ts
│ │ │ │ └── home-bootcamp-list.component.ts
│ │ │ ├── home-contact
│ │ │ │ ├── home-contact.component.css
│ │ │ │ ├── home-contact.component.html
│ │ │ │ ├── home-contact.component.spec.ts
│ │ │ │ └── home-contact.component.ts
│ │ │ ├── home-footer
│ │ │ │ ├── home-footer.component.css
│ │ │ │ ├── home-footer.component.html
│ │ │ │ ├── home-footer.component.spec.ts
│ │ │ │ └── home-footer.component.ts
│ │ │ ├── home-instructor-list
│ │ │ │ ├── home-instructor-list.component.css
│ │ │ │ ├── home-instructor-list.component.html
│ │ │ │ ├── home-instructor-list.component.spec.ts
│ │ │ │ └── home-instructor-list.component.ts
│ │ │ └── home-page
│ │ │ │ ├── home-page.component.css
│ │ │ │ ├── home-page.component.html
│ │ │ │ ├── home-page.component.spec.ts
│ │ │ │ └── home-page.component.ts
│ │ ├── instructor
│ │ │ ├── instructor-add
│ │ │ │ ├── instructor-add.component.css
│ │ │ │ ├── instructor-add.component.html
│ │ │ │ ├── instructor-add.component.spec.ts
│ │ │ │ └── instructor-add.component.ts
│ │ │ ├── instructor-detail
│ │ │ │ ├── instructor-detail.component.css
│ │ │ │ ├── instructor-detail.component.html
│ │ │ │ ├── instructor-detail.component.spec.ts
│ │ │ │ └── instructor-detail.component.ts
│ │ │ ├── instructor-list
│ │ │ │ ├── instructor-list.component.css
│ │ │ │ ├── instructor-list.component.html
│ │ │ │ ├── instructor-list.component.spec.ts
│ │ │ │ └── instructor-list.component.ts
│ │ │ ├── instructor-login
│ │ │ │ ├── instructor-login.component.css
│ │ │ │ ├── instructor-login.component.html
│ │ │ │ ├── instructor-login.component.spec.ts
│ │ │ │ └── instructor-login.component.ts
│ │ │ └── instructor-update
│ │ │ │ ├── instructor-update.component.css
│ │ │ │ ├── instructor-update.component.html
│ │ │ │ ├── instructor-update.component.spec.ts
│ │ │ │ └── instructor-update.component.ts
│ │ ├── navi
│ │ │ ├── navi.component.css
│ │ │ ├── navi.component.html
│ │ │ ├── navi.component.spec.ts
│ │ │ └── navi.component.ts
│ │ ├── register
│ │ │ ├── register.component.css
│ │ │ ├── register.component.html
│ │ │ ├── register.component.spec.ts
│ │ │ └── register.component.ts
│ │ ├── userApplicant
│ │ │ ├── applicant-bootcamp
│ │ │ │ ├── applicant-bootcamp.component.css
│ │ │ │ ├── applicant-bootcamp.component.html
│ │ │ │ ├── applicant-bootcamp.component.spec.ts
│ │ │ │ └── applicant-bootcamp.component.ts
│ │ │ ├── applicant-notification
│ │ │ │ ├── applicant-notification.component.css
│ │ │ │ ├── applicant-notification.component.html
│ │ │ │ ├── applicant-notification.component.spec.ts
│ │ │ │ └── applicant-notification.component.ts
│ │ │ └── applicant-page
│ │ │ │ ├── applicant-page.component.css
│ │ │ │ ├── applicant-page.component.html
│ │ │ │ ├── applicant-page.component.spec.ts
│ │ │ │ └── applicant-page.component.ts
│ │ └── userInstructor
│ │ │ ├── instructor-applicant
│ │ │ ├── instructor-applicant.component.css
│ │ │ ├── instructor-applicant.component.html
│ │ │ ├── instructor-applicant.component.spec.ts
│ │ │ └── instructor-applicant.component.ts
│ │ │ ├── instructor-bootcamp
│ │ │ ├── instructor-bootcamp.component.css
│ │ │ ├── instructor-bootcamp.component.html
│ │ │ ├── instructor-bootcamp.component.spec.ts
│ │ │ └── instructor-bootcamp.component.ts
│ │ │ └── instructor-page
│ │ │ ├── instructor-page.component.css
│ │ │ ├── instructor-page.component.html
│ │ │ ├── instructor-page.component.spec.ts
│ │ │ └── instructor-page.component.ts
│ ├── guards
│ │ ├── applicantGuard
│ │ │ ├── login-applicant.guard.spec.ts
│ │ │ └── login-applicant.guard.ts
│ │ ├── instructorGuard
│ │ │ ├── login-instructor.guard.spec.ts
│ │ │ └── login-instructor.guard.ts
│ │ ├── login-employe.guard.spec.ts
│ │ └── login-employe.guard.ts
│ ├── interceptors
│ │ └── login-employee.ts
│ ├── models
│ │ ├── request
│ │ │ ├── applicant
│ │ │ │ ├── createApplicantRequest.ts
│ │ │ │ └── updateApplicantRequest.ts
│ │ │ ├── application
│ │ │ │ ├── createApplicationRequest.ts
│ │ │ │ └── updateApplicationRequest.ts
│ │ │ ├── blackList
│ │ │ │ ├── createBlackListRequest.ts
│ │ │ │ └── updateBlackListRequest.ts
│ │ │ ├── bootcamp
│ │ │ │ ├── createBootcampRequest.ts
│ │ │ │ └── updateBootcampRequest.ts
│ │ │ ├── employee
│ │ │ │ ├── createEmployeeRequest.ts
│ │ │ │ └── updateEmployeeRequest.ts
│ │ │ └── instructor
│ │ │ │ ├── createInstructorRequest.ts
│ │ │ │ └── updateInstructorRequest.ts
│ │ ├── response
│ │ │ ├── applicant
│ │ │ │ ├── getAllApplicantResponse.ts
│ │ │ │ └── getApplicantResponse.ts
│ │ │ ├── application
│ │ │ │ ├── getAllApplicationResponse.ts
│ │ │ │ └── getApplicationResponse.ts
│ │ │ ├── blackList
│ │ │ │ ├── getAllBlackListResponse.ts
│ │ │ │ └── getBlackListResponse.ts
│ │ │ ├── bootcamp
│ │ │ │ ├── getAllBootcampResponse.ts
│ │ │ │ └── getBootcampResponse.ts
│ │ │ ├── employee
│ │ │ │ ├── getAllEmployeeResponse.ts
│ │ │ │ └── getEmployeeResponse.ts
│ │ │ └── instructor
│ │ │ │ ├── getAllInstructorResponse.ts
│ │ │ │ └── getInstructorResponse.ts
│ │ └── token
│ │ │ ├── login-applicant.ts
│ │ │ ├── login-employee.ts
│ │ │ ├── login-instructor.ts
│ │ │ ├── tokenModel.ts
│ │ │ └── users-model.ts
│ ├── pages
│ │ ├── admin
│ │ │ ├── admin.component.css
│ │ │ ├── admin.component.html
│ │ │ ├── admin.component.spec.ts
│ │ │ └── admin.component.ts
│ │ ├── applicant
│ │ │ ├── applicant.component.css
│ │ │ ├── applicant.component.html
│ │ │ ├── applicant.component.spec.ts
│ │ │ └── applicant.component.ts
│ │ ├── home
│ │ │ ├── home.component.css
│ │ │ ├── home.component.html
│ │ │ ├── home.component.spec.ts
│ │ │ └── home.component.ts
│ │ └── instructor
│ │ │ ├── instructor.component.css
│ │ │ ├── instructor.component.html
│ │ │ ├── instructor.component.spec.ts
│ │ │ └── instructor.component.ts
│ ├── pipes
│ │ ├── applicantfilter.pipe.ts
│ │ ├── applicationfilter.pipe.ts
│ │ ├── blacklistfilter.pipe.ts
│ │ ├── bootcampfilter.pipe.ts
│ │ ├── employeefilter.pipe.ts
│ │ └── instructorfilter.pipe.ts
│ └── services
│ │ ├── applicant
│ │ ├── applicant.service.spec.ts
│ │ └── applicant.service.ts
│ │ ├── application
│ │ ├── application.service.spec.ts
│ │ └── application.service.ts
│ │ ├── blacklist
│ │ ├── blacklist.service.spec.ts
│ │ └── blacklist.service.ts
│ │ ├── bootcamp
│ │ ├── bootcamp.service.spec.ts
│ │ └── bootcamp.service.ts
│ │ ├── employee
│ │ ├── employee.service.spec.ts
│ │ └── employee.service.ts
│ │ ├── instructor
│ │ ├── instructor.service.spec.ts
│ │ └── instructor.service.ts
│ │ ├── login-applicant
│ │ ├── login-applicant.service.spec.ts
│ │ └── login-applicant.service.ts
│ │ ├── login-employee
│ │ ├── login-employee.service.spec.ts
│ │ └── login-employee.service.ts
│ │ ├── login-instructor
│ │ ├── login-instructor.service.spec.ts
│ │ └── login-instructor.service.ts
│ │ └── register
│ │ ├── register.service.spec.ts
│ │ └── register.service.ts
├── assets
│ └── .gitkeep
├── environments
│ ├── environment.prod.ts
│ └── environment.ts
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.css
├── template
│ ├── 404.html
│ ├── LICENSE.txt
│ ├── READ-ME.txt
│ ├── blank.html
│ ├── bootstrap-admin-template-free.jpg
│ ├── button.html
│ ├── chart.html
│ ├── css
│ │ ├── adminstyle.css
│ │ └── bootstrap.min.css
│ ├── element.html
│ ├── form.html
│ ├── img
│ │ ├── testimonial-1.jpg
│ │ ├── testimonial-2.jpg
│ │ └── user.jpg
│ ├── index.html
│ ├── js
│ │ └── main.js
│ ├── lib
│ │ ├── chart
│ │ │ └── chart.min.js
│ │ ├── easing
│ │ │ ├── easing.js
│ │ │ └── easing.min.js
│ │ ├── owlcarousel
│ │ │ ├── LICENSE
│ │ │ ├── assets
│ │ │ │ ├── ajax-loader.gif
│ │ │ │ ├── owl.carousel.css
│ │ │ │ ├── owl.carousel.min.css
│ │ │ │ ├── owl.theme.default.css
│ │ │ │ ├── owl.theme.default.min.css
│ │ │ │ ├── owl.theme.green.css
│ │ │ │ ├── owl.theme.green.min.css
│ │ │ │ └── owl.video.play.png
│ │ │ ├── owl.carousel.js
│ │ │ └── owl.carousel.min.js
│ │ ├── tempusdominus
│ │ │ ├── css
│ │ │ │ ├── tempusdominus-bootstrap-4.css
│ │ │ │ └── tempusdominus-bootstrap-4.min.css
│ │ │ └── js
│ │ │ │ ├── moment-timezone.min.js
│ │ │ │ ├── moment.min.js
│ │ │ │ ├── tempusdominus-bootstrap-4.js
│ │ │ │ └── tempusdominus-bootstrap-4.min.js
│ │ └── waypoints
│ │ │ ├── links.php
│ │ │ └── waypoints.min.js
│ ├── scss
│ │ ├── bootstrap.scss
│ │ └── bootstrap
│ │ │ └── scss
│ │ │ ├── _accordion.scss
│ │ │ ├── _alert.scss
│ │ │ ├── _badge.scss
│ │ │ ├── _breadcrumb.scss
│ │ │ ├── _button-group.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _card.scss
│ │ │ ├── _carousel.scss
│ │ │ ├── _close.scss
│ │ │ ├── _containers.scss
│ │ │ ├── _dropdown.scss
│ │ │ ├── _forms.scss
│ │ │ ├── _functions.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _helpers.scss
│ │ │ ├── _images.scss
│ │ │ ├── _list-group.scss
│ │ │ ├── _mixins.scss
│ │ │ ├── _modal.scss
│ │ │ ├── _nav.scss
│ │ │ ├── _navbar.scss
│ │ │ ├── _offcanvas.scss
│ │ │ ├── _pagination.scss
│ │ │ ├── _popover.scss
│ │ │ ├── _progress.scss
│ │ │ ├── _reboot.scss
│ │ │ ├── _root.scss
│ │ │ ├── _spinners.scss
│ │ │ ├── _tables.scss
│ │ │ ├── _toasts.scss
│ │ │ ├── _tooltip.scss
│ │ │ ├── _transitions.scss
│ │ │ ├── _type.scss
│ │ │ ├── _utilities.scss
│ │ │ ├── _variables.scss
│ │ │ ├── bootstrap-grid.scss
│ │ │ ├── bootstrap-reboot.scss
│ │ │ ├── bootstrap-utilities.scss
│ │ │ ├── bootstrap.scss
│ │ │ ├── forms
│ │ │ ├── _floating-labels.scss
│ │ │ ├── _form-check.scss
│ │ │ ├── _form-control.scss
│ │ │ ├── _form-range.scss
│ │ │ ├── _form-select.scss
│ │ │ ├── _form-text.scss
│ │ │ ├── _input-group.scss
│ │ │ ├── _labels.scss
│ │ │ └── _validation.scss
│ │ │ ├── helpers
│ │ │ ├── _clearfix.scss
│ │ │ ├── _colored-links.scss
│ │ │ ├── _position.scss
│ │ │ ├── _ratio.scss
│ │ │ ├── _stretched-link.scss
│ │ │ ├── _text-truncation.scss
│ │ │ └── _visually-hidden.scss
│ │ │ ├── mixins
│ │ │ ├── _alert.scss
│ │ │ ├── _border-radius.scss
│ │ │ ├── _box-shadow.scss
│ │ │ ├── _breakpoints.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _caret.scss
│ │ │ ├── _clearfix.scss
│ │ │ ├── _color-scheme.scss
│ │ │ ├── _container.scss
│ │ │ ├── _deprecate.scss
│ │ │ ├── _forms.scss
│ │ │ ├── _gradients.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _image.scss
│ │ │ ├── _list-group.scss
│ │ │ ├── _lists.scss
│ │ │ ├── _pagination.scss
│ │ │ ├── _reset-text.scss
│ │ │ ├── _resize.scss
│ │ │ ├── _table-variants.scss
│ │ │ ├── _text-truncate.scss
│ │ │ ├── _transition.scss
│ │ │ ├── _utilities.scss
│ │ │ └── _visually-hidden.scss
│ │ │ ├── utilities
│ │ │ └── _api.scss
│ │ │ └── vendor
│ │ │ └── _rfs.scss
│ ├── sd
│ │ └── carousel.js
│ ├── signin.html
│ ├── signup.html
│ ├── table.html
│ ├── typography.html
│ └── widget.html
└── test.ts
├── tsconfig.app.json
├── tsconfig.json
└── tsconfig.spec.json
/.browserslistrc:
--------------------------------------------------------------------------------
1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2 | # For additional information regarding the format and rule options, please see:
3 | # https://github.com/browserslist/browserslist#queries
4 |
5 | # For the full list of supported browsers by the Angular framework, please see:
6 | # https://angular.io/guide/browser-support
7 |
8 | # You can see what browsers were selected by your queries by running:
9 | # npx browserslist
10 |
11 | last 1 Chrome version
12 | last 1 Firefox version
13 | last 2 Edge major versions
14 | last 2 Safari major versions
15 | last 2 iOS major versions
16 | Firefox ESR
17 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.ts]
12 | quote_type = single
13 |
14 | [*.md]
15 | max_line_length = off
16 | trim_trailing_whitespace = false
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # Compiled output
4 | /dist
5 | /tmp
6 | /out-tsc
7 | /bazel-out
8 |
9 | # Node
10 | /node_modules
11 | npm-debug.log
12 | yarn-error.log
13 |
14 | # IDEs and editors
15 | .idea/
16 | .project
17 | .classpath
18 | .c9/
19 | *.launch
20 | .settings/
21 | *.sublime-workspace
22 |
23 | # Visual Studio Code
24 | .vscode/*
25 | !.vscode/settings.json
26 | !.vscode/tasks.json
27 | !.vscode/launch.json
28 | !.vscode/extensions.json
29 | .history/*
30 |
31 | # Miscellaneous
32 | /.angular/cache
33 | .sass-cache/
34 | /connect.lock
35 | /coverage
36 | /libpeerconnection.log
37 | testem.log
38 | /typings
39 |
40 | # System files
41 | .DS_Store
42 | Thumbs.db
43 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3 | "recommendations": ["angular.ng-template"]
4 | }
5 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3 | "version": "0.2.0",
4 | "configurations": [
5 | {
6 | "name": "ng serve",
7 | "type": "pwa-chrome",
8 | "request": "launch",
9 | "preLaunchTask": "npm: start",
10 | "url": "http://localhost:4200/"
11 | },
12 | {
13 | "name": "ng test",
14 | "type": "chrome",
15 | "request": "launch",
16 | "preLaunchTask": "npm: test",
17 | "url": "http://localhost:9876/debug.html"
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
3 | "version": "2.0.0",
4 | "tasks": [
5 | {
6 | "type": "npm",
7 | "script": "start",
8 | "isBackground": true,
9 | "problemMatcher": {
10 | "owner": "typescript",
11 | "pattern": "$tsc",
12 | "background": {
13 | "activeOnStart": true,
14 | "beginsPattern": {
15 | "regexp": "(.*?)"
16 | },
17 | "endsPattern": {
18 | "regexp": "bundle generation complete"
19 | }
20 | }
21 | }
22 | },
23 | {
24 | "type": "npm",
25 | "script": "test",
26 | "isBackground": true,
27 | "problemMatcher": {
28 | "owner": "typescript",
29 | "pattern": "$tsc",
30 | "background": {
31 | "activeOnStart": true,
32 | "beginsPattern": {
33 | "regexp": "(.*?)"
34 | },
35 | "endsPattern": {
36 | "regexp": "bundle generation complete"
37 | }
38 | }
39 | }
40 | }
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------
/5dd731efde7c10d561daac32cac85cc550b64879.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/5dd731efde7c10d561daac32cac85cc550b64879.gif
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # kodlamaioBootcampProject
2 | Çalışma ve Sosyal Güvenlik Eğitim Araştırma Merkezi bünyesinde yapılan Frontend Bootcamp programına eğitmenlik yapan Engin DEMİROĞ hocamızın bizden istediği bitirme projesi olarak kodlamaioBootcampProject projesini hayata geçirdik. Bu proje Angular ile ilk projemizdir.
3 |
4 | ## Proje Geliştiricileri
5 | Hasan Said SERTKAYA - Uğur MEYDANLI - Enes KARACA - Seyfettin TURAN
6 |
7 | ## Proje Hakkında
8 | Senaryo: kodlamaio isimli şirket bootcamp eğitimleri düzenlemektedir. Bunun üzerine bizden yöneticilerin, eğitmenlerin ve bootcamplere başvurabilen adayların olduğu aynı zamanda yöneticilerin tüm verileri güncelleyebilmesi, silebilmesi ve yeni veri ekleyebilmesi istemiştir. Eğitmenlerin kendi bootcamplerini yönetebileceği, adayların ise bootcamplere başvurabileceği özel bir sayfa ve başvurularını yönetebileceği sayfa olacaktır.
9 |
10 | ## Kullanılan Teknolojiler
11 | Angular - TypeScript - JavaScript - HTML - Css - Bootstrap 5
12 |
13 | ## Anasayfa
14 |
15 | 
16 |
17 | ## Admin Sayfası
18 |
19 | 
20 |
21 |
22 |
--------------------------------------------------------------------------------
/adminpage.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/adminpage.gif
--------------------------------------------------------------------------------
/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration file, see link for more information
2 | // https://karma-runner.github.io/1.0/config/configuration-file.html
3 |
4 | module.exports = function (config) {
5 | config.set({
6 | basePath: '',
7 | frameworks: ['jasmine', '@angular-devkit/build-angular'],
8 | plugins: [
9 | require('karma-jasmine'),
10 | require('karma-chrome-launcher'),
11 | require('karma-jasmine-html-reporter'),
12 | require('karma-coverage'),
13 | require('@angular-devkit/build-angular/plugins/karma')
14 | ],
15 | client: {
16 | jasmine: {
17 | // you can add configuration options for Jasmine here
18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19 | // for example, you can disable the random execution with `random: false`
20 | // or set a specific seed with `seed: 4321`
21 | },
22 | clearContext: false // leave Jasmine Spec Runner output visible in browser
23 | },
24 | jasmineHtmlReporter: {
25 | suppressAll: true // removes the duplicated traces
26 | },
27 | coverageReporter: {
28 | dir: require('path').join(__dirname, './coverage/kodlamaio-bootcamp-project'),
29 | subdir: '.',
30 | reporters: [
31 | { type: 'html' },
32 | { type: 'text-summary' }
33 | ]
34 | },
35 | reporters: ['progress', 'kjhtml'],
36 | port: 9876,
37 | colors: true,
38 | logLevel: config.LOG_INFO,
39 | autoWatch: true,
40 | browsers: ['Chrome'],
41 | singleRun: false,
42 | restartOnFileChange: true
43 | });
44 | };
45 |
--------------------------------------------------------------------------------
/kodlamaioBootcampProject.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/kodlamaioBootcampProject.mp4
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "kodlamaio-bootcamp-project",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "ng": "ng",
6 | "start": "ng serve",
7 | "build": "ng build",
8 | "watch": "ng build --watch --configuration development",
9 | "test": "ng test"
10 | },
11 | "private": true,
12 | "dependencies": {
13 | "@angular/animations": "^14.2.12",
14 | "@angular/common": "^14.2.0",
15 | "@angular/compiler": "^14.2.0",
16 | "@angular/core": "^14.2.0",
17 | "@angular/forms": "^14.2.0",
18 | "@angular/platform-browser": "^14.2.0",
19 | "@angular/platform-browser-dynamic": "^14.2.0",
20 | "@angular/router": "^14.2.0",
21 | "@popperjs/core": "^2.11.6",
22 | "bootstrap": "^5.2.3",
23 | "jquery": "^3.6.1",
24 | "ngx-bootstrap": "^9.0.0",
25 | "ngx-toastr": "^15.2.2",
26 | "router": "^1.3.7",
27 | "rxjs": "~7.5.0",
28 | "sweetalert2": "^11.6.15",
29 | "tslib": "^2.3.0",
30 | "zone.js": "~0.11.4"
31 | },
32 | "devDependencies": {
33 | "@angular-devkit/build-angular": "^14.2.9",
34 | "@angular/cli": "~14.2.9",
35 | "@angular/compiler-cli": "^14.2.0",
36 | "@types/jasmine": "~4.0.0",
37 | "jasmine-core": "~4.3.0",
38 | "karma": "~6.4.0",
39 | "karma-chrome-launcher": "~3.1.0",
40 | "karma-coverage": "~2.2.0",
41 | "karma-jasmine": "~5.1.0",
42 | "karma-jasmine-html-reporter": "~2.0.0",
43 | "typescript": "~4.7.2"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/app/app.component.css:
--------------------------------------------------------------------------------
1 | * {
2 | overflow: hidden;
3 | }
4 |
--------------------------------------------------------------------------------
/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/app/app.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 | import { RouterTestingModule } from '@angular/router/testing';
3 | import { AppComponent } from './app.component';
4 |
5 | describe('AppComponent', () => {
6 | beforeEach(async () => {
7 | await TestBed.configureTestingModule({
8 | imports: [
9 | RouterTestingModule
10 | ],
11 | declarations: [
12 | AppComponent
13 | ],
14 | }).compileComponents();
15 | });
16 |
17 | it('should create the app', () => {
18 | const fixture = TestBed.createComponent(AppComponent);
19 | const app = fixture.componentInstance;
20 | expect(app).toBeTruthy();
21 | });
22 |
23 | it(`should have as title 'kodlamaioBootcampProject'`, () => {
24 | const fixture = TestBed.createComponent(AppComponent);
25 | const app = fixture.componentInstance;
26 | expect(app.title).toEqual('kodlamaioBootcampProject');
27 | });
28 |
29 | it('should render title', () => {
30 | const fixture = TestBed.createComponent(AppComponent);
31 | fixture.detectChanges();
32 | const compiled = fixture.nativeElement as HTMLElement;
33 | expect(compiled.querySelector('.content span')?.textContent).toContain('kodlamaioBootcampProject app is running!');
34 | });
35 | });
36 |
--------------------------------------------------------------------------------
/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'kodlamaioBootcampProject';
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-page/admin-page.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { AdminPageComponent } from './admin-page.component';
4 |
5 | describe('AdminPageComponent', () => {
6 | let component: AdminPageComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ AdminPageComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(AdminPageComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-response-navbar/responsivenavbar/responsivenavbar.component.css:
--------------------------------------------------------------------------------
1 | .responsive {
2 | display: none;
3 | }
4 | @media (max-width: 450px) {
5 | .responsive {
6 | display: flex;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-response-navbar/responsivenavbar/responsivenavbar.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ResponsivenavbarComponent } from './responsivenavbar.component';
4 |
5 | describe('ResponsivenavbarComponent', () => {
6 | let component: ResponsivenavbarComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ResponsivenavbarComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ResponsivenavbarComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-response-navbar/responsivenavbar/responsivenavbar.component.ts:
--------------------------------------------------------------------------------
1 | import { LoginEmployeeService } from './../../../../services/login-employee/login-employee.service';
2 | import { Component, OnInit } from '@angular/core';
3 | import { Router } from '@angular/router';
4 |
5 | @Component({
6 | selector: 'app-responsivenavbar',
7 | templateUrl: './responsivenavbar.component.html',
8 | styleUrls: ['./responsivenavbar.component.css'],
9 | })
10 | export class ResponsivenavbarComponent implements OnInit {
11 | constructor(
12 | private loginEmployeeService: LoginEmployeeService,
13 | private router: Router
14 | ) {}
15 |
16 | ngOnInit(): void {}
17 | logout() {
18 | this.loginEmployeeService.logout();
19 | this.router.navigate(['']);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-sidebar/admin-sidebar/admin-sidebar.component.css:
--------------------------------------------------------------------------------
1 | * {
2 | overflow: hidden;
3 | }
4 | @media (max-width: 700px) {
5 | .asd {
6 | width: 200px;
7 | }
8 | }
9 | @media (max-width: 450px) {
10 | .asd {
11 | display: none;
12 | }
13 | }
14 | @media (max-width: 828px) {
15 | .asd {
16 | height: 90% !important;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-sidebar/admin-sidebar/admin-sidebar.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { AdminSidebarComponent } from './admin-sidebar.component';
4 |
5 | describe('AdminSidebarComponent', () => {
6 | let component: AdminSidebarComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ AdminSidebarComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(AdminSidebarComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/admin/admin-sidebar/admin-sidebar/admin-sidebar.component.ts:
--------------------------------------------------------------------------------
1 | import { Router } from '@angular/router';
2 | import { LoginEmployeeService } from './../../../../services/login-employee/login-employee.service';
3 | import { Component, OnInit } from '@angular/core';
4 |
5 | @Component({
6 | selector: 'app-admin-sidebar',
7 | templateUrl: './admin-sidebar.component.html',
8 | styleUrls: ['./admin-sidebar.component.css'],
9 | })
10 | export class AdminSidebarComponent implements OnInit {
11 | name = localStorage.getItem('name') + ' ' + localStorage.getItem('lastName');
12 | image = localStorage.getItem('image');
13 | constructor(
14 | private loginEmployeeService: LoginEmployeeService,
15 | private router: Router
16 | ) {}
17 |
18 | ngOnInit(): void {}
19 | logout() {
20 | this.loginEmployeeService.logout();
21 | this.router.navigate(['']);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-add/applicant-add.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantAddComponent } from './applicant-add.component';
4 |
5 | describe('ApplicantAddComponent', () => {
6 | let component: ApplicantAddComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantAddComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantAddComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-add/applicant-add.component.ts:
--------------------------------------------------------------------------------
1 | import { ApplicantService } from './../../../services/applicant/applicant.service';
2 | import { ActivatedRoute, Router } from '@angular/router';
3 | import { Component, OnInit } from '@angular/core';
4 | import { ToastrService } from 'ngx-toastr';
5 | import {
6 | FormBuilder,
7 | FormGroup,
8 | Validators,
9 | FormControl,
10 | } from '@angular/forms';
11 |
12 | @Component({
13 | selector: 'app-applicant-add',
14 | templateUrl: './applicant-add.component.html',
15 | styleUrls: ['./applicant-add.component.css'],
16 | })
17 | export class ApplicantAddComponent implements OnInit {
18 | applicantForm: FormGroup;
19 | constructor(
20 | private formBuilder: FormBuilder,
21 | private activatedRoute: ActivatedRoute,
22 | private applicantService: ApplicantService,
23 | private toastrService: ToastrService,
24 | private router: Router
25 | ) {}
26 |
27 | ngOnInit(): void {
28 | this.createApplicationForm();
29 | }
30 |
31 | createApplicationForm() {
32 | this.applicantForm = this.formBuilder.group({
33 | firstName: ['', Validators.required],
34 | lastName: ['', Validators.required],
35 | email: ['', Validators.required],
36 | password: ['', Validators.required],
37 | nationalIdentity: ['', Validators.required],
38 | dateOfBirth: ['', Validators.required],
39 | about: ['', Validators.required],
40 | image: ['', Validators.required],
41 | state: [1],
42 | });
43 | }
44 |
45 | add() {
46 | if (this.applicantForm.valid) {
47 | let applicantModel = Object.assign({}, this.applicantForm.value);
48 | this.applicantService.addApplicant(applicantModel).subscribe((data) => {
49 | this.toastrService.success('Aday Ekleme Başarılı');
50 | this.router.navigate(['/admin/admin-applicant']);
51 | });
52 | } else {
53 | this.toastrService.warning('Form Eksik!!!');
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-detail/applicant-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantDetailComponent } from './applicant-detail.component';
4 |
5 | describe('ApplicantDetailComponent', () => {
6 | let component: ApplicantDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-detail/applicant-detail.component.ts:
--------------------------------------------------------------------------------
1 | import { LoginEmployeeService } from './../../../services/login-employee/login-employee.service';
2 | import { IGetApplicantResponse } from './../../../models/response/applicant/getApplicantResponse';
3 | import { ActivatedRoute, Router } from '@angular/router';
4 | import { IGetAllApplicantResponse } from './../../../models/response/applicant/getAllApplicantResponse';
5 | import { ApplicantService } from './../../../services/applicant/applicant.service';
6 | import { Component, OnInit } from '@angular/core';
7 |
8 | @Component({
9 | selector: 'app-applicant-detail',
10 | templateUrl: './applicant-detail.component.html',
11 | styleUrls: ['./applicant-detail.component.css'],
12 | })
13 | export class ApplicantDetailComponent implements OnInit {
14 | applicant: IGetApplicantResponse;
15 | constructor(
16 | private applicantService: ApplicantService,
17 | private activatedRoute: ActivatedRoute
18 | ) {}
19 |
20 | ngOnInit(): void {
21 | this.activatedRoute.params.subscribe((params) =>
22 | this.getApplicant(params['id'])
23 | );
24 | }
25 |
26 | getApplicant(id: number) {
27 | this.applicantService
28 | .getApplicant(id)
29 | .subscribe((data) => (this.applicant = data));
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-list/applicant-list.component.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 828px) {
2 | .responsiveTable {
3 | font-size: 12px;
4 | width: 100% !important;
5 | padding: 0 !important;
6 | margin-left: 140px !important;
7 | }
8 | button {
9 | padding: 0 !important;
10 | font-size: 12px;
11 | }
12 | table,
13 | tr,
14 | td {
15 | padding: 0 !important;
16 | margin: 0 !important;
17 | }
18 | }
19 | @media (max-width: 450px) {
20 | .responsiveTable {
21 | margin: 0 !important;
22 | font-size: 12px;
23 | margin-top: 50px !important;
24 | width: 100% !important;
25 | padding: 0 !important;
26 | }
27 | #res {
28 | display: none;
29 | }
30 | table,
31 | button {
32 | padding: 0 !important;
33 | font-size: 12px;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-list/applicant-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantListComponent } from './applicant-list.component';
4 |
5 | describe('ApplicantListComponent', () => {
6 | let component: ApplicantListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-login/applicant-login.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantLoginComponent } from './applicant-login.component';
4 |
5 | describe('ApplicantLoginComponent', () => {
6 | let component: ApplicantLoginComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantLoginComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantLoginComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-login/applicant-login.component.ts:
--------------------------------------------------------------------------------
1 | import { LoginApplicantModel } from './../../../models/token/login-applicant';
2 | import { LoginEmployeeModel } from './../../../models/token/login-employee';
3 | import { Router } from '@angular/router';
4 | import { LoginApplicantService } from './../../../services/login-applicant/login-applicant.service';
5 | import { ITokenModel } from './../../../models/token/tokenModel';
6 | import { Component, OnInit } from '@angular/core';
7 | import { FormBuilder, FormGroup, Validators } from '@angular/forms';
8 |
9 | @Component({
10 | selector: 'app-applicant-login',
11 | templateUrl: './applicant-login.component.html',
12 | styleUrls: ['./applicant-login.component.css'],
13 | })
14 | export class ApplicantLoginComponent implements OnInit {
15 | loginApplicantForm: FormGroup;
16 | tokenModel: ITokenModel;
17 |
18 | constructor(
19 | private loginApplicantService: LoginApplicantService,
20 | private formBuilder: FormBuilder,
21 | private router: Router
22 | ) {}
23 |
24 | ngOnInit(): void {
25 | this.createLoginApplicantForm();
26 | }
27 |
28 | createLoginApplicantForm() {
29 | this.loginApplicantForm = this.formBuilder.group({
30 | email: ['', Validators.required],
31 | password: ['', Validators.required],
32 | });
33 | }
34 |
35 | loginApplicant() {
36 | if (this.loginApplicantForm.valid) {
37 | let loginModel: LoginApplicantModel = this.loginApplicantForm.value;
38 | this.loginApplicantService
39 | .loginApplicant(loginModel)
40 | .subscribe((data) => {
41 | if (data.length > 0) {
42 | this.tokenModel = data[0];
43 | localStorage.setItem('token', this.tokenModel.token);
44 | this.router.navigate(['applicant']);
45 | alert('Giriş Başarılı Yönlendiriliyorsunuz.');
46 | } else {
47 | alert('Giriş Başarısız Tekrar Deneyiniz');
48 | }
49 | });
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/app/component/applicant/applicant-update/applicant-update.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantUpdateComponent } from './applicant-update.component';
4 |
5 | describe('ApplicantUpdateComponent', () => {
6 | let component: ApplicantUpdateComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantUpdateComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantUpdateComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/application/application-add/application-add.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicationAddComponent } from './application-add.component';
4 |
5 | describe('ApplicationAddComponent', () => {
6 | let component: ApplicationAddComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicationAddComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicationAddComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/application/application-detail/application-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicationDetailComponent } from './application-detail.component';
4 |
5 | describe('ApplicationDetailComponent', () => {
6 | let component: ApplicationDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicationDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicationDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/application/application-detail/application-detail.component.ts:
--------------------------------------------------------------------------------
1 | import { IGetApplicationResponse } from './../../../models/response/application/getApplicationResponse';
2 | import { ActivatedRoute } from '@angular/router';
3 | import { ApplicationService } from './../../../services/application/application.service';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-application-detail',
8 | templateUrl: './application-detail.component.html',
9 | styleUrls: ['./application-detail.component.css'],
10 | })
11 | export class ApplicationDetailComponent implements OnInit {
12 | application: IGetApplicationResponse;
13 | constructor(
14 | private applicationService: ApplicationService,
15 | private activatedRoute: ActivatedRoute
16 | ) {}
17 |
18 | ngOnInit(): void {
19 | this.activatedRoute.params.subscribe((params) =>
20 | this.getApplication(params['id'])
21 | );
22 | }
23 |
24 | getApplication(id: number) {
25 | this.applicationService
26 | .getApplication(id)
27 | .subscribe((data) => (this.application = data));
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/app/component/application/application-list/application-list.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/application/application-list/application-list.component.css
--------------------------------------------------------------------------------
/src/app/component/application/application-list/application-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicationListComponent } from './application-list.component';
4 |
5 | describe('ApplicationListComponent', () => {
6 | let component: ApplicationListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicationListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicationListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/application/application-update/application-update.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicationUpdateComponent } from './application-update.component';
4 |
5 | describe('ApplicationUpdateComponent', () => {
6 | let component: ApplicationUpdateComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicationUpdateComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicationUpdateComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/black-list/black-list.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/blacklist/black-list/black-list.component.css
--------------------------------------------------------------------------------
/src/app/component/blacklist/black-list/black-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BlackListComponent } from './black-list.component';
4 |
5 | describe('BlackListComponent', () => {
6 | let component: BlackListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BlackListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BlackListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/black-list/blacklist-detail/blacklist-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BlacklistDetailComponent } from './blacklist-detail.component';
4 |
5 | describe('BlacklistDetailComponent', () => {
6 | let component: BlacklistDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BlacklistDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BlacklistDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/black-list/blacklist-detail/blacklist-detail.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { IGetBlackListResponse } from './../../../../models/response/blackList/getBlackListResponse';
3 | import { BlacklistService } from './../../../../services/blacklist/blacklist.service';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-blacklist-detail',
8 | templateUrl: './blacklist-detail.component.html',
9 | styleUrls: ['./blacklist-detail.component.css'],
10 | })
11 | export class BlacklistDetailComponent implements OnInit {
12 | blacklist: IGetBlackListResponse;
13 | constructor(
14 | private blacklistService: BlacklistService,
15 | private activatedRoute: ActivatedRoute
16 | ) {}
17 |
18 | ngOnInit(): void {
19 | this.activatedRoute.params.subscribe((params) =>
20 | this.getBlackList(params['id'])
21 | );
22 | }
23 |
24 | getBlackList(id: number) {
25 | this.blacklistService
26 | .getBlackList(id)
27 | .subscribe((data) => (this.blacklist = data));
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/blacklist-add/blacklist-add.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Kara Listeye Ekle
8 |
9 |
10 |
11 |
49 |
50 |
51 |
52 |
60 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/blacklist-add/blacklist-add.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BlacklistAddComponent } from './blacklist-add.component';
4 |
5 | describe('BlacklistAddComponent', () => {
6 | let component: BlacklistAddComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BlacklistAddComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BlacklistAddComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/blacklist-update/blacklist-update.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Kara Liste Güncelle
8 |
9 |
10 |
11 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/src/app/component/blacklist/blacklist-update/blacklist-update.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BlacklistUpdateComponent } from './blacklist-update.component';
4 |
5 | describe('BlacklistUpdateComponent', () => {
6 | let component: BlacklistUpdateComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BlacklistUpdateComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BlacklistUpdateComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/bootcamp/bootcamp-add/bootcamp-add.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BootcampAddComponent } from './bootcamp-add.component';
4 |
5 | describe('BootcampAddComponent', () => {
6 | let component: BootcampAddComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BootcampAddComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BootcampAddComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/bootcamp/bootcamp-detail/bootcamp-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BootcampDetailComponent } from './bootcamp-detail.component';
4 |
5 | describe('BootcampDetailComponent', () => {
6 | let component: BootcampDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BootcampDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BootcampDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/bootcamp/bootcamp-detail/bootcamp-detail.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { IGetBootcampResponse } from './../../../models/response/bootcamp/getBootcampResponse';
3 | import { BootcampService } from './../../../services/bootcamp/bootcamp.service';
4 | import { HttpClient } from '@angular/common/http';
5 | import { Component, OnInit } from '@angular/core';
6 |
7 | @Component({
8 | selector: 'app-bootcamp-detail',
9 | templateUrl: './bootcamp-detail.component.html',
10 | styleUrls: ['./bootcamp-detail.component.css'],
11 | })
12 | export class BootcampDetailComponent implements OnInit {
13 | bootcamp: IGetBootcampResponse;
14 | constructor(
15 | private bootcampService: BootcampService,
16 | private activatedRoute: ActivatedRoute
17 | ) {}
18 |
19 | ngOnInit(): void {
20 | this.activatedRoute.params.subscribe((params) =>
21 | this.getBootcamp(params['id'])
22 | );
23 | }
24 |
25 | getBootcamp(id: number) {
26 | this.bootcampService.getBootcamp(id).subscribe((data) => {
27 | this.bootcamp = data;
28 | });
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/app/component/bootcamp/bootcamp-list/bootcamp-list.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/bootcamp/bootcamp-list/bootcamp-list.component.css
--------------------------------------------------------------------------------
/src/app/component/bootcamp/bootcamp-list/bootcamp-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BootcampListComponent } from './bootcamp-list.component';
4 |
5 | describe('BootcampListComponent', () => {
6 | let component: BootcampListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BootcampListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BootcampListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/bootcamp/bootcamp-update/bootcamp-update.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { BootcampUpdateComponent } from './bootcamp-update.component';
4 |
5 | describe('BootcampUpdateComponent', () => {
6 | let component: BootcampUpdateComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ BootcampUpdateComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(BootcampUpdateComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/employee/employe-list/employe-list.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/employee/employe-list/employe-list.component.css
--------------------------------------------------------------------------------
/src/app/component/employee/employe-list/employe-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeListComponent } from './employe-list.component';
4 |
5 | describe('EmployeListComponent', () => {
6 | let component: EmployeListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ EmployeListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(EmployeListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-add/employee-add.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeeAddComponent } from './employee-add.component';
4 |
5 | describe('EmployeeAddComponent', () => {
6 | let component: EmployeeAddComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ EmployeeAddComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(EmployeeAddComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-add/employee-add.component.ts:
--------------------------------------------------------------------------------
1 | import { ToastrService } from 'ngx-toastr';
2 | import { EmployeeService } from './../../../services/employee/employee.service';
3 | import { ActivatedRoute, Router } from '@angular/router';
4 | import { Component, OnInit } from '@angular/core';
5 | import {
6 | FormBuilder,
7 | FormGroup,
8 | Validators,
9 | FormControl,
10 | } from '@angular/forms';
11 |
12 | @Component({
13 | selector: 'app-employee-add',
14 | templateUrl: './employee-add.component.html',
15 | styleUrls: ['./employee-add.component.css'],
16 | })
17 | export class EmployeeAddComponent implements OnInit {
18 | employeeAddForm: FormGroup;
19 | constructor(
20 | private formBuilder: FormBuilder,
21 | private activatedRoute: ActivatedRoute,
22 | private employeeService: EmployeeService,
23 | private toastrService: ToastrService,
24 | private router: Router
25 | ) {}
26 |
27 | ngOnInit(): void {
28 | this.createAddEmployeeForm();
29 | }
30 |
31 | createAddEmployeeForm() {
32 | this.employeeAddForm = this.formBuilder.group({
33 | firstName: ['', Validators.required],
34 | lastName: ['', Validators.required],
35 | email: ['', Validators.required],
36 | password: ['', Validators.required],
37 | nationalIdentity: ['', Validators.required],
38 | dateOfBirth: ['', Validators.required],
39 | position: ['', Validators.required],
40 | image: ['', Validators.required],
41 | });
42 | }
43 | add() {
44 | if (this.employeeAddForm.valid) {
45 | let employeeModel = Object.assign({}, this.employeeAddForm.value);
46 | this.employeeService.addEmployee(employeeModel).subscribe((data) => {
47 | this.toastrService.success('Çalışan Ekleme Başarılı');
48 | this.router.navigate(['/admin/admin-employee']);
49 | });
50 | } else {
51 | this.toastrService.warning('Form Eksik!!!');
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-detail/employee-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeeDetailComponent } from './employee-detail.component';
4 |
5 | describe('EmployeeDetailComponent', () => {
6 | let component: EmployeeDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ EmployeeDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(EmployeeDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-detail/employee-detail.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { EmployeeService } from './../../../services/employee/employee.service';
3 | import { IGetEmployeeResponse } from './../../../models/response/employee/getEmployeeResponse';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-employee-detail',
8 | templateUrl: './employee-detail.component.html',
9 | styleUrls: ['./employee-detail.component.css'],
10 | })
11 | export class EmployeeDetailComponent implements OnInit {
12 | employee: IGetEmployeeResponse;
13 | constructor(
14 | private employeeService: EmployeeService,
15 | private activatedRoute: ActivatedRoute
16 | ) {}
17 |
18 | ngOnInit(): void {
19 | this.activatedRoute.params.subscribe((params) =>
20 | this.getEmployee(params['id'])
21 | );
22 | }
23 |
24 | getEmployee(id: number) {
25 | this.employeeService
26 | .getEmployee(id)
27 | .subscribe((data) => (this.employee = data));
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-login/employee-login.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
24 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-login/employee-login.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeeLoginComponent } from './employee-login.component';
4 |
5 | describe('EmployeeLoginComponent', () => {
6 | let component: EmployeeLoginComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ EmployeeLoginComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(EmployeeLoginComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/employee/employee-update/employee-update.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeeUpdateComponent } from './employee-update.component';
4 |
5 | describe('EmployeeUpdateComponent', () => {
6 | let component: EmployeeUpdateComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ EmployeeUpdateComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(EmployeeUpdateComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-about/home-about.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeAboutComponent } from './home-about.component';
4 |
5 | describe('HomeAboutComponent', () => {
6 | let component: HomeAboutComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeAboutComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeAboutComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-about/home-about.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-home-about',
5 | templateUrl: './home-about.component.html',
6 | styleUrls: ['./home-about.component.css']
7 | })
8 | export class HomeAboutComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/component/home/home-about/img/team-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/home/home-about/img/team-1.jpg
--------------------------------------------------------------------------------
/src/app/component/home/home-about/img/team-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/home/home-about/img/team-2.jpg
--------------------------------------------------------------------------------
/src/app/component/home/home-about/img/team-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/home/home-about/img/team-3.jpg
--------------------------------------------------------------------------------
/src/app/component/home/home-bootcamp-detail/home-bootcamp-detail/home-bootcamp-detail.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/home/home-bootcamp-detail/home-bootcamp-detail/home-bootcamp-detail.component.css
--------------------------------------------------------------------------------
/src/app/component/home/home-bootcamp-detail/home-bootcamp-detail/home-bootcamp-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeBootcampDetailComponent } from './home-bootcamp-detail.component';
4 |
5 | describe('HomeBootcampDetailComponent', () => {
6 | let component: HomeBootcampDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeBootcampDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeBootcampDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-bootcamp-list/home-bootcamp-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeBootcampListComponent } from './home-bootcamp-list.component';
4 |
5 | describe('HomeBootcampListComponent', () => {
6 | let component: HomeBootcampListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeBootcampListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeBootcampListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-bootcamp-list/home-bootcamp-list.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { BootcampService } from './../../../services/bootcamp/bootcamp.service';
3 | import { IGetAllBootcampResponse } from './../../../models/response/bootcamp/getAllBootcampResponse';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-home-bootcamp-list',
8 | templateUrl: './home-bootcamp-list.component.html',
9 | styleUrls: ['./home-bootcamp-list.component.css'],
10 | })
11 | export class HomeBootcampListComponent implements OnInit {
12 | bootcamps: IGetAllBootcampResponse[] = [];
13 |
14 | constructor(
15 | private bootcampService: BootcampService,
16 | private activatedRoute: ActivatedRoute
17 | ) {}
18 |
19 | ngOnInit(): void {
20 | this.activatedRoute.params.subscribe((params) => this.getAllBootcampList());
21 | }
22 |
23 | getAllBootcampList() {
24 | this.bootcampService
25 | .getStateBootcamp()
26 | .subscribe((data) => (this.bootcamps = data));
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/app/component/home/home-contact/home-contact.component.css:
--------------------------------------------------------------------------------
1 | /*** Contact ***/
2 | @media (max-width: 992px) {
3 | .container.contact {
4 | max-width: 100% !important;
5 | }
6 | .responsive {
7 | height: 1100px !important;
8 | }
9 |
10 | .contact-text {
11 | padding-left: calc(((100% - 960px) / 2) + 0.75rem);
12 | }
13 | }
14 |
15 | @media (min-width: 1200px) {
16 | .contact-text {
17 | padding-left: calc(((100% - 1140px) / 2) + 0.75rem);
18 | }
19 | }
20 |
21 | @media (min-width: 1400px) {
22 | .contact-text {
23 | padding-left: calc(((100% - 1320px) / 2) + 0.75rem);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/app/component/home/home-contact/home-contact.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeContactComponent } from './home-contact.component';
4 |
5 | describe('HomeContactComponent', () => {
6 | let component: HomeContactComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeContactComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeContactComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-contact/home-contact.component.ts:
--------------------------------------------------------------------------------
1 | import { ToastrService } from 'ngx-toastr';
2 | import { Component, OnInit } from '@angular/core';
3 |
4 | @Component({
5 | selector: 'app-home-contact',
6 | templateUrl: './home-contact.component.html',
7 | styleUrls: ['./home-contact.component.css'],
8 | })
9 | export class HomeContactComponent implements OnInit {
10 | constructor(private toastrService: ToastrService) {}
11 |
12 | ngOnInit(): void {}
13 |
14 | formSend() {
15 | this.toastrService.success('Mesajınız Başarıyla Gönderilmiştir.');
16 | setTimeout(() => {
17 | window.location.reload();
18 | }, 1000);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/app/component/home/home-footer/home-footer.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/home/home-footer/home-footer.component.css
--------------------------------------------------------------------------------
/src/app/component/home/home-footer/home-footer.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeFooterComponent } from './home-footer.component';
4 |
5 | describe('HomeFooterComponent', () => {
6 | let component: HomeFooterComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeFooterComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeFooterComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-footer/home-footer.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-home-footer',
5 | templateUrl: './home-footer.component.html',
6 | styleUrls: ['./home-footer.component.css']
7 | })
8 | export class HomeFooterComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/component/home/home-instructor-list/home-instructor-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeInstructorListComponent } from './home-instructor-list.component';
4 |
5 | describe('HomeInstructorListComponent', () => {
6 | let component: HomeInstructorListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeInstructorListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeInstructorListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-instructor-list/home-instructor-list.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { IGetAllInstructorResponse } from './../../../models/response/instructor/getAllInstructorResponse';
3 | import { InstructorService } from './../../../services/instructor/instructor.service';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-home-instructor-list',
8 | templateUrl: './home-instructor-list.component.html',
9 | styleUrls: ['./home-instructor-list.component.css'],
10 | })
11 | export class HomeInstructorListComponent implements OnInit {
12 | instructors: IGetAllInstructorResponse[] = [];
13 | constructor(
14 | private instructorService: InstructorService,
15 | private activatedRoute: ActivatedRoute
16 | ) {}
17 |
18 | ngOnInit(): void {
19 | this.activatedRoute.params.subscribe((params) => this.getInstructors());
20 | }
21 |
22 | getInstructors() {
23 | this.instructorService
24 | .getAllInstructor()
25 | .subscribe((data) => (this.instructors = data));
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/app/component/home/home-page/home-page.component.css:
--------------------------------------------------------------------------------
1 | .bootcampcard:hover {
2 | transform: scale(1.1);
3 | transition: all 0.9s;
4 | }
5 | .bootcampcard {
6 | transition: all 0.9s;
7 | }
8 | @media (max-width: 1200px) {
9 | .responsive {
10 | display: none;
11 | }
12 | .responsiveBody {
13 | height: 350px !important;
14 | }
15 | }
16 | @media (max-width: 768px) {
17 | .responsiveBody {
18 | height: 450px !important;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/app/component/home/home-page/home-page.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomePageComponent } from './home-page.component';
4 |
5 | describe('HomePageComponent', () => {
6 | let component: HomePageComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomePageComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomePageComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/home/home-page/home-page.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-home-page',
5 | templateUrl: './home-page.component.html',
6 | styleUrls: ['./home-page.component.css'],
7 | })
8 | export class HomePageComponent implements OnInit {
9 | constructor() {}
10 |
11 | ngOnInit(): void {}
12 | }
13 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-add/instructor-add.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorAddComponent } from './instructor-add.component';
4 |
5 | describe('InstructorAddComponent', () => {
6 | let component: InstructorAddComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorAddComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorAddComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-detail/instructor-detail.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorDetailComponent } from './instructor-detail.component';
4 |
5 | describe('InstructorDetailComponent', () => {
6 | let component: InstructorDetailComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorDetailComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorDetailComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-detail/instructor-detail.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { InstructorService } from './../../../services/instructor/instructor.service';
3 | import { IGetInstructorResponse } from './../../../models/response/instructor/getInstructorResponse';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-instructor-detail',
8 | templateUrl: './instructor-detail.component.html',
9 | styleUrls: ['./instructor-detail.component.css'],
10 | })
11 | export class InstructorDetailComponent implements OnInit {
12 | instructor: IGetInstructorResponse;
13 | constructor(
14 | private instructorService: InstructorService,
15 | private activatedRoute: ActivatedRoute
16 | ) {}
17 |
18 | ngOnInit(): void {
19 | this.activatedRoute.params.subscribe((params) =>
20 | this.getInstructor(params['id'])
21 | );
22 | }
23 | getInstructor(id: number) {
24 | this.instructorService
25 | .getInstructor(id)
26 | .subscribe((data) => (this.instructor = data));
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-list/instructor-list.component.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 828px) {
2 | .responsiveTable {
3 | font-size: 12px;
4 | width: 100% !important;
5 | padding: 0 !important;
6 | margin-left: 140px !important;
7 | }
8 | button {
9 | padding: 0 !important;
10 | font-size: 12px;
11 | }
12 | table,
13 | tr,
14 | td {
15 | padding: 0 !important;
16 | margin: 0 !important;
17 | }
18 | #res {
19 | display: none;
20 | }
21 | }
22 | @media (max-width: 450px) {
23 | .responsiveTable {
24 | margin: 0 !important;
25 | font-size: 12px;
26 | margin-top: 50px !important;
27 | width: 100% !important;
28 | padding: 0 !important;
29 | }
30 | table,
31 | button {
32 | padding: 0 !important;
33 | font-size: 10px;
34 | }
35 | #res {
36 | display: none;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-list/instructor-list.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorListComponent } from './instructor-list.component';
4 |
5 | describe('InstructorListComponent', () => {
6 | let component: InstructorListComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorListComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorListComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-login/instructor-login.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Eğitmen Giriş Ekranı
5 |
6 |
7 |

18 |
19 |
20 |
21 |

31 |
32 |
33 |
34 |

38 |
39 |
40 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-login/instructor-login.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorLoginComponent } from './instructor-login.component';
4 |
5 | describe('InstructorLoginComponent', () => {
6 | let component: InstructorLoginComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorLoginComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorLoginComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-login/instructor-login.component.ts:
--------------------------------------------------------------------------------
1 | import { LoginInstructorModel } from './../../../models/token/login-instructor';
2 | import { Router } from '@angular/router';
3 | import { LoginInstructorService } from './../../../services/login-instructor/login-instructor.service';
4 | import { ITokenModel } from './../../../models/token/tokenModel';
5 | import { FormGroup, FormBuilder, Validators } from '@angular/forms';
6 | import { Component, OnInit } from '@angular/core';
7 |
8 | @Component({
9 | selector: 'app-instructor-login',
10 | templateUrl: './instructor-login.component.html',
11 | styleUrls: ['./instructor-login.component.css'],
12 | })
13 | export class InstructorLoginComponent implements OnInit {
14 | loginInstructorForm: FormGroup;
15 | tokenModel: ITokenModel;
16 |
17 | constructor(
18 | private loginInstructorService: LoginInstructorService,
19 | private formBuilder: FormBuilder,
20 | private router: Router
21 | ) {}
22 |
23 | ngOnInit(): void {
24 | this.createLoginInstructorForm();
25 | }
26 |
27 | createLoginInstructorForm() {
28 | this.loginInstructorForm = this.formBuilder.group({
29 | email: ['', Validators.required],
30 | password: ['', Validators.required],
31 | });
32 | }
33 | loginInstructor() {
34 | if (this.loginInstructorForm.valid) {
35 | let loginModel: LoginInstructorModel = this.loginInstructorForm.value;
36 | this.loginInstructorService
37 | .loginInstructor(loginModel)
38 | .subscribe((data) => {
39 | if (data.length > 0) {
40 | this.tokenModel = data[0];
41 | localStorage.setItem('token', this.tokenModel.token);
42 | this.router.navigate(['instructor']);
43 | alert('Giriş Başarılı Yönlendiriliyorsunız.');
44 | } else {
45 | alert('Giriş Başarısız Tekrar Deneyiniz.');
46 | }
47 | });
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/app/component/instructor/instructor-update/instructor-update.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorUpdateComponent } from './instructor-update.component';
4 |
5 | describe('InstructorUpdateComponent', () => {
6 | let component: InstructorUpdateComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorUpdateComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorUpdateComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/navi/navi.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { NaviComponent } from './navi.component';
4 |
5 | describe('NaviComponent', () => {
6 | let component: NaviComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ NaviComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(NaviComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/navi/navi.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-navi',
5 | templateUrl: './navi.component.html',
6 | styleUrls: ['./navi.component.css']
7 | })
8 | export class NaviComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/component/register/register.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
36 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/app/component/register/register.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { RegisterComponent } from './register.component';
4 |
5 | describe('RegisterComponent', () => {
6 | let component: RegisterComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ RegisterComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(RegisterComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/register/register.component.ts:
--------------------------------------------------------------------------------
1 | import { RegisterService } from './../../services/register/register.service';
2 | import { Component, OnInit } from '@angular/core';
3 | import {
4 | FormBuilder,
5 | FormGroup,
6 | Validators,
7 | FormControl,
8 | } from '@angular/forms';
9 | import { ToastrService } from 'ngx-toastr';
10 | import { Router } from '@angular/router';
11 |
12 | @Component({
13 | selector: 'app-register',
14 | templateUrl: './register.component.html',
15 | styleUrls: ['./register.component.css'],
16 | })
17 | export class RegisterComponent implements OnInit {
18 | registerForm: FormGroup;
19 | constructor(
20 | private formBuilder: FormBuilder,
21 | private registerService: RegisterService,
22 | private toastrService: ToastrService,
23 | private router: Router
24 | ) {}
25 |
26 | ngOnInit(): void {
27 | this.createAddUsersForm();
28 | }
29 |
30 | createAddUsersForm() {
31 | this.registerForm = this.formBuilder.group({
32 | id: [''],
33 | name: ['', Validators.required],
34 | lastName: ['', Validators.required],
35 | email: ['', Validators.required],
36 | password: ['', Validators.required],
37 | role: ['roleApplicant'],
38 | token: ['aa'],
39 | expiration: ['20.10.2022'],
40 | });
41 | }
42 | add() {
43 | if (this.registerForm.valid) {
44 | let userModel = Object.assign({}, this.registerForm.value);
45 | this.registerService.addUsers(userModel).subscribe((data) => {
46 | this.toastrService.success('Kayıt Başarılı ');
47 | this.router.navigate(['']);
48 | });
49 | } else {
50 | this.toastrService.warning('Form Eksik!!!');
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-bootcamp/applicant-bootcamp.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/userApplicant/applicant-bootcamp/applicant-bootcamp.component.css
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-bootcamp/applicant-bootcamp.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 |
9 |
10 | {{ bootcamp.name }}
11 |
12 |
13 |
14 |
Eğitmen: {{ bootcamp.instructorName }}
15 |
Detay: {{ bootcamp.about }}
16 |
17 | Başlangıç Tarihi {{ bootcamp.dateStart }}
18 |
19 | Bitiş Tarihi {{ bootcamp.dateEnd }}
20 |
21 | Başvuru
22 | Durumu: {{bootcamp.state==1?"Aktif":"Aktif Değil"}}
23 |
24 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-bootcamp/applicant-bootcamp.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantBootcampComponent } from './applicant-bootcamp.component';
4 |
5 | describe('ApplicantBootcampComponent', () => {
6 | let component: ApplicantBootcampComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantBootcampComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantBootcampComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-notification/applicant-notification.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/userApplicant/applicant-notification/applicant-notification.component.css
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-notification/applicant-notification.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantNotificationComponent } from './applicant-notification.component';
4 |
5 | describe('ApplicantNotificationComponent', () => {
6 | let component: ApplicantNotificationComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantNotificationComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantNotificationComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-notification/applicant-notification.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { ToastrService } from 'ngx-toastr';
3 | import { IGetAllApplicationResponse } from './../../../models/response/application/getAllApplicationResponse';
4 | import { ApplicationService } from './../../../services/application/application.service';
5 | import { Component, OnInit, ɵɵqueryRefresh } from '@angular/core';
6 | import { IGetApplicationResponse } from 'src/app/models/response/application/getApplicationResponse';
7 |
8 | @Component({
9 | selector: 'app-applicant-notification',
10 | templateUrl: './applicant-notification.component.html',
11 | styleUrls: ['./applicant-notification.component.css'],
12 | })
13 | export class ApplicantNotificationComponent implements OnInit {
14 | applications: IGetAllApplicationResponse[] = [];
15 | constructor(
16 | private applicationService: ApplicationService,
17 | private toastrService: ToastrService,
18 | private activatedRoute: ActivatedRoute
19 | ) {}
20 |
21 | ngOnInit(): void {
22 | this.getApplication(localStorage.getItem('userId'));
23 | }
24 |
25 | getApplication(id: string) {
26 | this.applicationService
27 | .getId(id)
28 | .subscribe((data) => (this.applications = data));
29 | }
30 | delete(id: number) {
31 | this.applicationService.deleteApplication(id).subscribe();
32 | this.toastrService.error('Başvuru İptal Edildi', 'Dikkat');
33 | setTimeout(() => {
34 | window.location.reload();
35 | }, 1000);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-page/applicant-page.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/userApplicant/applicant-page/applicant-page.component.css
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-page/applicant-page.component.html:
--------------------------------------------------------------------------------
1 | applicant-page works!
2 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-page/applicant-page.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantPageComponent } from './applicant-page.component';
4 |
5 | describe('ApplicantPageComponent', () => {
6 | let component: ApplicantPageComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantPageComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantPageComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/userApplicant/applicant-page/applicant-page.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-applicant-page',
5 | templateUrl: './applicant-page.component.html',
6 | styleUrls: ['./applicant-page.component.css']
7 | })
8 | export class ApplicantPageComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-applicant/instructor-applicant.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorApplicantComponent } from './instructor-applicant.component';
4 |
5 | describe('InstructorApplicantComponent', () => {
6 | let component: InstructorApplicantComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorApplicantComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorApplicantComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-applicant/instructor-applicant.component.ts:
--------------------------------------------------------------------------------
1 | import { Router } from '@angular/router';
2 | import { BootcampService } from 'src/app/services/bootcamp/bootcamp.service';
3 | import { Component, OnInit } from '@angular/core';
4 | import { ToastrService } from 'ngx-toastr';
5 | import {
6 | FormBuilder,
7 | FormGroup,
8 | Validators,
9 | FormControl,
10 | } from '@angular/forms';
11 |
12 | @Component({
13 | selector: 'app-instructor-applicant',
14 | templateUrl: './instructor-applicant.component.html',
15 | styleUrls: ['./instructor-applicant.component.css'],
16 | })
17 | export class InstructorApplicantComponent implements OnInit {
18 | bootcampForm: FormGroup;
19 | constructor(
20 | private formBuilder: FormBuilder,
21 | private bootcampService: BootcampService,
22 | private toastrService: ToastrService,
23 | private router: Router
24 | ) {}
25 |
26 | ngOnInit(): void {
27 | this.createBootcampForm();
28 | }
29 | createBootcampForm() {
30 | this.bootcampForm = this.formBuilder.group({
31 | instructorId: [localStorage.getItem('instructorId')],
32 | name: ['', Validators.required],
33 | dateStart: ['', Validators.required],
34 | dateEnd: ['', Validators.required],
35 | state: [1],
36 | instructorName: ['', Validators.required],
37 | about: ['', Validators.required],
38 | image: ['', Validators.required],
39 | });
40 | }
41 |
42 | add() {
43 | if (this.bootcampForm.valid) {
44 | let bootcamp = Object.assign({}, this.bootcampForm.value);
45 | this.bootcampService.addBootcamp(bootcamp).subscribe((data) => {
46 | this.toastrService.success('Bootcamp Ekleme Başarılı');
47 | this.router.navigate(['/instructor/instructor-bootcamp']);
48 | });
49 | } else {
50 | this.toastrService.warning('Form Eksik!!!');
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-bootcamp/instructor-bootcamp.component.css:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-bootcamp/instructor-bootcamp.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 |
9 |
10 | {{ bootcamp.name }}
11 |
12 |
13 |
14 |
Eğitmen: {{ bootcamp.instructorName }}
15 |
Detay: {{ bootcamp.about }}
16 |
17 | Başlangıç Tarihi {{ bootcamp.dateStart }}
18 |
19 | Bitiş Tarihi {{ bootcamp.dateEnd }}
20 |
21 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-bootcamp/instructor-bootcamp.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorBootcampComponent } from './instructor-bootcamp.component';
4 |
5 | describe('InstructorBootcampComponent', () => {
6 | let component: InstructorBootcampComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorBootcampComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorBootcampComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-bootcamp/instructor-bootcamp.component.ts:
--------------------------------------------------------------------------------
1 | import { ActivatedRoute } from '@angular/router';
2 | import { IGetAllBootcampResponse } from './../../../models/response/bootcamp/getAllBootcampResponse';
3 | import { BootcampService } from './../../../services/bootcamp/bootcamp.service';
4 | import { Component, OnInit } from '@angular/core';
5 |
6 | @Component({
7 | selector: 'app-instructor-bootcamp',
8 | templateUrl: './instructor-bootcamp.component.html',
9 | styleUrls: ['./instructor-bootcamp.component.css'],
10 | })
11 | export class InstructorBootcampComponent implements OnInit {
12 | bootcamps: IGetAllBootcampResponse[] = [];
13 | constructor(
14 | private bootcampService: BootcampService,
15 | private activatedRoute: ActivatedRoute
16 | ) {}
17 |
18 | ngOnInit(): void {
19 | this.getBootcamps(localStorage.getItem('instructorId'));
20 | }
21 | getBootcamps(id: string) {
22 | this.bootcampService
23 | .getInstructorBootcamp(id)
24 | .subscribe((data) => (this.bootcamps = data));
25 | }
26 | delete(id: number) {
27 | this.bootcampService.deletebootcamp(id).subscribe();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-page/instructor-page.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/component/userInstructor/instructor-page/instructor-page.component.css
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-page/instructor-page.component.html:
--------------------------------------------------------------------------------
1 | instructor-page works!
2 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-page/instructor-page.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorPageComponent } from './instructor-page.component';
4 |
5 | describe('InstructorPageComponent', () => {
6 | let component: InstructorPageComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorPageComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorPageComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/component/userInstructor/instructor-page/instructor-page.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-instructor-page',
5 | templateUrl: './instructor-page.component.html',
6 | styleUrls: ['./instructor-page.component.css']
7 | })
8 | export class InstructorPageComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/guards/applicantGuard/login-applicant.guard.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { LoginApplicantGuard } from './login-applicant.guard';
4 |
5 | describe('LoginApplicantGuard', () => {
6 | let guard: LoginApplicantGuard;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | guard = TestBed.inject(LoginApplicantGuard);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(guard).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/guards/applicantGuard/login-applicant.guard.ts:
--------------------------------------------------------------------------------
1 | import { LoginApplicantService } from './../../services/login-applicant/login-applicant.service';
2 | import { Injectable } from '@angular/core';
3 | import {
4 | ActivatedRouteSnapshot,
5 | CanActivate,
6 | Router,
7 | RouterStateSnapshot,
8 | UrlTree,
9 | } from '@angular/router';
10 | import { Observable } from 'rxjs';
11 |
12 | @Injectable({
13 | providedIn: 'root',
14 | })
15 | export class LoginApplicantGuard implements CanActivate {
16 | constructor(
17 | private loginApplicantService: LoginApplicantService,
18 | private router: Router
19 | ) {}
20 | canActivate(
21 | route: ActivatedRouteSnapshot,
22 | state: RouterStateSnapshot
23 | ):
24 | | Observable
25 | | Promise
26 | | boolean
27 | | UrlTree {
28 | let isAuthenticated = this.loginApplicantService.isAuthenticated();
29 | if (isAuthenticated == true) {
30 | return true;
31 | } else {
32 | this.router.navigate(['login']);
33 | console.log('sisteme giriş yapınız');
34 | return false;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/app/guards/instructorGuard/login-instructor.guard.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { LoginInstructorGuard } from './login-instructor.guard';
4 |
5 | describe('LoginInstructorGuard', () => {
6 | let guard: LoginInstructorGuard;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | guard = TestBed.inject(LoginInstructorGuard);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(guard).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/guards/instructorGuard/login-instructor.guard.ts:
--------------------------------------------------------------------------------
1 | import { LoginInstructorService } from './../../services/login-instructor/login-instructor.service';
2 | import { LoginApplicantService } from './../../services/login-applicant/login-applicant.service';
3 | import { InstructorService } from './../../services/instructor/instructor.service';
4 | import { Injectable } from '@angular/core';
5 | import {
6 | ActivatedRouteSnapshot,
7 | CanActivate,
8 | Router,
9 | RouterStateSnapshot,
10 | UrlTree,
11 | } from '@angular/router';
12 | import { Observable } from 'rxjs';
13 |
14 | @Injectable({
15 | providedIn: 'root',
16 | })
17 | export class LoginInstructorGuard implements CanActivate {
18 | constructor(
19 | private instructorService: LoginInstructorService,
20 | private router: Router
21 | ) {}
22 | canActivate(
23 | route: ActivatedRouteSnapshot,
24 | state: RouterStateSnapshot
25 | ):
26 | | Observable
27 | | Promise
28 | | boolean
29 | | UrlTree {
30 | let isAuthenticated = this.instructorService.isAuthenticated();
31 | if (isAuthenticated == true) {
32 | return true;
33 | } else {
34 | this.router.navigate(['login']);
35 | console.log('Sisteme Giriş Yapınız');
36 | return false;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/app/guards/login-employe.guard.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { LoginEmployeGuard } from './login-employe.guard';
4 |
5 | describe('LoginEmployeGuard', () => {
6 | let guard: LoginEmployeGuard;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | guard = TestBed.inject(LoginEmployeGuard);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(guard).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/guards/login-employe.guard.ts:
--------------------------------------------------------------------------------
1 | import { LoginEmployeeService } from './../services/login-employee/login-employee.service';
2 | import { Injectable } from '@angular/core';
3 | import {
4 | ActivatedRouteSnapshot,
5 | CanActivate,
6 | Router,
7 | RouterStateSnapshot,
8 | UrlTree,
9 | } from '@angular/router';
10 | import { Observable } from 'rxjs';
11 |
12 | @Injectable({
13 | providedIn: 'root',
14 | })
15 | export class LoginEmployeGuard implements CanActivate {
16 | userRoleIn = '';
17 | constructor(
18 | private loginEmployeeService: LoginEmployeeService,
19 | private router: Router
20 | ) {}
21 |
22 | canActivate(
23 | route: ActivatedRouteSnapshot,
24 | state: RouterStateSnapshot
25 | ):
26 | | Observable
27 | | Promise
28 | | boolean
29 | | UrlTree {
30 | let url: string = state.url;
31 | return this.chechUserLogin(route, url);
32 | }
33 |
34 | chechUserLogin(route: ActivatedRouteSnapshot, url: any): boolean {
35 | if (this.loginEmployeeService.isAuthenticated()) {
36 | const userRole = this.loginEmployeeService.getRole();
37 | this.userRoleIn = userRole;
38 | if (route.data['role'] && route.data['role'].indexOf(userRole) === -1) {
39 | return false;
40 | }
41 | return true;
42 | }
43 | return false;
44 | }
45 | }
46 |
47 | // let isAuthenticated = this.loginEmployeeService.isAuthenticated();
48 | // if (isAuthenticated == true) {
49 | // return true;
50 | // } else {
51 | // this.router.navigate(['login']);
52 | // console.log('Sisteme Giriş Yapınız');
53 | // return false;
54 | // }
55 |
--------------------------------------------------------------------------------
/src/app/interceptors/login-employee.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | import {
3 | HttpRequest,
4 | HttpHandler,
5 | HttpEvent,
6 | HttpInterceptor,
7 | } from '@angular/common/http';
8 | import { Observable } from 'rxjs';
9 |
10 | @Injectable()
11 | export class EmployeeInterceptor implements HttpInterceptor {
12 | constructor() {}
13 |
14 | intercept(
15 | request: HttpRequest,
16 | next: HttpHandler
17 | ): Observable> {
18 | return next.handle(request);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/app/models/request/applicant/createApplicantRequest.ts:
--------------------------------------------------------------------------------
1 | export interface ICreateApplicantRequest {
2 | firstName: string;
3 | lastName: string;
4 | email: string;
5 | password: string;
6 | nationalIdentity: number;
7 | dateOfBirth: string;
8 | about: string;
9 | image: string;
10 | state: number;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/request/applicant/updateApplicantRequest.ts:
--------------------------------------------------------------------------------
1 | export interface IUpdateApplicantRequest {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | about: string;
8 | nationalIdentity: number;
9 | dateOfBirth: string;
10 | image: string;
11 | state: number;
12 | }
13 |
--------------------------------------------------------------------------------
/src/app/models/request/application/createApplicationRequest.ts:
--------------------------------------------------------------------------------
1 | export interface ICreateApplicationRequest {
2 | userId: number;
3 | userName: string;
4 |
5 | applyName: string;
6 | bootcampId: number;
7 | bootcampName: string;
8 |
9 | state: number;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/request/application/updateApplicationRequest.ts:
--------------------------------------------------------------------------------
1 | export interface IUpdateApplicationRequest {
2 | userId: number;
3 | bootcampId: number;
4 | state: number;
5 |
6 | applyName: string;
7 |
8 | userName: string;
9 | bootcampName: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/request/blackList/createBlackListRequest.ts:
--------------------------------------------------------------------------------
1 | export interface ICreateBlackListRequest {
2 | applicantId: number;
3 | date: string;
4 | reason: string;
5 | applicantName: string;
6 | }
7 |
--------------------------------------------------------------------------------
/src/app/models/request/blackList/updateBlackListRequest.ts:
--------------------------------------------------------------------------------
1 | export interface IUpdateBlackListRequest {
2 | id: number;
3 | applicantId: number;
4 | date: string;
5 | reason: string;
6 | }
7 |
--------------------------------------------------------------------------------
/src/app/models/request/bootcamp/createBootcampRequest.ts:
--------------------------------------------------------------------------------
1 | export interface ICreateBootcampRequest {
2 | instructorId: number;
3 | name: string;
4 | dateStart: string;
5 | dateEnd: string;
6 | state: number;
7 | about: string;
8 | instructorName: string;
9 | image: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/request/bootcamp/updateBootcampRequest.ts:
--------------------------------------------------------------------------------
1 | export interface IUpdateBootcampRequest {
2 | id: number;
3 | instructorId: number;
4 | name: string;
5 | dateStart: string;
6 | dateEnd: string;
7 | state: number;
8 | about: string;
9 | instructorName: string;
10 | image: string;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/request/employee/createEmployeeRequest.ts:
--------------------------------------------------------------------------------
1 | export interface ICreateEmployeeRequest {
2 | firstName: string;
3 | lastName: string;
4 | email: string;
5 | password: string;
6 | nationalIdentity: number;
7 | dateOfBirth: string;
8 | position: string;
9 | image: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/request/employee/updateEmployeeRequest.ts:
--------------------------------------------------------------------------------
1 | export interface IUpdateEmployeeRequest {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | nationalIdentity: number;
8 | dateOfBirth: string;
9 | position: string;
10 | image: string;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/request/instructor/createInstructorRequest.ts:
--------------------------------------------------------------------------------
1 | export interface ICreateInstructorRequest {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | dateOfBirth: string;
6 | email: string;
7 | password: string;
8 | companyName: string;
9 | image: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/request/instructor/updateInstructorRequest.ts:
--------------------------------------------------------------------------------
1 | export interface IUpdateInstructorRequest {
2 | firstName: string;
3 | lastName: string;
4 | dateOfBirth: string;
5 | email: string;
6 | password: string;
7 | companyName: string;
8 | image: string;
9 | }
10 |
--------------------------------------------------------------------------------
/src/app/models/response/applicant/getAllApplicantResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetAllApplicantResponse {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | about: string;
8 | nationalIdentity: number;
9 | dateOfBirth: string;
10 | image: string;
11 | state: number;
12 | }
13 |
--------------------------------------------------------------------------------
/src/app/models/response/applicant/getApplicantResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetApplicantResponse {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | about: string;
8 | nationalIdentity: number;
9 | dateOfBirth: string;
10 | image: string;
11 | state: number;
12 | }
13 |
--------------------------------------------------------------------------------
/src/app/models/response/application/getAllApplicationResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetAllApplicationResponse {
2 | id: number;
3 | userId: number;
4 | bootcampId: number;
5 | state: number;
6 | applyName: string;
7 |
8 | userName: string;
9 | bootcampName: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/response/application/getApplicationResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetApplicationResponse {
2 | id: number;
3 | userId: number;
4 | bootcampId: number;
5 | state: number;
6 | applyName: string;
7 |
8 | userName: string;
9 | bootcampName: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/response/blackList/getAllBlackListResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetAllBlackListResponse {
2 | id: number;
3 | applicantId: number;
4 | date: string;
5 | reason: string;
6 | applicantName: string;
7 | }
8 |
--------------------------------------------------------------------------------
/src/app/models/response/blackList/getBlackListResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetBlackListResponse {
2 | id: number;
3 | applicantId: number;
4 | date: string;
5 | reason: string;
6 | applicantName: string;
7 | }
8 |
--------------------------------------------------------------------------------
/src/app/models/response/bootcamp/getAllBootcampResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetAllBootcampResponse {
2 | id: number;
3 | instructorId: number;
4 | name: string;
5 | dateStart: string;
6 | dateEnd: string;
7 | state: number;
8 | about: string;
9 | instructorName: string;
10 | image: string;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/response/bootcamp/getBootcampResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetBootcampResponse {
2 | id: number;
3 | instructorId: number;
4 | name: string;
5 | dateStart: string;
6 | dateEnd: string;
7 | state: number;
8 | about: string;
9 | instructorName: string;
10 | image: string;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/response/employee/getAllEmployeeResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetAllEmployeeResponse {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | nationalIdentity: number;
8 | dateOfBirth: string;
9 | position: string;
10 | image: string;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/response/employee/getEmployeeResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetEmployeeResponse {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | nationalIdentity: number;
8 | dateOfBirth: string;
9 | position: string;
10 | image: string;
11 | }
12 |
--------------------------------------------------------------------------------
/src/app/models/response/instructor/getAllInstructorResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetAllInstructorResponse {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | companyName: string;
8 | dateOfBirth: string;
9 | image: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/response/instructor/getInstructorResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGetInstructorResponse {
2 | id: number;
3 | firstName: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | companyName: string;
8 | dateOfBirth: string;
9 | image: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/token/login-applicant.ts:
--------------------------------------------------------------------------------
1 | export interface LoginApplicantModel {
2 | email: string;
3 | password: string;
4 | role: string;
5 | }
6 |
--------------------------------------------------------------------------------
/src/app/models/token/login-employee.ts:
--------------------------------------------------------------------------------
1 | export interface LoginEmployeeModel {
2 | email: string;
3 | password: string;
4 | role: string;
5 | }
6 |
--------------------------------------------------------------------------------
/src/app/models/token/login-instructor.ts:
--------------------------------------------------------------------------------
1 | export interface LoginInstructorModel {
2 | email: string;
3 | password: string;
4 | role: string;
5 | }
6 |
--------------------------------------------------------------------------------
/src/app/models/token/tokenModel.ts:
--------------------------------------------------------------------------------
1 | export interface ITokenModel {
2 | token: string;
3 | expiration: string;
4 | role: string;
5 | id: string;
6 | instructorId: string;
7 | name: string;
8 | lastName: string;
9 | image: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/models/token/users-model.ts:
--------------------------------------------------------------------------------
1 | export interface GetUsers {
2 | id: number;
3 | name: string;
4 | lastName: string;
5 | email: string;
6 | password: string;
7 | expiration: string;
8 | token: string;
9 | role: string;
10 | }
11 |
--------------------------------------------------------------------------------
/src/app/pages/admin/admin.component.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 450px) {
2 | .asd {
3 | margin-left: 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/app/pages/admin/admin.component.html:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/app/pages/admin/admin.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { AdminComponent } from './admin.component';
4 |
5 | describe('AdminComponent', () => {
6 | let component: AdminComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ AdminComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(AdminComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/pages/admin/admin.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-admin',
5 | templateUrl: './admin.component.html',
6 | styleUrls: ['./admin.component.css']
7 | })
8 | export class AdminComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/pages/applicant/applicant.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/pages/applicant/applicant.component.css
--------------------------------------------------------------------------------
/src/app/pages/applicant/applicant.component.html:
--------------------------------------------------------------------------------
1 |
2 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/src/app/pages/applicant/applicant.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantComponent } from './applicant.component';
4 |
5 | describe('ApplicantComponent', () => {
6 | let component: ApplicantComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ ApplicantComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(ApplicantComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/pages/applicant/applicant.component.ts:
--------------------------------------------------------------------------------
1 | import { LoginEmployeeService } from './../../services/login-employee/login-employee.service';
2 | import { LoginApplicantService } from './../../services/login-applicant/login-applicant.service';
3 | import { Component, OnInit } from '@angular/core';
4 | import { Router } from '@angular/router';
5 |
6 | @Component({
7 | selector: 'app-applicant',
8 | templateUrl: './applicant.component.html',
9 | styleUrls: ['./applicant.component.css'],
10 | })
11 | export class ApplicantComponent implements OnInit {
12 | name = localStorage.getItem('name') + ' ' + localStorage.getItem('lastName');
13 | image = localStorage.getItem('image');
14 | constructor(
15 | private loginEmployeeService: LoginEmployeeService,
16 | private router: Router
17 | ) {}
18 |
19 | ngOnInit(): void {}
20 | logout() {
21 | this.loginEmployeeService.logout();
22 | this.router.navigate(['']);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/app/pages/home/home.component.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | }
4 |
--------------------------------------------------------------------------------
/src/app/pages/home/home.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { HomeComponent } from './home.component';
4 |
5 | describe('HomeComponent', () => {
6 | let component: HomeComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ HomeComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(HomeComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/pages/home/home.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-home',
5 | templateUrl: './home.component.html',
6 | styleUrls: ['./home.component.css']
7 | })
8 | export class HomeComponent implements OnInit {
9 |
10 | constructor() { }
11 |
12 | ngOnInit(): void {
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/pages/instructor/instructor.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/app/pages/instructor/instructor.component.css
--------------------------------------------------------------------------------
/src/app/pages/instructor/instructor.component.html:
--------------------------------------------------------------------------------
1 |
2 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/app/pages/instructor/instructor.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorComponent } from './instructor.component';
4 |
5 | describe('InstructorComponent', () => {
6 | let component: InstructorComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ InstructorComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(InstructorComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/pages/instructor/instructor.component.ts:
--------------------------------------------------------------------------------
1 | import { LoginEmployeeService } from './../../services/login-employee/login-employee.service';
2 | import { Router } from '@angular/router';
3 | import { Component, OnInit } from '@angular/core';
4 |
5 | @Component({
6 | selector: 'app-instructor',
7 | templateUrl: './instructor.component.html',
8 | styleUrls: ['./instructor.component.css'],
9 | })
10 | export class InstructorComponent implements OnInit {
11 | name = localStorage.getItem('name') + ' ' + localStorage.getItem('lastName');
12 | image = localStorage.getItem('image');
13 | constructor(
14 | private loginEmployeeService: LoginEmployeeService,
15 | private router: Router
16 | ) {}
17 |
18 | ngOnInit(): void {}
19 |
20 | logout() {
21 | this.loginEmployeeService.logout();
22 | this.router.navigate(['']);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/app/pipes/applicantfilter.pipe.ts:
--------------------------------------------------------------------------------
1 | import { IGetAllApplicantResponse } from './../models/response/applicant/getAllApplicantResponse';
2 | import { Pipe, PipeTransform } from '@angular/core';
3 |
4 | @Pipe({
5 | name: 'applicantfilter',
6 | })
7 | export class ApplicantfilterPipe implements PipeTransform {
8 | transform(
9 | value: IGetAllApplicantResponse[],
10 | filterApplicant: string
11 | ): IGetAllApplicantResponse[] {
12 | filterApplicant = filterApplicant
13 | ? filterApplicant.toLocaleLowerCase()
14 | : null;
15 |
16 | return filterApplicant
17 | ? value.filter(
18 | (f: IGetAllApplicantResponse) =>
19 | f.firstName.toLocaleLowerCase().indexOf(filterApplicant) !== -1
20 | )
21 | : value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/app/pipes/applicationfilter.pipe.ts:
--------------------------------------------------------------------------------
1 | import { IGetAllApplicationResponse } from './../models/response/application/getAllApplicationResponse';
2 | import { Pipe, PipeTransform } from '@angular/core';
3 |
4 | @Pipe({
5 | name: 'applicationfilter',
6 | })
7 | export class ApplicationfilterPipe implements PipeTransform {
8 | transform(
9 | value: IGetAllApplicationResponse[],
10 | filterApplication: string
11 | ): IGetAllApplicationResponse[] {
12 | filterApplication = filterApplication
13 | ? filterApplication.toLocaleLowerCase()
14 | : null;
15 |
16 | return filterApplication
17 | ? value.filter(
18 | (e: IGetAllApplicationResponse) =>
19 | e.userName.toLocaleLowerCase().indexOf(filterApplication) !== -1
20 | )
21 | : value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/app/pipes/blacklistfilter.pipe.ts:
--------------------------------------------------------------------------------
1 | import { IGetAllBlackListResponse } from './../models/response/blackList/getAllBlackListResponse';
2 | import { Pipe, PipeTransform } from '@angular/core';
3 |
4 | @Pipe({
5 | name: 'blacklistfilter',
6 | })
7 | export class BlacklistfilterPipe implements PipeTransform {
8 | transform(
9 | value: IGetAllBlackListResponse[],
10 | filterBlacklist: string
11 | ): IGetAllBlackListResponse[] {
12 | filterBlacklist = filterBlacklist
13 | ? filterBlacklist.toLocaleLowerCase()
14 | : null;
15 |
16 | return filterBlacklist
17 | ? value.filter(
18 | (f: IGetAllBlackListResponse) =>
19 | f.applicantName.toLocaleLowerCase().indexOf(filterBlacklist) !== -1
20 | )
21 | : value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/app/pipes/bootcampfilter.pipe.ts:
--------------------------------------------------------------------------------
1 | import { IGetAllBootcampResponse } from './../models/response/bootcamp/getAllBootcampResponse';
2 | import { Pipe, PipeTransform } from '@angular/core';
3 |
4 | @Pipe({
5 | name: 'bootcampfilter',
6 | })
7 | export class BootcampfilterPipe implements PipeTransform {
8 | transform(
9 | value: IGetAllBootcampResponse[],
10 | filterText: string
11 | ): IGetAllBootcampResponse[] {
12 | filterText = filterText ? filterText.toLocaleLowerCase() : null;
13 | return filterText
14 | ? value.filter(
15 | (b: IGetAllBootcampResponse) =>
16 | b.name.toLocaleLowerCase().indexOf(filterText) !== -1
17 | )
18 | : value;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/app/pipes/employeefilter.pipe.ts:
--------------------------------------------------------------------------------
1 | import { IGetAllEmployeeResponse } from './../models/response/employee/getAllEmployeeResponse';
2 | import { Pipe, PipeTransform } from '@angular/core';
3 |
4 | @Pipe({
5 | name: 'employeefilter',
6 | })
7 | export class EmployeefilterPipe implements PipeTransform {
8 | transform(
9 | value: IGetAllEmployeeResponse[],
10 | filterTextEmployee: string
11 | ): IGetAllEmployeeResponse[] {
12 | filterTextEmployee = filterTextEmployee
13 | ? filterTextEmployee.toLocaleLowerCase()
14 | : null;
15 | return filterTextEmployee
16 | ? value.filter(
17 | (c: IGetAllEmployeeResponse) =>
18 | c.firstName.toLocaleLowerCase().indexOf(filterTextEmployee) !== -1
19 | )
20 | : value;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/app/pipes/instructorfilter.pipe.ts:
--------------------------------------------------------------------------------
1 | import { IGetAllInstructorResponse } from './../models/response/instructor/getAllInstructorResponse';
2 | import { Pipe, PipeTransform } from '@angular/core';
3 |
4 | @Pipe({
5 | name: 'instructorfilter',
6 | })
7 | export class InstructorfilterPipe implements PipeTransform {
8 | transform(
9 | value: IGetAllInstructorResponse[],
10 | filterInstructor: string
11 | ): IGetAllInstructorResponse[] {
12 | filterInstructor = filterInstructor
13 | ? filterInstructor.toLocaleLowerCase()
14 | : null;
15 |
16 | return filterInstructor
17 | ? value.filter(
18 | (d: IGetAllInstructorResponse) =>
19 | d.firstName.toLocaleLowerCase().indexOf(filterInstructor) !== -1
20 | )
21 | : value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/app/services/applicant/applicant.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicantService } from './applicant.service';
4 |
5 | describe('ApplicantService', () => {
6 | let service: ApplicantService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(ApplicantService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/applicant/applicant.service.ts:
--------------------------------------------------------------------------------
1 | import { ICreateApplicantRequest } from './../../models/request/applicant/createApplicantRequest';
2 | import { IGetApplicantResponse } from './../../models/response/applicant/getApplicantResponse';
3 | import { IGetAllApplicantResponse } from './../../models/response/applicant/getAllApplicantResponse';
4 | import { HttpClient } from '@angular/common/http';
5 | import { Injectable } from '@angular/core';
6 | import { Observable } from 'rxjs';
7 |
8 | @Injectable({
9 | providedIn: 'root',
10 | })
11 | export class ApplicantService {
12 | apiUrl = 'http://localhost:3000/applicant';
13 |
14 | constructor(private httpClient: HttpClient) {}
15 |
16 | getAllApplicant(): Observable {
17 | return this.httpClient.get(
18 | this.apiUrl + '?state=1'
19 | );
20 | }
21 |
22 | getApplicant(id: number): Observable {
23 | return this.httpClient.get(this.apiUrl + '/' + id);
24 | }
25 |
26 | //add-update-delete
27 | addApplicant(applicant: ICreateApplicantRequest) {
28 | return this.httpClient.post(this.apiUrl, applicant);
29 | }
30 | updateApplicant(id: number, applicant: any) {
31 | return this.httpClient.put(this.apiUrl + '/' + id, applicant);
32 | }
33 | // deleteApplicant(applicant: IGetAllApplicantResponse) {
34 | // return this.httpClient.delete(this.apiUrl + '/' + applicant.id);
35 | // }
36 | deleteApplicant(id: number) {
37 | return this.httpClient.delete(this.apiUrl + '/' + id);
38 | }
39 | updateApplicantState(
40 | id: number,
41 | selectedState: number
42 | ): Observable {
43 | return this.httpClient.patch(
44 | this.apiUrl + '/' + id,
45 | { state: selectedState }
46 | );
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/app/services/application/application.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { ApplicationService } from './application.service';
4 |
5 | describe('ApplicationService', () => {
6 | let service: ApplicationService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(ApplicationService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/application/application.service.ts:
--------------------------------------------------------------------------------
1 | import { IUpdateApplicationRequest } from './../../models/request/application/updateApplicationRequest';
2 | import { ICreateApplicationRequest } from './../../models/request/application/createApplicationRequest';
3 | import { ICreateApplicantRequest } from './../../models/request/applicant/createApplicantRequest';
4 | import { IGetApplicationResponse } from './../../models/response/application/getApplicationResponse';
5 | import { IGetAllApplicationResponse } from './../../models/response/application/getAllApplicationResponse';
6 | import { Observable } from 'rxjs';
7 | import { HttpClient } from '@angular/common/http';
8 | import { Injectable } from '@angular/core';
9 | import { identifierName } from '@angular/compiler';
10 |
11 | @Injectable({
12 | providedIn: 'root',
13 | })
14 | export class ApplicationService {
15 | apiUrl = 'http://localhost:3000/application';
16 |
17 | constructor(private httpClient: HttpClient) {}
18 |
19 | getAllApplication(): Observable {
20 | return this.httpClient.get(this.apiUrl);
21 | }
22 | getId(id: string) {
23 | return this.httpClient.get(
24 | this.apiUrl + '?userId=' + id
25 | );
26 | }
27 |
28 | getApplication(id: number): Observable {
29 | return this.httpClient.get(this.apiUrl + '/' + id);
30 | }
31 | addApplication(application: ICreateApplicationRequest) {
32 | return this.httpClient.post(this.apiUrl, application);
33 | }
34 | updateApplication(id: number, application: any) {
35 | return this.httpClient.put(this.apiUrl + '/' + id, application);
36 | }
37 | // deleteApplication(application: IGetAllApplicationResponse) {
38 | // return this.httpClient.delete(this.apiUrl + '/' + application.id);
39 | // }
40 | deleteApplication(id: number) {
41 | return this.httpClient.delete(this.apiUrl + '/' + id);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/app/services/blacklist/blacklist.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { BlacklistService } from './blacklist.service';
4 |
5 | describe('BlacklistService', () => {
6 | let service: BlacklistService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(BlacklistService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/blacklist/blacklist.service.ts:
--------------------------------------------------------------------------------
1 | import { ICreateBlackListRequest } from './../../models/request/blackList/createBlackListRequest';
2 | import { IGetBlackListResponse } from './../../models/response/blackList/getBlackListResponse';
3 | import { IGetAllBlackListResponse } from './../../models/response/blackList/getAllBlackListResponse';
4 | import { Observable } from 'rxjs';
5 | import { HttpClient } from '@angular/common/http';
6 | import { Injectable } from '@angular/core';
7 |
8 | @Injectable({
9 | providedIn: 'root',
10 | })
11 | export class BlacklistService {
12 | apiUrl = 'http://localhost:3000/blacklist';
13 |
14 | constructor(private httpClient: HttpClient) {}
15 |
16 | getAllBlackList(): Observable {
17 | return this.httpClient.get(this.apiUrl);
18 | }
19 |
20 | getBlackList(id: number): Observable {
21 | return this.httpClient.get(this.apiUrl + '/' + id);
22 | }
23 | addBlackList(blackList: ICreateBlackListRequest) {
24 | return this.httpClient.post(this.apiUrl, blackList);
25 | }
26 | updateBlackList(id: number, blacklist: any) {
27 | return this.httpClient.put(this.apiUrl + '/' + id, blacklist);
28 | }
29 | // deleteBlackList(blackList: IGetAllBlackListResponse) {
30 | // return this.httpClient.delete(this.apiUrl + '/' + blackList.id);
31 | // }
32 | deleteBlackList(id: number) {
33 | return this.httpClient.delete(this.apiUrl + '/' + id);
34 | }
35 | removeApplicant(id: number) {
36 | return this.httpClient.delete(
37 | this.apiUrl + '/' + id
38 | );
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/app/services/bootcamp/bootcamp.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { BootcampService } from './bootcamp.service';
4 |
5 | describe('BootcampService', () => {
6 | let service: BootcampService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(BootcampService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/bootcamp/bootcamp.service.ts:
--------------------------------------------------------------------------------
1 | import { ICreateBootcampRequest } from './../../models/request/bootcamp/createBootcampRequest';
2 | import { IGetBootcampResponse } from './../../models/response/bootcamp/getBootcampResponse';
3 | import { Observable } from 'rxjs';
4 | import { IGetAllBootcampResponse } from './../../models/response/bootcamp/getAllBootcampResponse';
5 | import { HttpClient } from '@angular/common/http';
6 | import { Injectable } from '@angular/core';
7 |
8 | @Injectable({
9 | providedIn: 'root',
10 | })
11 | export class BootcampService {
12 | apiUrl = 'http://localhost:3000/bootcamp';
13 |
14 | constructor(private httpClient: HttpClient) {}
15 |
16 | getAllBootcamp(): Observable {
17 | return this.httpClient.get(this.apiUrl);
18 | }
19 | getStateBootcamp() {
20 | return this.httpClient.get(
21 | this.apiUrl + '?state=1'
22 | );
23 | }
24 | getBootcamp(id: number): Observable {
25 | return this.httpClient.get(this.apiUrl + '/' + id);
26 | }
27 | getInstructorBootcamp(id: string) {
28 | return this.httpClient.get(
29 | this.apiUrl + '?instructorId=' + id
30 | );
31 | }
32 | addBootcamp(bootcamp: ICreateBootcampRequest) {
33 | return this.httpClient.post(this.apiUrl, bootcamp);
34 | }
35 | updateBootcamp(id: number, bootcamp: any) {
36 | return this.httpClient.put(this.apiUrl + '/' + id, bootcamp);
37 | }
38 |
39 | deletebootcamp(id: number) {
40 | return this.httpClient.delete(this.apiUrl + '/' + id);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/app/services/employee/employee.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeeService } from './employee.service';
4 |
5 | describe('EmployeeService', () => {
6 | let service: EmployeeService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(EmployeeService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/employee/employee.service.ts:
--------------------------------------------------------------------------------
1 | import { ICreateEmployeeRequest } from './../../models/request/employee/createEmployeeRequest';
2 | import { IGetAllEmployeeResponse } from './../../models/response/employee/getAllEmployeeResponse';
3 | import { Observable } from 'rxjs';
4 | import { HttpClient } from '@angular/common/http';
5 | import { Injectable } from '@angular/core';
6 | import { IGetEmployeeResponse } from 'src/app/models/response/employee/getEmployeeResponse';
7 |
8 | @Injectable({
9 | providedIn: 'root',
10 | })
11 | export class EmployeeService {
12 | apiUrl = 'http://localhost:3000/employee';
13 | constructor(private httpClient: HttpClient) {}
14 |
15 | getAllEmployee(): Observable {
16 | return this.httpClient.get(this.apiUrl);
17 | }
18 | getEmployee(id: number): Observable {
19 | return this.httpClient.get(this.apiUrl + '/' + id);
20 | }
21 | addEmployee(employee: ICreateEmployeeRequest) {
22 | return this.httpClient.post(this.apiUrl, employee);
23 | }
24 | deleteEmployee(employee: IGetAllEmployeeResponse) {
25 | return this.httpClient.delete(this.apiUrl + '/' + employee.id);
26 | }
27 | deleteEmp(id: number) {
28 | return this.httpClient.delete(this.apiUrl + '/' + id);
29 | }
30 | updateEmployee(id: number, employee: any) {
31 | return this.httpClient.put(this.apiUrl + '/' + id, employee);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/app/services/instructor/instructor.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { InstructorService } from './instructor.service';
4 |
5 | describe('InstructorService', () => {
6 | let service: InstructorService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(InstructorService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/instructor/instructor.service.ts:
--------------------------------------------------------------------------------
1 | import { IUpdateInstructorRequest } from './../../models/request/instructor/updateInstructorRequest';
2 | import { ICreateInstructorRequest } from './../../models/request/instructor/createInstructorRequest';
3 | import { IGetInstructorResponse } from './../../models/response/instructor/getInstructorResponse';
4 | import { IGetAllInstructorResponse } from 'src/app/models/response/instructor/getAllInstructorResponse';
5 | import { Observable } from 'rxjs';
6 | import { HttpClient } from '@angular/common/http';
7 | import { Injectable } from '@angular/core';
8 |
9 | @Injectable({
10 | providedIn: 'root',
11 | })
12 | export class InstructorService {
13 | apiUrl = 'http://localhost:3000/instructor';
14 | constructor(private httpClient: HttpClient) {}
15 |
16 | getAllInstructor(): Observable {
17 | return this.httpClient.get(this.apiUrl);
18 | }
19 |
20 | getInstructor(id: number): Observable {
21 | return this.httpClient.get(this.apiUrl + '/' + id);
22 | }
23 | addInstructor(instructor: ICreateInstructorRequest) {
24 | return this.httpClient.post(this.apiUrl, instructor);
25 | }
26 | getUpdateInstructor(id: number) {
27 | return this.httpClient.get(
28 | this.apiUrl + '/' + id
29 | );
30 | }
31 | updateInstructor(id: number, instructor: IUpdateInstructorRequest) {
32 | return this.httpClient.put(this.apiUrl + '/' + id, instructor);
33 | }
34 | // deleteInstructor(employee: IGetAllInstructorResponse) {
35 | // return this.httpClient.delete(this.apiUrl + '/' + employee.id);
36 | // }
37 | deleteInstructor(id: number) {
38 | return this.httpClient.delete(this.apiUrl + '/' + id);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/app/services/login-applicant/login-applicant.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { LoginApplicantService } from './login-applicant.service';
4 |
5 | describe('LoginApplicantService', () => {
6 | let service: LoginApplicantService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(LoginApplicantService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/login-applicant/login-applicant.service.ts:
--------------------------------------------------------------------------------
1 | import { LoginApplicantModel } from './../../models/token/login-applicant';
2 | import { ITokenModel } from './../../models/token/tokenModel';
3 | import { HttpClient } from '@angular/common/http';
4 | import { Injectable } from '@angular/core';
5 |
6 | @Injectable({
7 | providedIn: 'root',
8 | })
9 | export class LoginApplicantService {
10 | apiUrl: string = 'http://localhost:3000/applicant';
11 | constructor(private httpClient: HttpClient) {}
12 |
13 | loginApplicant(user: LoginApplicantModel) {
14 | return this.httpClient.get(
15 | this.apiUrl + '/?email=' + user.email + '&password=' + user.password
16 | );
17 | }
18 |
19 | isAuthenticated() {
20 | if (localStorage.getItem('token')) {
21 | return true;
22 | } else {
23 | return false;
24 | }
25 | }
26 | logout() {
27 | localStorage.clear();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/app/services/login-employee/login-employee.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { LoginEmployeeService } from './login-employee.service';
4 |
5 | describe('LoginEmployeeService', () => {
6 | let service: LoginEmployeeService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(LoginEmployeeService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/login-instructor/login-instructor.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { LoginInstructorService } from './login-instructor.service';
4 |
5 | describe('LoginInstructorService', () => {
6 | let service: LoginInstructorService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(LoginInstructorService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/login-instructor/login-instructor.service.ts:
--------------------------------------------------------------------------------
1 | import { ITokenModel } from './../../models/token/tokenModel';
2 | import { LoginInstructorModel } from './../../models/token/login-instructor';
3 | import { HttpClient } from '@angular/common/http';
4 | import { Injectable } from '@angular/core';
5 |
6 | @Injectable({
7 | providedIn: 'root',
8 | })
9 | export class LoginInstructorService {
10 | apiUrl = 'http://localhost:3000/instructor';
11 | constructor(private httpClient: HttpClient) {}
12 |
13 | loginInstructor(user: LoginInstructorModel) {
14 | return this.httpClient.get(
15 | this.apiUrl + '/?email=' + user.email + '&password=' + user.password
16 | );
17 | }
18 | isAuthenticated() {
19 | if (localStorage.getItem('token')) {
20 | return true;
21 | } else {
22 | return false;
23 | }
24 | }
25 | logout() {
26 | localStorage.clear();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/app/services/register/register.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { RegisterService } from './register.service';
4 |
5 | describe('RegisterService', () => {
6 | let service: RegisterService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(RegisterService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/register/register.service.ts:
--------------------------------------------------------------------------------
1 | import { GetUsers } from './../../models/token/users-model';
2 | import { HttpClient } from '@angular/common/http';
3 | import { Injectable } from '@angular/core';
4 |
5 | @Injectable({
6 | providedIn: 'root',
7 | })
8 | export class RegisterService {
9 | apiUrl = 'http://localhost:3000/users';
10 | constructor(private httpClient: HttpClient) {}
11 |
12 | addUsers(users: GetUsers) {
13 | return this.httpClient.post(this.apiUrl, users);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/assets/.gitkeep
--------------------------------------------------------------------------------
/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // This file can be replaced during build by using the `fileReplacements` array.
2 | // `ng build` replaces `environment.ts` with `environment.prod.ts`.
3 | // The list of file replacements can be found in `angular.json`.
4 |
5 | export const environment = {
6 | production: false
7 | };
8 |
9 | /*
10 | * For easier debugging in development mode, you can import the following file
11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
12 | *
13 | * This import should be commented out in production mode because it will have a negative impact
14 | * on performance if an error is thrown.
15 | */
16 | // import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
17 |
--------------------------------------------------------------------------------
/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/favicon.ico
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | KodlamaioBootcampProject
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/src/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/styles.css
--------------------------------------------------------------------------------
/src/template/LICENSE.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/LICENSE.txt
--------------------------------------------------------------------------------
/src/template/READ-ME.txt:
--------------------------------------------------------------------------------
1 | => Template Name : DASHMIN - Bootstrap Admin Template Free
2 |
3 | => Template Link : https://htmlcodex.com/bootstrap-admin-template-free
4 |
5 | => Template License : https://htmlcodex.com/license (or read the LICENSE.txt file)
6 |
7 | => Template Author : HTML Codex
8 |
9 | => Author Website : https://htmlcodex.com
10 |
11 | => About HTML Codex : HTML Codex is one of the top creators and publishers of Free HTML templates, HTML landing pages, HTML email templates and HTML snippets in the world. Read more at ( https://htmlcodex.com/about-us )
--------------------------------------------------------------------------------
/src/template/bootstrap-admin-template-free.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/bootstrap-admin-template-free.jpg
--------------------------------------------------------------------------------
/src/template/img/testimonial-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/img/testimonial-1.jpg
--------------------------------------------------------------------------------
/src/template/img/testimonial-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/img/testimonial-2.jpg
--------------------------------------------------------------------------------
/src/template/img/user.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/img/user.jpg
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014 Owl
2 | Modified work Copyright 2016 David Deutsch
3 |
4 | Permission is hereby granted, free of charge, to any person
5 | obtaining a copy of this software and associated documentation
6 | files (the "Software"), to deal in the Software without
7 | restriction, including without limitation the rights to use,
8 | copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the
10 | Software is furnished to do so, subject to the following
11 | conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 | OTHER DEALINGS IN THE SOFTWARE.
24 |
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/assets/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/lib/owlcarousel/assets/ajax-loader.gif
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/assets/owl.theme.default.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Owl Carousel v2.2.1
3 | * Copyright 2013-2017 David Deutsch
4 | * Licensed under ()
5 | */
6 | /*
7 | * Default theme - Owl Carousel CSS File
8 | */
9 | .owl-theme .owl-nav {
10 | margin-top: 10px;
11 | text-align: center;
12 | -webkit-tap-highlight-color: transparent; }
13 | .owl-theme .owl-nav [class*='owl-'] {
14 | color: #FFF;
15 | font-size: 14px;
16 | margin: 5px;
17 | padding: 4px 7px;
18 | background: #D6D6D6;
19 | display: inline-block;
20 | cursor: pointer;
21 | border-radius: 3px; }
22 | .owl-theme .owl-nav [class*='owl-']:hover {
23 | background: #869791;
24 | color: #FFF;
25 | text-decoration: none; }
26 | .owl-theme .owl-nav .disabled {
27 | opacity: 0.5;
28 | cursor: default; }
29 |
30 | .owl-theme .owl-nav.disabled + .owl-dots {
31 | margin-top: 10px; }
32 |
33 | .owl-theme .owl-dots {
34 | text-align: center;
35 | -webkit-tap-highlight-color: transparent; }
36 | .owl-theme .owl-dots .owl-dot {
37 | display: inline-block;
38 | zoom: 1;
39 | *display: inline; }
40 | .owl-theme .owl-dots .owl-dot span {
41 | width: 10px;
42 | height: 10px;
43 | margin: 5px 7px;
44 | background: #D6D6D6;
45 | display: block;
46 | -webkit-backface-visibility: visible;
47 | transition: opacity 200ms ease;
48 | border-radius: 30px; }
49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
50 | background: #869791; }
51 |
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/assets/owl.theme.default.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Owl Carousel v2.2.1
3 | * Copyright 2013-2017 David Deutsch
4 | * Licensed under ()
5 | */
6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/assets/owl.theme.green.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Owl Carousel v2.2.1
3 | * Copyright 2013-2017 David Deutsch
4 | * Licensed under ()
5 | */
6 | /*
7 | * Green theme - Owl Carousel CSS File
8 | */
9 | .owl-theme .owl-nav {
10 | margin-top: 10px;
11 | text-align: center;
12 | -webkit-tap-highlight-color: transparent; }
13 | .owl-theme .owl-nav [class*='owl-'] {
14 | color: #FFF;
15 | font-size: 14px;
16 | margin: 5px;
17 | padding: 4px 7px;
18 | background: #D6D6D6;
19 | display: inline-block;
20 | cursor: pointer;
21 | border-radius: 3px; }
22 | .owl-theme .owl-nav [class*='owl-']:hover {
23 | background: #4DC7A0;
24 | color: #FFF;
25 | text-decoration: none; }
26 | .owl-theme .owl-nav .disabled {
27 | opacity: 0.5;
28 | cursor: default; }
29 |
30 | .owl-theme .owl-nav.disabled + .owl-dots {
31 | margin-top: 10px; }
32 |
33 | .owl-theme .owl-dots {
34 | text-align: center;
35 | -webkit-tap-highlight-color: transparent; }
36 | .owl-theme .owl-dots .owl-dot {
37 | display: inline-block;
38 | zoom: 1;
39 | *display: inline; }
40 | .owl-theme .owl-dots .owl-dot span {
41 | width: 10px;
42 | height: 10px;
43 | margin: 5px 7px;
44 | background: #D6D6D6;
45 | display: block;
46 | -webkit-backface-visibility: visible;
47 | transition: opacity 200ms ease;
48 | border-radius: 30px; }
49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
50 | background: #4DC7A0; }
51 |
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/assets/owl.theme.green.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Owl Carousel v2.2.1
3 | * Copyright 2013-2017 David Deutsch
4 | * Licensed under ()
5 | */
6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#4DC7A0;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#4DC7A0}
--------------------------------------------------------------------------------
/src/template/lib/owlcarousel/assets/owl.video.play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hasansaid/kodlamaioBootcampProject/7d920d80c5918dcaf3edfef038aee7c4213b6650/src/template/lib/owlcarousel/assets/owl.video.play.png
--------------------------------------------------------------------------------
/src/template/lib/waypoints/links.php:
--------------------------------------------------------------------------------
1 | 'lib/waypoints/waypoints.min.js'
4 | );
5 | ?>
6 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap.scss:
--------------------------------------------------------------------------------
1 | /******* Customized Bootstrap ********/
2 |
3 | $primary: #009CFF;
4 | $light: #F3F6F9;
5 | $dark: #191C24;
6 |
7 | $font-family-base: 'Heebo', sans-serif;
8 |
9 | $body-bg: $light;
10 |
11 | $body-color: #757575;
12 |
13 | $headings-color: $dark;
14 |
15 | $headings-font-weight: 700;
16 |
17 | $enable-responsive-font-sizes: true;
18 |
19 | $border-radius: 5px;
20 |
21 | $link-decoration: none;
22 |
23 | $enable-negative-margins: true;
24 |
25 | @import "bootstrap/scss/bootstrap";
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_alert.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .alert {
6 | position: relative;
7 | padding: $alert-padding-y $alert-padding-x;
8 | margin-bottom: $alert-margin-bottom;
9 | border: $alert-border-width solid transparent;
10 | @include border-radius($alert-border-radius);
11 | }
12 |
13 | // Headings for larger alerts
14 | .alert-heading {
15 | // Specified to prevent conflicts of changing $headings-color
16 | color: inherit;
17 | }
18 |
19 | // Provide class for links that match alerts
20 | .alert-link {
21 | font-weight: $alert-link-font-weight;
22 | }
23 |
24 |
25 | // Dismissible alerts
26 | //
27 | // Expand the right padding and account for the close button's positioning.
28 |
29 | .alert-dismissible {
30 | padding-right: $alert-dismissible-padding-r;
31 |
32 | // Adjust close link position
33 | .btn-close {
34 | position: absolute;
35 | top: 0;
36 | right: 0;
37 | z-index: $stretched-link-z-index + 1;
38 | padding: $alert-padding-y * 1.25 $alert-padding-x;
39 | }
40 | }
41 |
42 |
43 | // scss-docs-start alert-modifiers
44 | // Generate contextual modifier classes for colorizing the alert.
45 |
46 | @each $state, $value in $theme-colors {
47 | $alert-background: shift-color($value, $alert-bg-scale);
48 | $alert-border: shift-color($value, $alert-border-scale);
49 | $alert-color: shift-color($value, $alert-color-scale);
50 | @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
51 | $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
52 | }
53 | .alert-#{$state} {
54 | @include alert-variant($alert-background, $alert-border, $alert-color);
55 | }
56 | }
57 | // scss-docs-end alert-modifiers
58 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_badge.scss:
--------------------------------------------------------------------------------
1 | // Base class
2 | //
3 | // Requires one of the contextual, color modifier classes for `color` and
4 | // `background-color`.
5 |
6 | .badge {
7 | display: inline-block;
8 | padding: $badge-padding-y $badge-padding-x;
9 | @include font-size($badge-font-size);
10 | font-weight: $badge-font-weight;
11 | line-height: 1;
12 | color: $badge-color;
13 | text-align: center;
14 | white-space: nowrap;
15 | vertical-align: baseline;
16 | @include border-radius($badge-border-radius);
17 | @include gradient-bg();
18 |
19 | // Empty badges collapse automatically
20 | &:empty {
21 | display: none;
22 | }
23 | }
24 |
25 | // Quick fix for badges in buttons
26 | .btn .badge {
27 | position: relative;
28 | top: -1px;
29 | }
30 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_breadcrumb.scss:
--------------------------------------------------------------------------------
1 | .breadcrumb {
2 | display: flex;
3 | flex-wrap: wrap;
4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5 | margin-bottom: $breadcrumb-margin-bottom;
6 | @include font-size($breadcrumb-font-size);
7 | list-style: none;
8 | background-color: $breadcrumb-bg;
9 | @include border-radius($breadcrumb-border-radius);
10 | }
11 |
12 | .breadcrumb-item {
13 | // The separator between breadcrumbs (by default, a forward-slash: "/")
14 | + .breadcrumb-item {
15 | padding-left: $breadcrumb-item-padding-x;
16 |
17 | &::before {
18 | float: left; // Suppress inline spacings and underlining of the separator
19 | padding-right: $breadcrumb-item-padding-x;
20 | color: $breadcrumb-divider-color;
21 | content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
22 | }
23 | }
24 |
25 | &.active {
26 | color: $breadcrumb-active-color;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_close.scss:
--------------------------------------------------------------------------------
1 | // transparent background and border properties included for button version.
2 | // iOS requires the button element instead of an anchor tag.
3 | // If you want the anchor version, it requires `href="#"`.
4 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
5 |
6 | .btn-close {
7 | box-sizing: content-box;
8 | width: $btn-close-width;
9 | height: $btn-close-height;
10 | padding: $btn-close-padding-y $btn-close-padding-x;
11 | color: $btn-close-color;
12 | background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
13 | border: 0; // for button elements
14 | @include border-radius();
15 | opacity: $btn-close-opacity;
16 |
17 | // Override 's hover style
18 | &:hover {
19 | color: $btn-close-color;
20 | text-decoration: none;
21 | opacity: $btn-close-hover-opacity;
22 | }
23 |
24 | &:focus {
25 | outline: 0;
26 | box-shadow: $btn-close-focus-shadow;
27 | opacity: $btn-close-focus-opacity;
28 | }
29 |
30 | &:disabled,
31 | &.disabled {
32 | pointer-events: none;
33 | user-select: none;
34 | opacity: $btn-close-disabled-opacity;
35 | }
36 | }
37 |
38 | .btn-close-white {
39 | filter: $btn-close-white-filter;
40 | }
41 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_containers.scss:
--------------------------------------------------------------------------------
1 | // Container widths
2 | //
3 | // Set the container width, and override it for fixed navbars in media queries.
4 |
5 | @if $enable-grid-classes {
6 | // Single container class with breakpoint max-widths
7 | .container,
8 | // 100% wide container at all breakpoints
9 | .container-fluid {
10 | @include make-container();
11 | }
12 |
13 | // Responsive containers that are 100% wide until a breakpoint
14 | @each $breakpoint, $container-max-width in $container-max-widths {
15 | .container-#{$breakpoint} {
16 | @extend .container-fluid;
17 | }
18 |
19 | @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
20 | %responsive-container-#{$breakpoint} {
21 | max-width: $container-max-width;
22 | }
23 |
24 | // Extend each breakpoint which is smaller or equal to the current breakpoint
25 | $extend-breakpoint: true;
26 |
27 | @each $name, $width in $grid-breakpoints {
28 | @if ($extend-breakpoint) {
29 | .container#{breakpoint-infix($name, $grid-breakpoints)} {
30 | @extend %responsive-container-#{$breakpoint};
31 | }
32 |
33 | // Once the current breakpoint is reached, stop extending
34 | @if ($breakpoint == $name) {
35 | $extend-breakpoint: false;
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_forms.scss:
--------------------------------------------------------------------------------
1 | @import "forms/labels";
2 | @import "forms/form-text";
3 | @import "forms/form-control";
4 | @import "forms/form-select";
5 | @import "forms/form-check";
6 | @import "forms/form-range";
7 | @import "forms/floating-labels";
8 | @import "forms/input-group";
9 | @import "forms/validation";
10 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_grid.scss:
--------------------------------------------------------------------------------
1 | // Row
2 | //
3 | // Rows contain your columns.
4 |
5 | @if $enable-grid-classes {
6 | .row {
7 | @include make-row();
8 |
9 | > * {
10 | @include make-col-ready();
11 | }
12 | }
13 | }
14 |
15 |
16 | // Columns
17 | //
18 | // Common styles for small and large grid columns
19 |
20 | @if $enable-grid-classes {
21 | @include make-grid-columns();
22 | }
23 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_helpers.scss:
--------------------------------------------------------------------------------
1 | @import "helpers/clearfix";
2 | @import "helpers/colored-links";
3 | @import "helpers/ratio";
4 | @import "helpers/position";
5 | @import "helpers/visually-hidden";
6 | @import "helpers/stretched-link";
7 | @import "helpers/text-truncation";
8 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_images.scss:
--------------------------------------------------------------------------------
1 | // Responsive images (ensure images don't scale beyond their parents)
2 | //
3 | // This is purposefully opt-in via an explicit class rather than being the default for all `
`s.
4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2,
5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6 | // which weren't expecting the images within themselves to be involuntarily resized.
7 | // See also https://github.com/twbs/bootstrap/issues/18178
8 | .img-fluid {
9 | @include img-fluid();
10 | }
11 |
12 |
13 | // Image thumbnails
14 | .img-thumbnail {
15 | padding: $thumbnail-padding;
16 | background-color: $thumbnail-bg;
17 | border: $thumbnail-border-width solid $thumbnail-border-color;
18 | @include border-radius($thumbnail-border-radius);
19 | @include box-shadow($thumbnail-box-shadow);
20 |
21 | // Keep them at most 100% wide
22 | @include img-fluid();
23 | }
24 |
25 | //
26 | // Figures
27 | //
28 |
29 | .figure {
30 | // Ensures the caption's text aligns with the image.
31 | display: inline-block;
32 | }
33 |
34 | .figure-img {
35 | margin-bottom: $spacer / 2;
36 | line-height: 1;
37 | }
38 |
39 | .figure-caption {
40 | @include font-size($figure-caption-font-size);
41 | color: $figure-caption-color;
42 | }
43 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Toggles
2 | //
3 | // Used in conjunction with global variables to enable certain theme features.
4 |
5 | // Vendor
6 | @import "vendor/rfs";
7 |
8 | // Deprecate
9 | @import "mixins/deprecate";
10 |
11 | // Helpers
12 | @import "mixins/breakpoints";
13 | @import "mixins/color-scheme";
14 | @import "mixins/image";
15 | @import "mixins/resize";
16 | @import "mixins/visually-hidden";
17 | @import "mixins/reset-text";
18 | @import "mixins/text-truncate";
19 |
20 | // Utilities
21 | @import "mixins/utilities";
22 |
23 | // Components
24 | @import "mixins/alert";
25 | @import "mixins/buttons";
26 | @import "mixins/caret";
27 | @import "mixins/pagination";
28 | @import "mixins/lists";
29 | @import "mixins/list-group";
30 | @import "mixins/forms";
31 | @import "mixins/table-variants";
32 |
33 | // Skins
34 | @import "mixins/border-radius";
35 | @import "mixins/box-shadow";
36 | @import "mixins/gradients";
37 | @import "mixins/transition";
38 |
39 | // Layout
40 | @import "mixins/clearfix";
41 | @import "mixins/container";
42 | @import "mixins/grid";
43 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_pagination.scss:
--------------------------------------------------------------------------------
1 | .pagination {
2 | display: flex;
3 | @include list-unstyled();
4 | }
5 |
6 | .page-link {
7 | position: relative;
8 | display: block;
9 | color: $pagination-color;
10 | text-decoration: if($link-decoration == none, null, none);
11 | background-color: $pagination-bg;
12 | border: $pagination-border-width solid $pagination-border-color;
13 | @include transition($pagination-transition);
14 |
15 | &:hover {
16 | z-index: 2;
17 | color: $pagination-hover-color;
18 | text-decoration: if($link-hover-decoration == underline, none, null);
19 | background-color: $pagination-hover-bg;
20 | border-color: $pagination-hover-border-color;
21 | }
22 |
23 | &:focus {
24 | z-index: 3;
25 | color: $pagination-focus-color;
26 | background-color: $pagination-focus-bg;
27 | outline: $pagination-focus-outline;
28 | box-shadow: $pagination-focus-box-shadow;
29 | }
30 | }
31 |
32 | .page-item {
33 | &:not(:first-child) .page-link {
34 | margin-left: $pagination-margin-start;
35 | }
36 |
37 | &.active .page-link {
38 | z-index: 3;
39 | color: $pagination-active-color;
40 | @include gradient-bg($pagination-active-bg);
41 | border-color: $pagination-active-border-color;
42 | }
43 |
44 | &.disabled .page-link {
45 | color: $pagination-disabled-color;
46 | pointer-events: none;
47 | background-color: $pagination-disabled-bg;
48 | border-color: $pagination-disabled-border-color;
49 | }
50 | }
51 |
52 |
53 | //
54 | // Sizing
55 | //
56 | @include pagination-size($pagination-padding-y, $pagination-padding-x, null, $pagination-border-radius);
57 |
58 | .pagination-lg {
59 | @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);
60 | }
61 |
62 | .pagination-sm {
63 | @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);
64 | }
65 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_progress.scss:
--------------------------------------------------------------------------------
1 | // Disable animation if transitions are disabled
2 |
3 | // scss-docs-start progress-keyframes
4 | @if $enable-transitions {
5 | @keyframes progress-bar-stripes {
6 | 0% { background-position-x: $progress-height; }
7 | }
8 | }
9 | // scss-docs-end progress-keyframes
10 |
11 | .progress {
12 | display: flex;
13 | height: $progress-height;
14 | overflow: hidden; // force rounded corners by cropping it
15 | @include font-size($progress-font-size);
16 | background-color: $progress-bg;
17 | @include border-radius($progress-border-radius);
18 | @include box-shadow($progress-box-shadow);
19 | }
20 |
21 | .progress-bar {
22 | display: flex;
23 | flex-direction: column;
24 | justify-content: center;
25 | overflow: hidden;
26 | color: $progress-bar-color;
27 | text-align: center;
28 | white-space: nowrap;
29 | background-color: $progress-bar-bg;
30 | @include transition($progress-bar-transition);
31 | }
32 |
33 | .progress-bar-striped {
34 | @include gradient-striped();
35 | background-size: $progress-height $progress-height;
36 | }
37 |
38 | @if $enable-transitions {
39 | .progress-bar-animated {
40 | animation: $progress-bar-animation-timing progress-bar-stripes;
41 |
42 | @if $enable-reduced-motion {
43 | @media (prefers-reduced-motion: reduce) {
44 | animation: none;
45 | }
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_root.scss:
--------------------------------------------------------------------------------
1 | :root {
2 | // Custom variable values only support SassScript inside `#{}`.
3 | @each $color, $value in $colors {
4 | --#{$variable-prefix}#{$color}: #{$value};
5 | }
6 |
7 | @each $color, $value in $theme-colors {
8 | --#{$variable-prefix}#{$color}: #{$value};
9 | }
10 |
11 | // Use `inspect` for lists so that quoted items keep the quotes.
12 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
13 | --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
14 | --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};
15 | --#{$variable-prefix}gradient: #{$gradient};
16 | }
17 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_spinners.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Rotating border
3 | //
4 |
5 | // scss-docs-start spinner-border-keyframes
6 | @keyframes spinner-border {
7 | to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
8 | }
9 | // scss-docs-end spinner-border-keyframes
10 |
11 | .spinner-border {
12 | display: inline-block;
13 | width: $spinner-width;
14 | height: $spinner-height;
15 | vertical-align: $spinner-vertical-align;
16 | border: $spinner-border-width solid currentColor;
17 | border-right-color: transparent;
18 | // stylelint-disable-next-line property-disallowed-list
19 | border-radius: 50%;
20 | animation: $spinner-animation-speed linear infinite spinner-border;
21 | }
22 |
23 | .spinner-border-sm {
24 | width: $spinner-width-sm;
25 | height: $spinner-height-sm;
26 | border-width: $spinner-border-width-sm;
27 | }
28 |
29 | //
30 | // Growing circle
31 | //
32 |
33 | // scss-docs-start spinner-grow-keyframes
34 | @keyframes spinner-grow {
35 | 0% {
36 | transform: scale(0);
37 | }
38 | 50% {
39 | opacity: 1;
40 | transform: none;
41 | }
42 | }
43 | // scss-docs-end spinner-grow-keyframes
44 |
45 | .spinner-grow {
46 | display: inline-block;
47 | width: $spinner-width;
48 | height: $spinner-height;
49 | vertical-align: $spinner-vertical-align;
50 | background-color: currentColor;
51 | // stylelint-disable-next-line property-disallowed-list
52 | border-radius: 50%;
53 | opacity: 0;
54 | animation: $spinner-animation-speed linear infinite spinner-grow;
55 | }
56 |
57 | .spinner-grow-sm {
58 | width: $spinner-width-sm;
59 | height: $spinner-height-sm;
60 | }
61 |
62 | @if $enable-reduced-motion {
63 | @media (prefers-reduced-motion: reduce) {
64 | .spinner-border,
65 | .spinner-grow {
66 | animation-duration: $spinner-animation-speed * 2;
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_toasts.scss:
--------------------------------------------------------------------------------
1 | .toast {
2 | width: $toast-max-width;
3 | max-width: 100%;
4 | @include font-size($toast-font-size);
5 | color: $toast-color;
6 | pointer-events: auto;
7 | background-color: $toast-background-color;
8 | background-clip: padding-box;
9 | border: $toast-border-width solid $toast-border-color;
10 | box-shadow: $toast-box-shadow;
11 | @include border-radius($toast-border-radius);
12 |
13 | &:not(.showing):not(.show) {
14 | opacity: 0;
15 | }
16 |
17 | &.hide {
18 | display: none;
19 | }
20 | }
21 |
22 | .toast-container {
23 | width: max-content;
24 | max-width: 100%;
25 | pointer-events: none;
26 |
27 | > :not(:last-child) {
28 | margin-bottom: $toast-spacing;
29 | }
30 | }
31 |
32 | .toast-header {
33 | display: flex;
34 | align-items: center;
35 | padding: $toast-padding-y $toast-padding-x;
36 | color: $toast-header-color;
37 | background-color: $toast-header-background-color;
38 | background-clip: padding-box;
39 | border-bottom: $toast-border-width solid $toast-header-border-color;
40 | @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
41 |
42 | .btn-close {
43 | margin-right: $toast-padding-x / -2;
44 | margin-left: $toast-padding-x;
45 | }
46 | }
47 |
48 | .toast-body {
49 | padding: $toast-padding-x; // apply to both vertical and horizontal
50 | word-wrap: break-word;
51 | }
52 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_transitions.scss:
--------------------------------------------------------------------------------
1 | .fade {
2 | @include transition($transition-fade);
3 |
4 | &:not(.show) {
5 | opacity: 0;
6 | }
7 | }
8 |
9 | // scss-docs-start collapse-classes
10 | .collapse {
11 | &:not(.show) {
12 | display: none;
13 | }
14 | }
15 |
16 | .collapsing {
17 | height: 0;
18 | overflow: hidden;
19 | @include transition($transition-collapse);
20 | }
21 | // scss-docs-end collapse-classes
22 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/_type.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Headings
3 | //
4 | .h1 {
5 | @extend h1;
6 | }
7 |
8 | .h2 {
9 | @extend h2;
10 | }
11 |
12 | .h3 {
13 | @extend h3;
14 | }
15 |
16 | .h4 {
17 | @extend h4;
18 | }
19 |
20 | .h5 {
21 | @extend h5;
22 | }
23 |
24 | .h6 {
25 | @extend h6;
26 | }
27 |
28 |
29 | .lead {
30 | @include font-size($lead-font-size);
31 | font-weight: $lead-font-weight;
32 | }
33 |
34 | // Type display classes
35 | @each $display, $font-size in $display-font-sizes {
36 | .display-#{$display} {
37 | @include font-size($font-size);
38 | font-weight: $display-font-weight;
39 | line-height: $display-line-height;
40 | }
41 | }
42 |
43 | //
44 | // Emphasis
45 | //
46 | .small {
47 | @extend small;
48 | }
49 |
50 | .mark {
51 | @extend mark;
52 | }
53 |
54 | //
55 | // Lists
56 | //
57 |
58 | .list-unstyled {
59 | @include list-unstyled();
60 | }
61 |
62 | // Inline turns list items into inline-block
63 | .list-inline {
64 | @include list-unstyled();
65 | }
66 | .list-inline-item {
67 | display: inline-block;
68 |
69 | &:not(:last-child) {
70 | margin-right: $list-inline-padding;
71 | }
72 | }
73 |
74 |
75 | //
76 | // Misc
77 | //
78 |
79 | // Builds on `abbr`
80 | .initialism {
81 | @include font-size($initialism-font-size);
82 | text-transform: uppercase;
83 | }
84 |
85 | // Blockquotes
86 | .blockquote {
87 | margin-bottom: $blockquote-margin-y;
88 | @include font-size($blockquote-font-size);
89 |
90 | > :last-child {
91 | margin-bottom: 0;
92 | }
93 | }
94 |
95 | .blockquote-footer {
96 | margin-top: -$blockquote-margin-y;
97 | margin-bottom: $blockquote-margin-y;
98 | @include font-size($blockquote-footer-font-size);
99 | color: $blockquote-footer-color;
100 |
101 | &::before {
102 | content: "\2014\00A0"; // em dash, nbsp
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/bootstrap-grid.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grid v5.0.0 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | $include-column-box-sizing: true !default;
9 |
10 | @import "functions";
11 | @import "variables";
12 |
13 | @import "mixins/lists";
14 | @import "mixins/breakpoints";
15 | @import "mixins/container";
16 | @import "mixins/grid";
17 | @import "mixins/utilities";
18 |
19 | @import "vendor/rfs";
20 |
21 | @import "containers";
22 | @import "grid";
23 |
24 | @import "utilities";
25 | // Only use the utilities we need
26 | // stylelint-disable-next-line scss/dollar-variable-default
27 | $utilities: map-get-multiple(
28 | $utilities,
29 | (
30 | "display",
31 | "order",
32 | "flex",
33 | "flex-direction",
34 | "flex-grow",
35 | "flex-shrink",
36 | "flex-wrap",
37 | "justify-content",
38 | "align-items",
39 | "align-content",
40 | "align-self",
41 | "margin",
42 | "margin-x",
43 | "margin-y",
44 | "margin-top",
45 | "margin-end",
46 | "margin-bottom",
47 | "margin-start",
48 | "negative-margin",
49 | "negative-margin-x",
50 | "negative-margin-y",
51 | "negative-margin-top",
52 | "negative-margin-end",
53 | "negative-margin-bottom",
54 | "negative-margin-start",
55 | "padding",
56 | "padding-x",
57 | "padding-y",
58 | "padding-top",
59 | "padding-end",
60 | "padding-bottom",
61 | "padding-start",
62 | )
63 | );
64 |
65 | @import "utilities/api";
66 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/bootstrap-reboot.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 |
9 | @import "functions";
10 | @import "variables";
11 | // Prevent the usage of custom properties since we don't add them to `:root` in reboot
12 | $font-family-base: $font-family-sans-serif; // stylelint-disable-line scss/dollar-variable-default
13 | $font-family-code: $font-family-monospace; // stylelint-disable-line scss/dollar-variable-default
14 | @import "mixins";
15 | @import "reboot";
16 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/bootstrap-utilities.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Utilities v5.0.0 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | // Configuration
9 | @import "functions";
10 | @import "variables";
11 | @import "mixins";
12 | @import "utilities";
13 |
14 | // Helpers
15 | @import "helpers";
16 |
17 | // Utilities
18 | @import "utilities/api";
19 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/bootstrap.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v5.0.0 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | // scss-docs-start import-stack
9 | // Configuration
10 | @import "functions";
11 | @import "variables";
12 | @import "mixins";
13 | @import "utilities";
14 |
15 | // Layout & components
16 | @import "root";
17 | @import "reboot";
18 | @import "type";
19 | @import "images";
20 | @import "containers";
21 | @import "grid";
22 | @import "tables";
23 | @import "forms";
24 | @import "buttons";
25 | @import "transitions";
26 | @import "dropdown";
27 | @import "button-group";
28 | @import "nav";
29 | @import "navbar";
30 | @import "card";
31 | @import "accordion";
32 | @import "breadcrumb";
33 | @import "pagination";
34 | @import "badge";
35 | @import "alert";
36 | @import "progress";
37 | @import "list-group";
38 | @import "close";
39 | @import "toasts";
40 | @import "modal";
41 | @import "tooltip";
42 | @import "popover";
43 | @import "carousel";
44 | @import "spinners";
45 | @import "offcanvas";
46 |
47 | // Helpers
48 | @import "helpers";
49 |
50 | // Utilities
51 | @import "utilities/api";
52 | // scss-docs-end import-stack
53 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/forms/_form-text.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Form text
3 | //
4 |
5 | .form-text {
6 | margin-top: $form-text-margin-top;
7 | @include font-size($form-text-font-size);
8 | font-style: $form-text-font-style;
9 | font-weight: $form-text-font-weight;
10 | color: $form-text-color;
11 | }
12 |
--------------------------------------------------------------------------------
/src/template/scss/bootstrap/scss/forms/_labels.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | //
4 |
5 | .form-label {
6 | margin-bottom: $form-label-margin-bottom;
7 | @include font-size($form-label-font-size);
8 | font-style: $form-label-font-style;
9 | font-weight: $form-label-font-weight;
10 | color: $form-label-color;
11 | }
12 |
13 | // For use with horizontal and inline forms, when you need the label (or legend)
14 | // text to align with the form controls.
15 | .col-form-label {
16 | padding-top: add($input-padding-y, $input-border-width);
17 | padding-bottom: add($input-padding-y, $input-border-width);
18 | margin-bottom: 0; // Override the `