Skip to content

Conversation

@evakerrigan
Copy link
Collaborator

@evakerrigan evakerrigan commented Apr 19, 2025

  1. Task: https://github.com/rolling-scopes-school/tasks/blob/master/react/modules/tasks/final.md

  2. Screenshot:
    image

  3. Deployment: https://rest-client-app-five.vercel.app/

  4. YouTube: https://youtu.be/Zg-JCwmahBw

  5. Done 21.04.2025 / deadline 21.04.2025

  6. Score: 450 / 450

Main route - max 50 points

  • The Main page should contain general information about the developers, project, and course. - 10 points
  • In the upper right corner there are 2 buttons: Sign In and Sign Up. - 10 points
  • If the login token is valid and unexpired, the Sign In and Sign Up buttons are replaced with the "Main Page" button. - 10 points
  • When the token expires - the user should be redirected to the Main page automatically. - 10 points
  • Pressing the Sign In / Sign up button redirects a user to the route with the Sign In / Sign up form. - 10 points

Sign In / Sign Up - max 50 points

  • Buttons for Sign In / Sign Up / Sign Out are everywhere where they should be. - 10 points
  • Client-side validation is implemented. - 20 points
  • Upon successful login, the user is redirected to the Main page. - 10 points
  • If the user is already logged in and tries to reach these routes, they should be redirected to the Main page. - 10 points

RESTful client - max 150 points

  • Functional editor enabling query editing and prettifying, request body provided in the URL as base64-encoded on focus out. - 35 points
  • Functional read-only response section, with information about HTTP status and the code. - 30 points
  • Method selector, shows all the valid HTTP verbs, value is provided in the URL on change. - 15 points
  • Input for the URL, entered value is provided in base64-encoded way on change. - 20 points
  • Headers section, value is provided in the URL on header add/change. - 20 points
  • Code generation section. - 30 points

History route - max 50 points

  • History shows informational message with links to the clients when there are no requests in the local storage. - 20 points
  • User can navigate to the previously executed HTTP request to the RESTful client, HTTP method, URL, body, headers are restored. 30 points

Variables route - max 50 points

  • Variables show all the added variables, restores them from the local storage on load. - 15 points
  • User can add new, or delete an existing variable, variables in the local storage are updated on change. - 15 points
  • Variables are used in the request before the request execution. - 20 points

General requirements - max 50 points

  • Multiple (at lest 2) languages support / i18n. - 30 points
  • Sticky header. - 10 points
  • Errors are displayed in the user friendly format. - 10 points

Youtube video - max 50 points

Penalties

  • Vite/NextJS default favicon -50 points
  • HTTP 4xx and 5xx status codes displayed as errors not in the response section -50 points
  • The presence of errors and warnings in the console -20 points for each
  • The presence in the console of the results of the console.log execution -20 points for each
  • @ts-ignore or any usage (search through GitHub repo) -20 points for each
  • The presence of code-smells (God-object, chunks of duplicate code), commented code sections -10 points per each
  • Making commits after the deadline -100 points
  • Absence of tests -250 points
  • Test coverage below 80% -100 points
  • One of the required lazy-loaded routes isn't lazy-loaded -50 per each
  • Absence of linting -150 points
  • Absence of prettier -100 points
  • Absence of husky git hooks -100 points
  • Pull Request doesn't follow guideline (including checkboxes in Score) PR example -10 points
  • The administration reserves the right to apply penalties for the use of incorrect repository or branch names

Screenshot_2

@vercel
Copy link

vercel bot commented Apr 20, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
rest-client-app ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 21, 2025 0:44am

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds comprehensive tests and configuration updates to support the core functionality of the REST Client application and its related pages. Key changes include:

  • Addition of extensive test suites covering MainPage, HomePage, History, Headers, Code generation, and various UI components.
  • Integration of ESLint, Prettier, and Husky into the repository with updated configuration files.
  • Setup of Next.js middleware for Supabase session handling and basic project documentation updates.

Reviewed Changes

Copilot reviewed 90 out of 90 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/tests/MainPage.test.tsx Tests MainPage for user email display, logout button, and navigation.
src/tests/HomePage.test.tsx Tests redirection and display logic for authenticated/unauthenticated users.
src/tests/Home.test.tsx Additional coverage for Home component links and messages.
src/tests/HistoryContent.test.tsx Tests History request display, sorting, and body truncation logic.
src/tests/HeadersBlock.test.tsx Ensures proper header field registration and dynamic behavior.
src/tests/Header.test.tsx Verifies correct user data propagation to the Header component.
src/tests/Footer.test.tsx Validates footer links and display of developer info.
src/tests/Content.test.tsx Covers form validation and signup process scenarios.
src/tests/CodeBlock.test.tsx Tests code generation functionality and language tab switching.
src/tests/ClientHeader.test.tsx Checks navigation and user details for authenticated header display.
postcss.config.mjs Config file for Tailwind CSS PostCSS integration.
package.json Dependency and script updates for project tooling.
next.config.ts Basic Next.js configuration file.
middleware.ts Implements Supabase session update middleware.
eslint.config.mjs ESLint configuration integrated with Prettier and TypeScript support.
README.md Project documentation and usage instructions.
.prettierrc, .prettierignore Project code formatting configuration.
.husky/pre-push, .husky/pre-commit Git hooks for linting and testing prior to repository operations.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants