Track and calculate your SkillRack points effortlessly with this powerful Progressive Web App (PWA), built using React, Express, Node.js, Axios, and Cheerio. Whether you’re using it on the web as a PWA or as a native Android app packaged with a Trusted Web Activity (TWA), this project scrapes user data from SkillRack, calculates points, and displays them with a progress bar, providing a seamless experience across platforms.
- Scrapes user data from SkillRack.
- Calculates points based on the user's activities.
- Displays points with a circular progress bar.
- Schedule Planning
- Public API ⚡️
Note
The app is not yet published on Google Play as the Google Developer account requires a $25 (~₹2100 INR) fee. Clicking the button will take you to a donation link. If you can contribute, your support is appreciated!
- React: Frontend user interface.
- Express: Backend API.
- Node.js: Server-side runtime environment.
- Axios: HTTP client for making requests.
- Cheerio: HTML scraping and parsing.
- react-circular-progressbar: Progress bar component for React.
- js-cookie: Handling cookies in the browser.
- dotenv: Managing environment variables.
The SkillRack Tracker API allows you to track and calculate points based on activities from SkillRack. Below is the documentation for the available endpoints.
https://skillrack.gururaja.in/api/points
Description: Track SkillRack points by processing a provided URL and scraping the relevant data.
-
Endpoint:
POST /
-
Request Body:
url
(string, required): The URL to scrape data from. If the URL is not a direct link to a resume, the API will handle redirections to fetch the correct URL.
Example:
{ "url": "http://www.skillrack.com/profile/<resumeId>/<resumeKey>" }
-
Response:
{ "id": "<resumeId>", "name": "GURU RAJA R", "dept": "IT", "year": "2026", "college": "Thiagarajar College of Engineering (TCE), Madurai", "codeTutor": 300, "codeTrack": 730, "codeTest": 0, "dt": 119, "dc": 95, "points": 4030, "requiredPoints": 5000, "percentage": 80.60000000000001, "lastFetched": "2:36:00 pm", "url": "https://www.skillrack.com/faces/resume.xhtml?id=<resumeId>&key=<resumeKey>" }
Description: Refresh the data for a given URL by re-scraping and re-calculating the points.
-
Endpoint:
GET /refresh
-
Query Parameters:
url
(string, required): The URL to refresh data from.
Example:
https://skillrack.gururaja.in/api/points/refresh?url=https://www.skillrack.com/faces/resume.xhtml?id=<resumeId>%26key=<resumeKey>
-
Response:
{ "id": "<resumeId>", "name": "GURU RAJA R", "dept": "IT", "year": "2026", "college": "Thiagarajar College of Engineering (TCE), Madurai", "codeTutor": 300, "codeTrack": 730, "codeTest": 0, "dt": 119, "dc": 95, "points": 4030, "requiredPoints": 5000, "percentage": 80.60000000000001, "lastFetched": "2:36:00 pm", "url": "https://www.skillrack.com/faces/resume.xhtml?id=<resumeId>&key=<resumeKey>" }
-
Tracking Points for a New User
Send a POST request to the
/
endpoint with the user's SkillRack profile URL. The API will return the user's points and other details.curl -X POST https://skillrack.gururaja.in/api/points/ \ -H "Content-Type: application/json" \ -d '{"url": "http://www.skillrack.com/profile/<resumeId>/<resumeKey>"}'
-
Refreshing Points Data
To refresh the points for a user, send a GET request to the
/refresh
endpoint with the user's SkillRack profile URL as a query parameter.curl -X GET "https://skillrack.gururaja.in/api/points/refresh?url=https://www.skillrack.com/faces/resume.xhtml?id=<resumeId>%26key=<resumeKey>"
- Node.js
- npm
-
Clone the repository:
git clone https://github.com/Guru-25/SkillRack-Tracker.git cd SkillRack-Tracker
-
Install dependencies for the client and server:
npm run build
-
Set up your environment variables in a
.env
file in the server directory (optional):IS_RECORD_ENABLED=true_or_false (default: false) ## The following are only required when IS_RECORD_ENABLED is true # RECORD MONGODB_URI=your_mongodb_uri BOT_TOKEN=your_bot_token CHAT_ID=your_chat_id TOPIC1_ID=your_topic1_id TOPIC2_ID=your_topic2_id TOPIC3_ID=your_topic3_id TOPIC4_ID=your_topic4_id ID=your_id
-
Start the client:
cd client npm start
-
Start the server:
cd server node index.js
-
The application should now be running on
http://localhost:3000
.
Contributions are welcome! Please fork the repository and submit a pull request for review - see the CONTRIBUTING.md file for details.
Development is financed by individual user contributions, i.e. you becoming a sponsor or donating ❤️.
-
Become a sponsor on GitHub
or
Note
UPI is only available for Indian users.
SkillRack Tracker's code is available under a AGPL v3 license - see the LICENSE file for details.