Effortlessly search and retrieve information about GitHub users, including their repositories, contributions, and profile details. Streamline your research or data gathering process with this powerful tool, designed to save time and provide valuable insights into user activity on the GitHub platform.
GitScrape is a full-stack application that uses Node.js and Express.js on the backend, along with a fully functional frontend client built with React. The app utilizes the GitHub REST API to fetch GitHub user details and stores them in a local relational database (MySQL). It minimizes the number of API calls to GitHub while creating useful endpoints for efficient data retrieval and management.
- Fetch User from DB or Fetch & Save User to DB: Retrieve a user's information from the database, or fetch it from GitHub and save it locally if not found.
- Sorted Users from DB: Retrieve users from the database sorted based on various parameters (e.g., name, contributions).
- Search Users from DB: Search for users based on various parameters (e.g., username, location, number of repositories).
- Fetch User's Followers Details: Retrieve details about a user's followers.
- Find User's Friends: Identify users who follow and are followed back by the given user.
- Update User Details in DB: Update a user's details in the local database.
- Soft Delete User from DB: Mark a user as deleted without permanently removing their data.
- Hard/Force Delete User from DB: Permanently remove a user and their data from the database.
- Backend: Node.js, Express.js
- Frontend: React.js
- Database: MySQL(RDBMS)
- ORM: Sequelize
- API: GitHub REST API
-
Clone the repository:
https://github.com/bnmunesh/gitscrape.git
-
Install backend dependencies:
cd backend npm install
-
Install frontend dependencies:
cd frontend npm install
-
Set up MySQL and configure the .env file with your database credentials and GitHub API token(you can skip this if needed, but remove the token header in external axios calls made in the service layer).
-
Run the application:
- Backend:
npm run dev
- Frontend:
npm run dev
Feel free to fork the repository and submit pull requests with improvements or bug fixes.