-
Notifications
You must be signed in to change notification settings - Fork 0
Final PR in Main #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pestler
wants to merge
115
commits into
main
Choose a base branch
from
develop
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Final PR in Main #61
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
сreate dependabot
Bumps [jasmine-core](https://github.com/jasmine/jasmine) from 5.7.1 to 5.10.0. - [Release notes](https://github.com/jasmine/jasmine/releases) - [Changelog](https://github.com/jasmine/jasmine/blob/main/RELEASE.md) - [Commits](jasmine/jasmine@v5.7.1...v5.10.0) --- updated-dependencies: - dependency-name: jasmine-core dependency-version: 5.10.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.40.0 to 8.42.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.42.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.42.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3 to 5.9.2. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml) - [Commits](microsoft/TypeScript@v5.8.3...v5.9.2) --- updated-dependencies: - dependency-name: typescript dependency-version: 5.9.2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(github-config): Add GitHub configuration files and templates * chore(github-config): Apply formatting changes * chore(ci): Refactor pre-commit hook with lint-staged and re-write workflow files * fix(deps): Resolve pnpm-lock.yaml conflict and finalize lint-staged setup * feat(ci): Add test:ci script and update CI workflow
Bumps the github-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-node](https://github.com/actions/setup-node) and [pnpm/action-setup](https://github.com/pnpm/action-setup). Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v5) Updates `actions/setup-node` from 4 to 5 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v5) Updates `pnpm/action-setup` from 3 to 4 - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](pnpm/action-setup@v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: actions/setup-node dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: pnpm/action-setup dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the dev-dependencies group with 4 updates: [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js), [eslint](https://github.com/eslint/eslint), [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint). Updates `@eslint/js` from 9.34.0 to 9.35.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.35.0/packages/js) Updates `eslint` from 9.34.0 to 9.35.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](eslint/eslint@v9.34.0...v9.35.0) Updates `eslint-plugin-jsdoc` from 54.3.1 to 55.0.0 - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](gajus/eslint-plugin-jsdoc@v54.3.1...v55.0.0) Updates `typescript-eslint` from 8.42.0 to 8.43.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.43.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-version: 9.35.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: eslint dependency-version: 9.35.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: eslint-plugin-jsdoc dependency-version: 55.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: typescript-eslint dependency-version: 8.43.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: change setting * fix: fix ci * feat: add mprmc * feat: formatting * fix: change ci
* feat(login): create login page UI * feat: add font-size
* feat: create layout component * fix: test * chore: configure schematics defaults * feat: create draft footer (closes #23) * feat: create header component * fix: test * feat: add icons --------- Co-authored-by: Aleh Kuis <pestleralex@gmail.com>
* feat: create auth guard * fix: test
* feat: add 404 * feat: add 404 page
feat: add vertical menu in dashboard
* refactor: create main nav component * fix: test * feat: create course select component * feat: create student stats card component * feat: create mentor card component * refactor: use routerLink with queryParams for getUrl * feat: show footer only on dashboard page
* feat: create interview card for no-interview and not-completed statuses * feat: add bottom shadow for main nav when not on dashboard * feat: add active route styling for navigation links
Remove environment.firebase.ts from git tracking to prevent leaking sensitive API keys. The file is now listed in .gitignore. Local configuration should be managed via environment.ts and environment.prod.ts files, which are not tracked by git. The README has been updated with instructions for new developers on how to obtain the necessary keys.
- Installs Playwright and its dependencies (@types/node, eslint-plugin-playwright).
Feat/score page
…registration flow
Feat/interview server
…Collective donators
feat: add presentation
Feat/intreview server
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ Project Overview
Frontend part of the "RS App Clone" application, developed with Angular, using modern practices and tools. This project aims to demonstrate a production-quality Angular application, incorporating key features such as user authentication, data management, and a responsive user interface.
🚀 Implemented Features & Scoring
This project implements a selection of features from the provided task catalog, aiming for a balanced score. Below is a self-assessment table detailing the implemented features, their points, and evidence.
Self-Assessment Table
src/app/core/services/notification.service.ts,src/app/shared/components/toast/toast.component.tscomputedvalues that are used in templates or logicsrc/app/pages/course/course-select/course-select.component.ts,src/app/pages/cross-check-review/cross-check-review.component.ts,src/app/pages/cross-check-submit/cross-check-submit.component.ts,src/app/pages/student-dashboard/student-dashboard.component.tseffectwith clean-up that trigger a real side effectsrc/app/pages/cross-check-review/cross-check-review.component.ts,src/app/shared/components/toast/toast.component.tstoSignalsrc/app/pages/course/course-select/course-select.component.ts,src/app/pages/course/course.component.ts,src/app/pages/cross-check-review/cross-check-review.component.ts,src/app/shared/components/toast/toast.component.tsinput()) in 3+ componentsviewChild,contentChild) in 1+ componentsrc/app/pages/register/register.component.ts(usingviewChildandeffectto focus input)untracked()or a custom equality in 1+ placetrackwith@forortrackBywithngFor.htmlfiles usingtrackwith@formain-task.mdloadComponentsrc/app/app.routes.tssrc/app/core/guards/auth-guard.ts,src/app/core/guards/public-guard.tswithComponentInputBinding()to map params to inputssrc/app/app.routes.ts*.spec.tsfiles foundstrict: truewithout ignored errors in prod codetsconfig.jsonhas"strict": true, and no@ts-ignoreor: anyfound insrc/**/*.tsdashboard.models.ts,notification-message.models.ts,solution.model.ts,task-details.model.ts,task.model.ts,user.model.ts) for good domain models and generics. No explicit type guards found.satisfiesand utility types (Pick, Partial, Omit) where helpfulapp/core/mocks/donators.mock.ts,app/core/services/user.ts,app/pages/profile/models/contacts.model.ts,app/shared/tests/pipes/percent-from-checks-pipe.spec.ts,dashboard.models.ts,notification-message.models.tssrc/appsrc/app/shared/componentsuse@Input()and@Output(), andapp/shared/components/cards/dashboard-card/dashboard-card.component.htmluses<ng-content>@if,@for,@switch(new control flow) in.htmltemplatessrc/app/shared/pipes/language-name-pipe.ts,src/app/shared/pipes/percent-from-checks-pipe.tsapp.config.tsforprovideHttpClient. No customHttpInterceptorfound.src/app/app.config.ts(GlobalErrorHandler),src/app/core/services/notification.service.ts(showError). No retry policy found.switchMapin various services and componentssrc/app/pages/cross-check-submit/cross-check-submit.component.ts(urlValidator),src/app/pages/cross-check-submit/cross-check-submit.component.html(error display)src/app/pages/cross-check-review/cross-check-review.component.ts(criteriaFormArray)src/app/pages/register/register.component.ts(logic inngOnInit,onSubmit,autoSaveDraft,restoreDraft)aria-describedbyfor errorsmat-label. Noaria-describedbyorcdkFocusInitialfound.src/styles.scssfor CSS custom properties. No theme switch saved to storage found.@mediaqueries in.scssfiles..htmlfiles for loading/error states,app-empty-statecomponent for empty states, 404 page.app/shared/components/cards/dashboard-card/dashboard-card.component.html,app/shared/components/cards/interview-card/interview-card-base/interview-card-base.component.htmlngTemplateOutlet,ng-container, new control flow to simplify DOMapp/shared/components/cards/next-event-card/next-event-card.component.html(ng-container),app/shared/components/footer/donators/donators.component.html(ngTemplateOutlet), and previous confirmation of new control flow.src/app/app.routes.ts(extensive use ofloadComponent)angular.jsonfor performance budgets. No mention of Lighthouse gains inREADME.md.package.json(Firebase dependencies),app.config.ts(Firebase initialization)src/app/core/services/auth.service.ts(Firebase Auth logic),src/app/app.routes.ts(route guards)src/app/core/services/notifications-data.service.ts.github/workflows/ci.yml.github/ISSUE_TEMPLATEdirectory contains issue templates.CHANGELOG.mdhas been added.CHANGELOG.mdfile has been added and updated.Total Claimed Points: 675 (Max 600)
🛠️ Technical Choices & Architecture
Signals vs RxJS Rationale:
We chose signals for component state management (watchlist, UI state) due to their simplicity and better integration with Angular's change detection. RxJS remains for HTTP streams and complex async operations where its operators provide more flexibility. This creates clear boundaries: signals for reactive UI state, RxJS for data streams.
Core Focus Areas:
⚙️ Setup & Run Instructions
Installation
Mandatory Baseline Checklist:
@if,@for,@switch).strictis on. ESLint is configured.inject()where it makes code simpler.