5
2

More than 3 years have passed since last update.

READMEに競プロのバッジを追加するアプリを作ろうとしたら既にあったので OSS開発したお話

Posted at

はじめに

こんにちは。ganariyaです。

7月頃からGitHubのアップデートで、自分のアカウントページにプロフィールに関するREADMEを書けるようになりました。
「自分の履歴書」として、一箇所に情報をまとめられるため便利です。

スクリーンショット 2020-09-13 18.52.17.png

GitHubのREADMEの機能の追加により、以下のようなバッジを追加する記事が増え、自分もなにかバッジにまつわるツールを作りたいなと考えました。

そこで、競技プログラミングに関するバッジを作成しようと思い至り
以下のようなバッジツールの作成のお手伝いをしました。

Badge Badge Badge

CP-Badgesの発見

競プロのバッジを作ろう!と思い立ったあたりで、ちょうど学会が近づきスライド作成・発表で多くの時間を取られていました。
その結果、2週間ほど開発時間が取れず、なかなか足を踏み出せずにいました。

ようやく学会が終わり、「よし作成するか!一応既存サービスあるか調べるか!...あるねぇ!!」となりました。悲しいですね。

CP-Badgesというリポジトリです。

[![Badge](https://cp-logo.vercel.app/atcoder/ganariya2525)](https://atcoder.jp/users/ganariya2525) 

以上のように書くことで、バッジを作成することができます。
Badge

バッジの詳しい作り方はREADMEを御覧ください。

プルリクエスト

先駆者様がいましたが、「ええぃ!僕が1からさらに作ってもっとすげぇのにしてやる!」とはなりませんでした。
他の方のリポジトリに貢献・コントリビュートできたほうが嬉しいからです。

まだCP-Badgesに追加されていない機能として

  • YukiCoderのレベル
  • TopCoder

があったためこれらを追加するプルリクエストを投げました。

リポジトリ作成者のkehsihba19から以下のような温かい言葉をいただき

Thank you for adding the support of Yukicoder OJ.
I will be happy to merge the pull request and add you as an active contributor to the repo.
Thanks again.
Good Work :)

ganariyaはとても嬉しい気持ちになりました。

OSS開発は 技術者の方とつながることができますしレビューなどもいただけてとても嬉しいです!
もっとやっていきたいですね。

課題

CP-Badgesですが、毎回のバッジ作成時にBeautifulSoupでスクレイピングをしてAtCoder, Codeforces, CodeChefのレーティングをとっている実装のようです。
これだとユーザが増えるにつれて重くなっていく可能性が高いです。

そのため、時間を見つけて

  • APIを用いた高速化
  • データベースを用意してキャッシュ
  • cronなどで定期データベース更新

などのプルリクエストを投げてみようかなと思います。

最後に

OSS開発楽しいですね!
もっともっと積極的にやっていこうと思います。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2