Skip to content

Comments

Final resources#20

Open
singhcoder694 wants to merge 2 commits intoWebSorcery:masterfrom
singhcoder694:final_resources
Open

Final resources#20
singhcoder694 wants to merge 2 commits intoWebSorcery:masterfrom
singhcoder694:final_resources

Conversation

@singhcoder694
Copy link

@singhcoder694 singhcoder694 commented Dec 29, 2023

Final changes are done as you said.

Summary by CodeRabbit

  • New Features

    • Introduced a new Profile page with routes, accessible via a new link in the header.
    • Added a Codeforces profile component to display user data fetched from the Codeforces API.
    • Added a GitHub profile component to display user contributions from GitHub.
  • Enhancements

    • Improved visual presentation of the Profile page with responsive design for mobile devices.
    • Streamlined resource component imports and error handling across various modules (AI, Algorithms, Cloud DevOps, Competitive Programming, Database, Language, Mobile, Security, Version Control, Web).
  • Style

    • Implemented new styles for the Codeforces and GitHub components to enhance user interface design.
    • Added comprehensive styling for the main profile page layout and elements.
  • Refactor

    • Updated resource components to utilize a centralized error messaging function for consistency in error handling.
    • Refactored the logic in getResources.js for improved readability and control flow.

@vercel
Copy link

vercel bot commented Dec 29, 2023

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

Name Status Preview Comments Updated (UTC)
cucoders ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 29, 2023 3:21am

@coderabbitai
Copy link

coderabbitai bot commented Dec 29, 2023

Walkthrough

Walkthrough

The recent updates involve integrating new components for user profiles, with a focus on displaying Codeforces and GitHub data. The profile page now has a dedicated route and is styled for consistency. Resources components have seen a shift in module dependencies and a refined error handling approach, favoring a custom error message function over generic console logs. The changes enhance the user interface and streamline the codebase's maintainability.

Changes

File Path Change Summary
src/App.js Added import for Main component; new route for "/profile".
src/components/headers/light.js Added "Profile" page link.
src/components/profile/... Added new components and styles for user profiles, including Codeforces and GitHub data display.
src/components/resources/.../index.js Updated import paths, added error imports, and improved error handling across various resource components.
src/components/resources/getResources.js Streamlined find and driveLink functions for better readability and control flow.

"In the burrow of the code, a new path takes shape,
Where data from profiles, a grand escape.
🐇💻 With each hop and a line, the details entwine,
A rabbit's touch, making the codebase shine."

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat with CodeRabbit Bot (@coderabbitai)

  • You can directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • You can tag CodeRabbit on specific lines of code or entire files in the PR by tagging @coderabbitai in a comment. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • You can tag @coderabbitai in a PR comment and ask questions about the PR and the codebase. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid.
    • @coderabbitai read the files in the src/scheduler package and generate README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

@ghost
Copy link

ghost commented Dec 29, 2023

👇 Click on the image for a new way to code review

Review these changes using an interactive CodeSee Map

Legend

CodeSee Map legend

@gitstream-cm
Copy link

gitstream-cm bot commented Dec 29, 2023

This PR is missing a Jira ticket reference in the title or description.
Please add a Jira ticket reference to the title or description of this PR.

method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'

Check failure

Code scanning / CodeQL

Hard-coded credentials

The hard-coded value "Bearer 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" is used as [authorization header](1).
return arr;
return posts
.map((post, index) => ({ url: post.url, index }))
.filter(({ url }) => !url.startsWith("https://res.cloud"))

Check failure

Code scanning / CodeQL

Incomplete URL substring sanitization

'[https://res.cloud](1)' may be followed by an arbitrary host name.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Review Status

Actionable comments generated: 6

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 51db774 and 13710e2.
Files selected for processing (18)
  • src/App.js (2 hunks)
  • src/components/headers/light.js (1 hunks)
  • src/components/profile/Codeforces.css (1 hunks)
  • src/components/profile/Codeforces.js (1 hunks)
  • src/components/profile/Github.js (1 hunks)
  • src/components/profile/Main.css (1 hunks)
  • src/components/profile/Main.js (1 hunks)
  • src/components/resources/ai/index.js (2 hunks)
  • src/components/resources/algorithms/index.js (2 hunks)
  • src/components/resources/cloud-devops/index.js (2 hunks)
  • src/components/resources/cp/index.js (2 hunks)
  • src/components/resources/database/index.js (2 hunks)
  • src/components/resources/getResources.js (1 hunks)
  • src/components/resources/language/index.js (2 hunks)
  • src/components/resources/mobile/index.js (2 hunks)
  • src/components/resources/security/index.js (2 hunks)
  • src/components/resources/version_control/index.js (2 hunks)
  • src/components/resources/web/index.js (2 hunks)
Files skipped from review due to trivial changes (1)
  • src/components/headers/light.js
Additional comments: 28
src/components/profile/Main.css (1)
  • 9-20: The use of box-shadow and border-radius provides a consistent styling theme. However, the background-image gradient might not be visually accessible to all users. Consider checking the contrast ratio for readability.
src/components/resources/getResources.js (1)
  • 1-9: The refactoring of the find and driveLink functions to use array methods is a good improvement for readability and performance. Ensure that the rest of the codebase that depends on these functions has been updated accordingly.
src/components/profile/Codeforces.css (1)
  • 1-102: The CSS rules are well-structured and make good use of media queries for responsiveness. However, ensure that the color contrast is sufficient for accessibility, especially for the .codeforces_col_data .col_data_head class.
src/components/resources/cloud-devops/index.js (2)
  • 11-12: The import of error and getArray has been added, which is good for standardizing error handling and resource fetching. Ensure that the error function is properly implemented and tested.

  • 81-81: The use of a custom error function is an improvement over console.log. However, ensure that the error handling is consistent across the application.

src/components/resources/mobile/index.js (2)
  • 11-12: The changes to the imports for error and getArray are consistent with the other resource components, which is good for maintainability. Verify that the new import paths are correct and that the error function is implemented consistently.

  • 81-81: Replacing console.log with the error function is a good practice for error handling. Ensure that the error message is descriptive enough for debugging purposes.

src/components/resources/ai/index.js (2)
  • 11-12: The import changes for error and getArray are consistent with the other resource components, which is good for maintainability. Verify that the new import paths are correct and that the error function is implemented consistently.

  • 79-79: The use of a custom error function is an improvement over console.log. However, ensure that the error handling is consistent across the application.

src/components/resources/security/index.js (3)
  • 11-11: The import path for error has been updated. Verify that the new path is correct and that the error function is being imported as expected.

  • 12-12: The import path for getArray has been updated. Ensure that the new path corresponds to the actual location of the getArray function within the project structure.

  • 82-82: The error handling now uses a specific error message. Confirm that the error function is designed to handle this type of message and that it is consistent with the error handling strategy used throughout the application.

src/components/profile/Codeforces.js (3)
  • 4-11: The secondsToDate function converts seconds to a human-readable date. Ensure that this function correctly handles the conversion and consider edge cases such as leap seconds or timezone differences.

  • 20-37: The useEffect hook fetches user data from the Codeforces API. Verify that error handling is in place for the fetch call and that the state is updated correctly with the fetched data.

  • 39-87: The component structure and JSX look correct. Ensure that the CSS classes used are defined and that the toggle functionality works as expected.

src/components/resources/version_control/index.js (3)
  • 11-11: The import path for error has been updated. Verify that the new path is correct and that the error function is being imported as expected.

  • 12-12: The import path for getArray has been updated. Ensure that the new path corresponds to the actual location of the getArray function within the project structure.

  • 112-112: The error handling now uses a specific error message. Confirm that the error function is designed to handle this type of message and that it is consistent with the error handling strategy used throughout the application.

src/components/resources/database/index.js (3)
  • 11-11: The import path for error has been updated. Verify that the new path is correct and that the error function is being imported as expected.

  • 12-12: The import path for getArray has been updated. Ensure that the new path corresponds to the actual location of the getArray function within the project structure.

  • 116-116: The error handling now uses a specific error message. Confirm that the error function is designed to handle this type of message and that it is consistent with the error handling strategy used throughout the application.

src/components/resources/language/index.js (3)
  • 11-11: The import path for error has been updated. Verify that the new path is correct and that the error function is being imported as expected.

  • 12-12: The import path for getArray has been updated. Ensure that the new path corresponds to the actual location of the getArray function within the project structure.

  • 152-152: The error handling now uses a specific error message. Confirm that the error function is designed to handle this type of message and that it is consistent with the error handling strategy used throughout the application.

src/components/resources/cp/index.js (2)
  • 11-12: The import paths for error and getArray have been updated to reflect their new locations. Ensure that the new paths are correct and that the modules export the expected functions.

  • 162-162: Replacing console.log with error function call is a good practice for error handling, as it likely centralizes error reporting and potentially allows for better user feedback. Confirm that the error function is implemented correctly and is used consistently across the project.

Verification successful

The search results indicate that the error function is indeed used throughout various components in the project for error handling. The usage appears in different contexts, such as form submissions, resource fetching, and project applications. This suggests a pattern of using a centralized error handling approach, which aligns with the change made in the src/components/resources/cp/index.js file.

  • The error function is used in multiple resource-related components (cp, web, security, mobile, language, cloud-devops, database, algorithms, ai, version_control), which is consistent with the refactoring effort mentioned in the AI-generated summary.
  • It is also used in user-related actions (Signup.js, Login.js, applicationForm.js) and other components (applyproject.js, contact.js), indicating a broader adoption of this function for error reporting across the project.

Based on the output, it can be concluded that the replacement of console.log with the error function call in the src/components/resources/cp/index.js file is consistent with the project's error handling strategy.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Verify that the error function is used consistently for error handling across the project
rg --type javascript "error\("

Length of output: 67



Script:

#!/bin/bash
# Verify that the error function is used consistently for error handling across the project
rg "error\("

Length of output: 2270

src/App.js (2)
  • 76-76: The import statement for the Main component has been added correctly.

  • 238-240: The new route for "/profile" has been added correctly and is consistent with the existing routing structure.

Comment on lines +1 to +20
.main_profile_heading{
margin:20px;
color:rgb(58, 0, 247);
}
.main_profile_heading .heading{
font-size: 3rem;
text-align: center;
}
.main_profile{
display: grid;
grid-template-columns: 1fr 2fr;
place-items: center center;
gap: 20px;
border:1px solid black;
padding: 10px;
border-radius:20px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
margin:30px auto;
background-image: linear-gradient(45deg,rgb(146, 116, 243),rgb(243, 243, 243));
}
Copy link

Choose a reason for hiding this comment

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

The CSS rules for .main_profile set a fixed grid layout with grid-template-columns: 1fr 2fr, which may not be responsive on smaller screens. Consider using media queries to adjust the layout for different screen sizes.

@media (max-width: 768px) {
  .main_profile {
    grid-template-columns: 1fr; /* Stack columns on smaller screens */
  }
}

Comment on lines +21 to +32
.user_img{
display: flex;
flex-direction: column;
align-items: center;
justify-self: center;
margin:auto auto;
}
.user_img img{
width: 100%;
height: 100%;
border-radius: 20px 20px 0px 0px;
}
Copy link

Choose a reason for hiding this comment

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

The CSS for .user_img img sets both width and height to 100%, which could distort the image if its aspect ratio is not 1:1. Ensure that images maintain their aspect ratio.

.user_img img {
    width: auto; /* Adjust width or height to auto to maintain aspect ratio */
    height: 100%;
    max-width: 100%; /* Ensure the image is not bigger than its container */
}

Comment on lines +1 to +27
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch("http://localhost:3001/profile/git",
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[])
Copy link

Choose a reason for hiding this comment

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

The Authorization header in the fetch request contains a hard-coded personal access token, which is a security risk. Tokens should not be committed to version control and should be stored in environment variables.

- Authorization: 'Bearer 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'
+ Authorization: `Bearer ${process.env.GITHUB_TOKEN}`

Committable suggestion

IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch("http://localhost:3001/profile/git",
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[])
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch("http://localhost:3001/profile/git",
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.GITHUB_TOKEN}`
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[])

The fetch URL is hard-coded to localhost, which will not work in a production environment. Use environment variables to store the API base URL.

- fetch("http://localhost:3001/profile/git",
+ fetch(`${process.env.REACT_APP_API_URL}/profile/git`,

Committable suggestion

IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch("http://localhost:3001/profile/git",
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[])
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch(`${process.env.REACT_APP_API_URL}/profile/git`,
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[])

The useEffect hook does not have a dependency array, which means it will run after every render. If this is not the intended behavior, add an empty dependency array to run it only once after the component mounts.

- },[])
+ },[]) // Ensure this is the intended behavior

Committable suggestion

IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch("http://localhost:3001/profile/git",
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[])
import React, { useState,useEffect } from 'react'
import "./Github.css"
export default function Codeforces() {
const [show,setShow]= useState(false);
const [data, setData]=useState("");
const userHandle="singhcoder694";
const year=2023
const toggle= ()=>{
setShow(!show);
}
useEffect(()=>{
fetch("http://localhost:3001/profile/git",
{
method:"POST",
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer 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'
},
body:JSON.stringify({"userName":userHandle, "year":year})
})
.then((res)=>{
return res.json();
})
.then((res)=>{
setData(res);
})
},[]) // Ensure this is the intended behavior

Comment on lines +1 to +45
import React from "react";
import AnimationRevealPage from "helpers/AnimationRevealPage.js";
import Header from "components/headers/light.js";
import Footer from "components/footers/footers.js";
import "./Main.css"
import Github from "./Github";
import Codeforces from "./Codeforces";

export default ({isLoggedIn}) => {
return (
<AnimationRevealPage>
<Header isLoggedIn={isLoggedIn} />
<div className="main_profile_heading">
<p className="heading">PROFILES</p>
</div>
<div className="main_profile">
<div className="user_img">
<img src="https://images.indulgexpress.com/uploads/user/imagelibrary/2018/11/29/original/Akshay-Kumar.jpg" alt="User Image"></img>
<p className="userName">singhcoder694</p>
</div>
<div className="user_details">
<div className="user_">
<p className="user_head">Name</p>
<p className="user_data">Vivek Singh</p>
</div>
<div className="user_">
<p className="user_head">Email</p>
<p className="user_data">vivekkr694@gmail.com</p>
</div>
<div className="user_">
<p className="user_head">Subscription</p>
<p className="user_data">Pro</p>
</div>
<div className="user_">
<p className="user_head">Contact</p>
<p className="user_data">+91 4982348998</p>
</div>
</div>
</div>
<Github />
<Codeforces />
<Footer />
</AnimationRevealPage>
);
};
Copy link

Choose a reason for hiding this comment

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

The hardcoded user image URL and user details should be replaced with dynamic data, possibly fetched from an API or user input, to make the component reusable and personalized.

- <img src="https://images.indulgexpress.com/uploads/user/imagelibrary/2018/11/29/original/Akshay-Kumar.jpg" alt="User Image"></img>
+ <img src={userImageUrl} alt="User Image"></img>
- <p className="userName">singhcoder694</p>
+ <p className="userName">{userName}</p>
// ... and so on for other user details

Committable suggestion

IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
import React from "react";
import AnimationRevealPage from "helpers/AnimationRevealPage.js";
import Header from "components/headers/light.js";
import Footer from "components/footers/footers.js";
import "./Main.css"
import Github from "./Github";
import Codeforces from "./Codeforces";
export default ({isLoggedIn}) => {
return (
<AnimationRevealPage>
<Header isLoggedIn={isLoggedIn} />
<div className="main_profile_heading">
<p className="heading">PROFILES</p>
</div>
<div className="main_profile">
<div className="user_img">
<img src="https://images.indulgexpress.com/uploads/user/imagelibrary/2018/11/29/original/Akshay-Kumar.jpg" alt="User Image"></img>
<p className="userName">singhcoder694</p>
</div>
<div className="user_details">
<div className="user_">
<p className="user_head">Name</p>
<p className="user_data">Vivek Singh</p>
</div>
<div className="user_">
<p className="user_head">Email</p>
<p className="user_data">vivekkr694@gmail.com</p>
</div>
<div className="user_">
<p className="user_head">Subscription</p>
<p className="user_data">Pro</p>
</div>
<div className="user_">
<p className="user_head">Contact</p>
<p className="user_data">+91 4982348998</p>
</div>
</div>
</div>
<Github />
<Codeforces />
<Footer />
</AnimationRevealPage>
);
};
import React from "react";
import AnimationRevealPage from "helpers/AnimationRevealPage.js";
import Header from "components/headers/light.js";
import Footer from "components/footers/footers.js";
import "./Main.css"
import Github from "./Github";
import Codeforces from "./Codeforces";
export default ({isLoggedIn, userImageUrl, userName, userEmail, userSubscription, userContact}) => {
return (
<AnimationRevealPage>
<Header isLoggedIn={isLoggedIn} />
<div className="main_profile_heading">
<p className="heading">PROFILES</p>
</div>
<div className="main_profile">
<div className="user_img">
<img src={userImageUrl} alt="User Image"></img>
<p className="userName">{userName}</p>
</div>
<div className="user_details">
<div className="user_">
<p className="user_head">Name</p>
<p className="user_data">{userName}</p>
</div>
<div className="user_">
<p className="user_head">Email</p>
<p className="user_data">{userEmail}</p>
</div>
<div className="user_">
<p className="user_head">Subscription</p>
<p className="user_data">{userSubscription}</p>
</div>
<div className="user_">
<p className="user_head">Contact</p>
<p className="user_data">{userContact}</p>
</div>
</div>
</div>
<Github />
<Codeforces />
<Footer />
</AnimationRevealPage>
);
};

@gitstream-cm
Copy link

gitstream-cm bot commented Dec 29, 2023

🥷 Code experts: no user matched threshold 10

See details

src/components/resources/ai/index.js

Knowledge based on git-blame:

src/components/resources/algorithms/index.js

Knowledge based on git-blame:

src/components/resources/cloud-devops/index.js

Knowledge based on git-blame:

src/components/resources/cp/index.js

Knowledge based on git-blame:

src/components/resources/database/index.js

Knowledge based on git-blame:

src/components/resources/getResources.js

Knowledge based on git-blame:

src/components/resources/language/index.js

Knowledge based on git-blame:

src/components/resources/mobile/index.js

Knowledge based on git-blame:

src/components/resources/security/index.js

Knowledge based on git-blame:

src/components/resources/version_control/index.js

Knowledge based on git-blame:

src/components/resources/web/index.js

Knowledge based on git-blame:

To learn more about /:\ gitStream - Visit our Docs

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.

1 participant