Coder Social home page Coder Social logo

twihika_public's Introduction

twi_hika.com

twitter-marketingtwihika-id

以下TwiHikaは私の作っているちょっとしたツール群の名前です。

自分で使うツールやスニペットを再利用可能な単位で分割してmonorepoで開発してます。

※ 個人開発なので、実務で使うコードの半分くらいのクオリティで書かれている前提で見てください。絶賛リファクタ中。

目次

サービス全体像

実現したかったシステム

  • ログインやユーザー管理は**集権的に行いたいので、GoogleやTwitter、KeyCloakをIdProviderとして各サービスに対してユーザー情報を共有する。FirebaseAuthentication事態がStorageなので楽。

  • 個人開発でminimalな機能を持ったサービスをリリースしていきたいので、1サービス1ドメインで別のソースを参照してます。

  • 共通する処理などはmonorepoでソースコードを共有する仕組み。

  • バッチ処理を書くと大体オーバーヘッド高くなったり、バッチ処理の順番の制御など暗黙知が多くなるのでChange Data Captureベースを中心としたシステム間の連携。

twihika

デモ一覧とサマリー

twitter-marketing

Twitter商標ログ(twitter-marketing)

Twitter商標ログdemo動画

Twitter商標ログ:使用されている技術

  • Prisma
  • Next.js
  • TanStack(旧React Query)
  • ElasticSearch
  • Debezium
  • RDB(CloudSQL)
  • Hasura
  • ChakraUI

Twitter商標ログ:実装されている機能

Twitter商標ログ:ログイン済みユーザー向けの機能
  • tweetの除外機能 (対象のツイートのみの除外、特定のユーザーが投稿したツイート全ての除外)
    • ひとこと: 除外機能は、動機的に削除するのはElasticSearchのデータのみで、あとは、非同期に削除できる場所を用意。
  • 検索機能(ページング、日付絞り、取得したカテゴリベースの検索)
    • ひとこと:elasticsearchで検索用のリードモデルを作成しているの要件次第で柔軟な検索を作ることができる。
Twitter商標ログ:ログインしてないユーザー向けの機能
  • ログインしてない場合に除外機能のボタンを押すと、クライアントサイドでリダレクトする。他はログインユーザーへの提供機能に同じ

コードベースの詳細はこちら

TwiHikaIdフロント基盤

twihika-id

TwiHikaIDフロント基板demo動画

TwiHikaIdフロント基盤:使用されている技術

  • Prisma
  • Next.js
  • RDB(CloudSQL)
  • Firebase Authentication
  • CloudFunctions
  • ChakraUI

TwiHikaIdフロント基盤:実装されている機能

  • Googleを使ったログイン(FirebaseAuthentication)
  • メールアドレスでのログイン(FirebaseAuthentication)
  • KeyCloakを使ったOIDCログイン(サービス管理者)(FirebaseAuthentication)
  • パスワードリセット(FirebaseAuthentication)
  • メールアドレスでの新規登録(FirebaseAuthentication)
  • CookieベースでトップレベルのドメインでJwtSessionを共有
  • リダイレクトURLの検証とリダイレクト

コードベースの詳細はこちら

twihikaイベントバスNestjs

insertして、eventbusの標準出力にイベントが送信されているところ。 eventbusデモ

コードベースの詳細はこちら

twihika_public's People

Contributors

yk-matsu avatar

Stargazers

Bima Putra Lamanda avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.