π Demo: https://steamfolio.vercel.app/
This project was made using the follow technologies:
- Bun
- ReactJS
- Typescript
- Styled Components
- Vite
- Steam API
- GitHub API
If you want something, wait for yarn build
to be obeyed, and after that open a little change decision!
This documentation provides an overview of the application and its functionalities to help developers understand its structure and make modifications as needed.
This React-based application fetches and displays data from the GitHub API and an XML-based blog feed. It provides an interactive interface showcasing user information, repositories, achievements, and blog articles. It also offers customizable visual elements such as avatars and badges.
-
GitHub Integration:
- Fetches user details, repositories, stars, and commit counts using the GitHub API.
- Displays the most-used programming language based on repositories.
-
Blog Integration:
- Parses an XML feed to display the latest blog articles.
- Supports sorting and filtering of articles.
-
Dynamic User Profile:
- Customizable avatar, nickname, and achievements.
- Real-time badges and stats fetched from APIs.
-
Interactive UI:
- Buttons and links to navigate to user social profiles and repositories.
- Dynamically styled components for a modern look.
-
App
:- The main component that fetches and displays data.
- Uses React hooks like
useState
anduseEffect
to manage state and side effects.
-
SteamDetails
:- A wrapper component for the UI layout and design.
-
getLevelByGPQ
:- A utility function to calculate user levels based on their GitHub stats.
-
fetchData
:- Fetches GitHub user information and repositories.
- Calculates total stars, commits, and programming language usage.
-
fetchArticles
:- Fetches and parses an XML feed to extract blog articles.
- Sorts and displays the four latest articles.
-
Endpoints Used:
https://api.github.com/users/{username}
- Fetches user details.https://api.github.com/users/{username}/repos
- Fetches repositories.https://api.github.com/search/commits
- Fetches total commits.
-
Headers:
{ "Authorization": "Bearer <github_api_key>", "Accept": "application/vnd.github.cloak-preview" }
-
Endpoint:
https://raw.githubusercontent.com/Yagasaki7K/website-yagasaki/refs/heads/main/article.xml
-
Parsing:
- Uses the
DOMParser
to parse the XML. - Extracts
title
,link
,pubDate
, anddescription
fields.
- Uses the
This can be removed or changed to whatever XML is needed, following the practices of each blog/site.
VITE_GITHUB_API_KEY
- The GitHub API token for authentication.
- Node.js and npm/yarn or Bun installed.
- A valid GitHub API token.
- Clone the repository:
git clone git@github.com:Yagasaki7K/website-steamfolio.git
- Install dependencies:
npm install or yarn or bun install
- Create a
.env
file and add the GitHub API token:VITE_GITHUB_API_KEY=<your_github_api_key>
- Start the application:
npm run dev or yarn dev or bun run dev
- Access the application at
http://localhost:3000
.
src/
βββ components/
β βββ SteamDetails.tsx # Layout wrapper component
βββ utils/
β βββ getLevelByGPQ.ts # Utility function for level calculation
βββ App.tsx # Main application logic
βββ styles/ # CSS/SCSS files for styling
- infoGithub: Contains detailed information about the user fetched from the GitHub API, including name, bio, location, and more.
- userGitHub: The GitHub username used to fetch information and data for the specified user.
- subnick: A subtitle or additional alias for the user, providing extra personalization.
- avatarBorder: URL pointing to the user's avatar with a specific border style, used for visual customization.
- flag: The country code representing the user's national flag.
- birthday: The user's birth year, used to calculate age or other age-based information.
- sinceExperience: The year the user started gaining experience as a developer, often displayed to indicate professional longevity.
- infoSubTitle: A descriptive subtitle that complements the user's information or bio.
- badgeTitle: The title or designation associated with the user's badge, representing achievements or roles.
- badgeEXP: The experience points or value linked to the user's badge, typically indicating progress or milestones.
- badgeIcon: URL linking to the visual representation of the badge icon.
- twitterLink: The URL directing to the user's Twitter profile for social connectivity.
- awardIconLink: URL for the icon representing the user's awards or achievements.
- perfilIconLink: URL linking to the user's profile icon or page for detailed personal information.
- urlAvatar: URL pointing to the user's avatar image, often a GitHub profile picture.
- nickname: The user's nickname or display name, usually fetched from GitHub data.
- location: The geographical location of the user, as retrieved from their GitHub profile.
- infoTitle: A concise title summarizing the user's information or professional tagline.
- githubLink: URL linking to the user's GitHub profile, providing access to repositories and activities.
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your update message here"
- Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
Released in 2024
Made by Anderson Marlon This project is under the MIT license.