Skip to content

Conversation

@shamshodisaev
Copy link
Collaborator

@shamshodisaev shamshodisaev commented Nov 25, 2025

Title of Pull Request

Restructure functional routing task

🤔 This is a

  • ⚙️ Update to an existing task

Description

  • Brief Overview:
    restructure functional routing task
  • Implementation Approach:
    • Application requirements -> functional requirements
    • Add 404 feature
    • Split points across features
    • update penalties

Additional Information

https://github.com/rolling-scopes-school/tasks/blob/feature/react-functional-routing-task/react/modules/tasks/functional-routing.md

Checklist

  • ✅ I have performed a self-review of my own code.
  • 📝 I have commented my code, particularly in hard-to-understand areas.
  • 🔧 I have made corresponding changes to the documentation (if applicable).
  • 🚫 My changes generate no new warnings or errors.

Copy link
Collaborator

@kravaring kravaring left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some minor comments, in overall looks good


**As a** user
**I want** to navigate through pages of search results
**So that** I can view more items and keep my place in the app
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'and keep my place in the app' => 'keep track of the viewed items'?
Not sure, but the initial verbiage sounds confusing :(

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, updated 0fce00a


**As a** user
**I want** to view item details alongside the search results
**So that** I can see more information without losing my place in the list
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe 'losing current position'?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

@Margaryta-Maletz Margaryta-Maletz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe, we should discuss my comments tomorrow

- Create an About page with application author information
- Include a link to the RS School React course
- Add navigation to reach the About page from the main application
## Functional Requirements (max **100 points**)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Row 9:
Focus on routing and functional components. Remove any button or functionality which throws exceptions unnecessarily.

What is our decision: delete or not delete?

Comment on lines +36 to +38
- Pagination controls are visible after items are loaded.
- Changing the page updates the URL with the correct `page` parameter.
- The visible page matches the page in the URL at all times.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Pagination controls are visible after items are loaded.
- Changing the page updates the URL with the correct `page` parameter.
- The visible page matches the page in the URL at all times.
- Pagination controls are visible after items are loaded. [10 points]
- Changing the page updates the URL with the correct `page` parameter. [10 points]
- The visible page matches the page in the URL at all times. [10 points]

- **Then** the current page is displayed in the URL as a query parameter (e.g., `?page=2`)
- **And** the pagination controls reflect the current page
- **And** pagination appears only after the list of items is loaded

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add something else about behavior when changing the input in the search bar. The page should be changed to 1. What do you think about that?


- **Given** I am viewing the item list
- **When** I navigate to a different page using pagination controls
- **Then** the current page is displayed in the URL as a query parameter (e.g., `?page=2`)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Then** the current page is displayed in the URL as a query parameter (e.g., `?page=2`)
- **Then** the current page is displayed in the URL as a query parameter (e.g., `?page=2` or `/:page` )

Comment on lines +60 to +65
- Clicking an item opens a details panel on the right, using `<Outlet>`.
- The left side always shows the list of results.
- A loading indicator is visible while details are loading.
- The details panel can be closed via a close button or by clicking the main panel.
- The URL always reflects the current page and selected item.
- On initial load, no item is selected and the details panel is closed.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Clicking an item opens a details panel on the right, using `<Outlet>`.
- The left side always shows the list of results.
- A loading indicator is visible while details are loading.
- The details panel can be closed via a close button or by clicking the main panel.
- The URL always reflects the current page and selected item.
- On initial load, no item is selected and the details panel is closed.
- Clicking an item opens a details panel on the right, using `<Outlet>`. [8 points]
- The left side always shows the list of results. [8 points]
- A loading indicator is visible while details are loading. [8 points]
- The details panel can be closed via a close button or by clicking the main panel. [8 points]
- The URL always reflects the current page and selected item. [8 points]
- On initial load, no item is selected and the details panel is closed. [5 points]

Comment on lines +82 to +83
- The About page displays author information and a link to the RS School React course.
- The About page is accessible via a navigation link from the main application.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- The About page displays author information and a link to the RS School React course.
- The About page is accessible via a navigation link from the main application.
- The About page displays author information and a link to the RS School React course. [5 points]
- The About page is accessible via a navigation link from the main application. [5 points]

- The About page displays author information and a link to the RS School React course.
- The About page is accessible via a navigation link from the main application.

### Feature 4: 404 Page (**10 points**)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Feature 4: 404 Page (**10 points**)
### Feature 4: 404 Page (**15 points**)

Comment on lines +100 to +102
- A 404 page is displayed for all unknown or non-existing routes.
- The 404 page contains a clear message that the page was not found.
- The 404 page provides a navigation option (e.g., button or link) to return to the main app.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- A 404 page is displayed for all unknown or non-existing routes.
- The 404 page contains a clear message that the page was not found.
- The 404 page provides a navigation option (e.g., button or link) to return to the main app.
- A 404 page is displayed for all unknown or non-existing routes. [5 points]
- The 404 page contains a clear message that the page was not found. [5 points]
- The 404 page provides a navigation option (e.g., button or link) to return to the main app. [5 points]

- Pick one router and follow its official documentation for setup and navigation.

### Penalties

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to discuss this penalties

** Technical Requirements **
Component Conversion ... - 50 points
custom hook for localStorage operations ... -20 points

- Details panel should be closed either on the "close" button click or on the main panel click - **10**
- About page is implemented with author information and a link to the RS School React course - **5**
- 404 is implemented - **5**
- New tests are added for the new functionality - **15**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delete cross-check score from 182 to 192 rows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants