Project Overview
DevSync is a sleek web application designed to fetch and display GitHub user profile details in real-time using the GitHub API. Users can input a GitHub username to view key information like the user's avatar, bio, repository list, follower count, and following count, all presented in a clean, responsive interface.
Built with React, the app leverages Axios for API calls and styled components for a polished UI, ensuring seamless interaction across devices. It’s ideal for developers or enthusiasts wanting to quickly explore GitHub profiles without navigating the GitHub site directly, combining simplicity with real-time data retrieval.
Technical Highlights
Performance Optimization
- Asynchronous API fetching
- Minimal state updates
- Lightweight React components
Security Features
- Safe API requests
- Error handling robustness
- Input sanitization practices
Project Gallery




Frequently Asked Questions
I built DevSync using React to create a dynamic, component-based UI, with a main App component
managing state for the username, user data, and repositories using the useState hook. For GitHub API
integration, I used Axios to make asynchronous GET requests to fetch user profile data
( https://api.github.com/users/{username}
) and repository details ( https://api.github.com/users/{username}/repos
).
The UI includes a styled input field ( InputStyles
) for entering usernames and a
button ( ButtonStyles
) to trigger the API calls, with GlobalStyle
and
AppStyles
ensuring a consistent, responsive design via CSS-in-JS. The UserInfo
and Repos
components conditionally render the fetched data, displaying profile details
and repository links only when available, while error handling catches API failures, ensuring a smooth
user experience across mobile and desktop.
The main challenge in DevSync was styling UI components with CSS-in-JS, as misaligned elements,
inconsistent colors, and unresponsive layouts made the app look unprofessional, like header text
blending into backgrounds or inputs not resizing on mobile. I fixed this by using Chrome Dev Tools to test
and adjust styles like background-color
and color
in real-time, referencing
MDN Web Docs, W3 Schools and Stack Overflow for responsive design best practices.
Additionally, when switching from one GitHub username to another, the repoData
state wasn't
updating correctly and kept displaying the previous user's repositories due to stale state in the
fetchData
function. I fixed this by ensuring the setRepoData
hook cleared old data
on each search, using async-await
properly in Axios calls and adding dependency checks in useEffect
(though simplified in the sample code), which made the app refresh accurately and handle sequential searches without caching issues.
To make DevSync scalable, I used React’s component-based structure, splitting the UI into
reusable UserInfo
and Repos
components to efficiently handle large datasets,
like users with many repositories, without slowing down. Axios’s async API calls reduce delays,
fetching data only when needed, and minimal state updates prevent performance issues.
For user-friendliness in real-world use, I designed a simple interface with a clear input field and search button, ensuring easy navigation for non-technical users. Responsive styling with CSS-in-JS adapts the layout for mobile and desktop, while error handling catches invalid usernames or API failures, keeping the app reliable and intuitive for everyday use.