circle-manager's People
circle-manager's Issues
Web側をSvelteKitに置き換える
趣味活動っぽいこともたまにはやる
Circleテーブルを消してCircleモデル+CircleKeyに置き換えていく
マスターデータを入れるほどの規模でもないのでenum+型付きのModelの組み合わせでやっていく
DBをVPSからクラウドデータベースへ移行
#65 の一環。
なぜやるのか
DBをVPS上のDokkuから撤退する必要があるため。
DB比較
Heroku PostgreSQL
https://elements.heroku.com/addons/heroku-postgresql
- 無料だと1万行1GB制限なので有料前提じゃないときつい
- ファン数記録で1日100レコードくらい増えるので一瞬で埋まる
- 仮に全サークルが3日に1回記録したとして1ヶ月で900行増えるので11ヶ月が限界
- 容量は十分
- 有料だと$9/月で1000万行10GB
- 十分に安いけど、行数制限のために有料するの微妙すぎる
- HerokuのアドオンなのでHerokuからは簡単に接続可能
Supabase
- PostgreSQL 使える
- Hasura使える
- 無料プランだとストレージ容量が500MB
- たぶん足りる気はする
- 下り転送量が毎月2GB
- どれくらい転送できるのか分からない
- 有料プランは$25/月
- DB容量が8GBにアップ
- 転送量50GB
- BaaSなので他にもクラウドストレージとか認証とかついてる、が特に必要なさそう
PlanetScale
https://planetscale.com/pricing
- PostgreSQLではなくMySQL
- Hasura使えないことはないけどConsole使えなくなるしセルフホスティングしないといけなくて結局別途環境必要なので実質使えない
- 無料プランで10GBストレージ、転送量制限なし、書き込み1000万/月と読み込み10億/月の制限だがあってないようなもの
- 有料プランはあるが無料で十分
- 既存のPrismaのスキーマがPostgreSQLなので、データ移行とかその他もろもろがまあまあ面倒
- データ移行をいい感じにやれるならあり
在籍表の脱退者の表示横にDiscordにまだいるかどうか表示する
いちいち探すのじゃまくさい
オープンなメンバー一覧を作る
トレーナーIDを誰でもみられるようにしたい
脱退から脱退(Discord残留)へのつけかえ対応
https://discord.com/channels/839400642664595506/904917585605308447/926764570473824307
アンケート終了後もDiscord残留に切り替えられるようにしたい。
DMで送っている各種通知を専用の通知チャンネルでまとめてメンションとかにできないか
DM解放のハードルは一定の人には敷居が高すぎるし、そもそも見ているかどうかが分からない
序を加入申請時に選べないようにする
移籍表で「自分がやるべきこと」がわかるようにする
ただただ長いテーブルがあるだけだと何すればいいのか分からなかったり、チェックミスったりしそう
OBロールつけかえ対応
https://discord.com/channels/839400642664595506/904917585605308447/926764570473824307
脱退者の除名が完了した時に自動的にサークルのロールを削除してOBロールをつけたい。
インフラコストカット
GraphQLクライアント再考
#28 でApollo Clientからurqlに置き換えたがSSRと組み合わせるとカスタムスカラーがまともに使えないのでなんとかしたい。
- Apollo Client
- Relay
- urqlでがんばってカスタムスカラーとSSR動くようになんかする
Hasuraためす
移籍表で除名済みのチェックがなくとも勧誘済みをチェックできるようにする
除名しなくても空いていれば勧誘はできるのだ
テスト書く
Jestしようや https://jestjs.io/ja/
UmastagramとMemberテーブルのトレーナー名つきあわせ時に英数字とスペースを半角に変換する
ゲーム側でスペースが勝手に全角に変換されたり、Umastagram側で認識された時に全角になる可能性があったりととにかく変換と相性が悪い。
つきあわせの時にUmastagram側、Memberテーブル側両方の英数字とスペースを半角に変換したあと行うことでメンバー関連付けの精度を上げる。
レジェンドレースリマインダー
虹結晶の欠片絶対ほしい
脱退と脱退(Discord残留)を統合
抜けたい人は抜けてくれってした方がオペレーション楽そう
日付関連のライブラリーを置き換える
proposal-temporalはまだαなので使うべきじゃないしChromeで日付のパースがぶっ壊れた、ブラウザーに組み込まれたら使ってもいいかもしれない。
yarn -> npm
複数人開発ならnpm使った方がよさそう
https://zenn.dev/hibikine/articles/27621a7f95e761
js-joda検討する
Day.jsを入れたがDateのラッパーなので年月、年月日単位の型がなくてうーんってなってる
Puppeteerが必要な処理をWeb側のシステムから分離
apt-getが遅すぎるのでFirebase Cloud Function辺りに放り込んで実行したい。
Semantic UI React検討
除名/勧誘時に本人にDMで通知
https://discord.com/channels/839400642664595506/904917585605308447/926764570473824307
加入申請や移籍表の状態が変わったときに本人に通知されれば便利
ランキング
https://discord.com/channels/839400642664595506/904917585605308447/926764570473824307
ランキング制のためにランキングを生成できるようにする
序解散対応
4/1までに対応が必要
ランキング確定スクリプトで序が選ばれないようにする
個人チャンネルの作成機能
個人が好きに独り言を書けるチャンネルを作りたい
- 1メンバー1チャンネル
- 愚痴や報告系、各種専用チャンネルに書く前に自分の考えをまとめる、固定情報置き場みたいな感じで使いたい。
- デフォルトでは全員に見えず、専用のロールを付与することで見られるように
- デフォルトで通知オフ、見たいモノだけ通知オンにする感じ
- チャンネルは専用のメッセージにリアクションで作ることができる
- 個人チャンネルからよく使うチャンネルにメッセージを転送できるように
- SlackのReacjiみたいな感じ
- まずはおためし
VercelとHerokuにデプロイできるように
#65 の一環
Web側をVercelに、BotをHerokuにデプロイできるようにする
移籍表でチェックを入れると順番が入れ替わる
ミスチェックしそうなので対策する
初期設定画面のランキング制への対応
https://discord.com/channels/839400642664595506/904917585605308447/926764570473824307
初期設定画面をランキング制に対応した状態にしたい
スラッシュコマンドを整理してリアクションbotへ移行していく
ランキング制で除名者が出た時に除名時に所属しているサークルに追加募集枠を割り当てる
決めていたのに2022年1月分では考慮できてなかった
https://discord.com/channels/839400642664595506/909422094364860457/937720583892901888
ちょっとした処理を管理画面ではなくコマンドで行えるようにならないか
運営メンバーは普通にスラッシュコマンド使えそうだし、頑張ってUI作るよりスラッシュコマンドの方が楽な場面がいくつかありそう
例
- 誰かの在籍希望アンケートの内容を編集する #9
- 在籍希望アンケート未回答のメンバーを調べる
Umastagramっぽい機能を入れたい
https://discord.com/channels/839400642664595506/904917585605308447/922439784977276958
一度やったけど文字認識の精度に問題があって断念。
https://zenn.dev/takuji31/scraps/2a6222335fc167
Umastagramの人は物体検出と文字認識を組み合わせてるらしい。
在籍表で除名者の除名済みにチェックした時にDiscordもBANする
ルール守れない人は二度と来ないでほしいしBANのために目Grepする運営メンバーの時間がもったいない
year/monthのStringで表現しているところをIntに、year/month/dayで表現しているところをPlainDateに
Stringだとソートしたときに 2>10になる、year/month/dayのところはPlainDateにまとめて比較を楽にしたい
React 18化
Suspenseなにがなんでも使いたい
ボトルネック
- MUI
- Dark Themeへの切り替えがうまくいかない、どうもSSRしたHTMLのスタイルがハイドレーション後に切り替わらない?よく分かってない
- https://github.com/mui/material-ui/milestone/45
- SSRでのデータフェッチ
- 今のところNext.jsではデータにズレあるから使わない方がいいよって言ってる
- https://nextjs.org/docs/advanced-features/react-18/streaming#data-fetching
- じゃあどうすればいいの?
本番のデータを開発にコピーする仕組み
なんかコピー用のGraphQLのクエリとかあるといいのか?何も分からない
DM送信をリトライできるような仕組み
DM解放してない人がいたり、たまに本当に失敗したりするので
脱退者の除名済みにチェックを入れた時にOBロールをつける
手動でやっててミスりまくってるのでなんとかする
ファン数のBigIntをIntに
だくへゔさんが毎月5億一生かけて稼いでもNumberの最大値には到達し得ない
ランキング制対応の在籍希望アンケートを編集できるように
https://discord.com/channels/839400642664595506/909422094364860457/933719987435241502
@takuji31 がDBを直接いじらないと編集できないのでランキング制前のものと同じように編集できるようにする
未育成の変動チェックを半自動化する
手でチェックするのはとにかくたいへん。それっぽい値変動だった時に運営メンバーに通知するようにしたい。
https://canary.discord.com/channels/839400642664595506/909422094364860457/937604998433497128
URL引用機能
結月を入れて使っているが、結構落ちてたりして大変なので自前に切り替えたい
ランキング集計から序を除外する
Apollo Clientをurqlに置き換える
あらゆるデータ層の処理を全てGraphQL経由に
DB回りの処理や日付の変換処理とかそういったものを全部GraphQLのfieldやMutationに押し込みたい。バックエンドでもSchemaLink経由でGraphQL APIを叩くイメージ。
GraphQL回りのリクエストに typed-document-node を使っていく
https://blog.sinki.cc/entry/2020/08/18/190426
Hooksとそれ以外での型の付け方を統一したい。
Apollo Clientに依存しきっている状況をやめたい。
ランキング生成で中途加入者のファン数計算方法を変更する
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.