Google Cloud Career Practitioner Program will provide you an opportunity to kickstart your career in cloud and get hands-on practice on Google Cloud - the tool that powers apps like Google Search, Gmail and YouTube.
To make things more fun and informative, this project will help Facilitators and Participants with leaderboard and progress report mails.
Leaderboard will update by github workflow
, therefore no manual work needed, just set it up once all the participants can enjoy the leaderboard
Let's see how to set this project up :
- Give this repo a 🌟 😛
- Fork this repo
- Clone it to your favorite code editor and run
npm install
To all the facilitator google provides a sheet with participants data, since it contains private data such as email. We have not included it to the repo.
- Convert the
excel sheet
tojson
, you can use online tools - Run
npm setup
once done you will find refineData\rawParticipantsData.json
, paste the json data there
It should look something like this
[
...
{
"Student Name": "name",
"Institution": "Institute",
"Enrolment Date & Time": "Date",
"Enrolment Status": "All Good || not",
"Student Email":"participant email",
"Qwiklabs Profile URL": "profileLink",
"# of Skill Badges Completed in Track 1": 0,
"# of Skill Badges Completed in Track 2": 0
}
...
]
- Once you have pasted the raw data run
npm run 1.RefineData
This will collect only necessary for our leaderBoard and discard email
and such.
It will create participants.json
in the root folder.
- If you want to avoid making even names public on the leaderBoard you can use
npm run 2.GenerateNicknames
This will generate Pseudo names for all participants, you can share them privately via emails and keep the data confidential.
🛑 Above (1-3)steps are meant to be run only once: running them more than that can result in confusion with nicknames and such
Now that we have successfully filtered our data, run :
npm run 3.GetData
npm run 4.MakeLeaderBoard
with this you have your leaderBoard ready
try opening the index.html
file in root folder
Manually updating the LeaderBoard is a hassle and a waste of time.
Let's make use of Github workflow
for this.
- Make folder
.github/workflows
if you don't have already - Make a file named
update-leaderBoard.yaml
- Paste the following code
name: Update leaderBoard data
on:
schedule:
- cron: '0 */6 * * *'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup node 18
uses: actions/setup-node@v2
with:
node-version: 18.x
- run: |
npm install
npm run 3.GetData
npm run 4.MakeLeaderBoard
- name: Commit and push changes
run: |
git config --global user.name "jhamadhav"
git config --global user.email "[email protected]"
git add -A
git commit -m "Leaderboard Updated"
git push
This will update the leaderBoard automatically 4 times a day.
🥳🎊 Our leaderBoard is ready!! 🎊🥳
Hope you liked this project, don't forget to give it a star ⭐.