紫苑 ~shion~

https://github.com/chell-uoxou/shion

Next.js

Go

TypeScript

React

TailwindCSS

「あの人」に話したいそのできごと、景色、発見、覚えておきます。

そら-ハックツ

るいるい

島本優衣

推しアイデア

紫苑(シオン)の花言葉は、「遠くの人を想う」 話したい話題を遠くにいる人に届けることを願って作りました

作った背景

久々に会う友達に話したいことがいっぱいあるのに、なにを話すかを忘れてしまう。 そんな経験をなくしたかった

推し技術

OAuthや認証セッションの自前実装 Docker, Orval, golang-migrate, Makefileといったツールでの開発体験の向上

プロジェクト詳細

紫苑 -shion-

「あの人」に話したいと思ったそのできごと、景色、発見覚えておきます

いつも会うあの友達も、家族も、同窓会や久しぶりに旧友でも。

使用フロー

  1. Googleでログイン
  2. できごとを新規入力
  3. できごとのタイトル、詳細をかく
  4. 話したい相手を追加
  5. タイムランビューでできごとを閲覧 image

image

使用技術

フロントエンド

React (TypeScript) (Next.js) Tailwind CSS

バックエンド

Go (net/http)

データベース

PostgreSQL

開発環境

Docker OSを問わず同じ環境で開発できるように

Orval OpenAPIから型安全なAPIクライアントを生成

golang-migrate DBマイグレーション

頑張ったところ

自前で認証作れた! OAuthのフローを勉強して、GoogleのOAuthを利用した認証機能を実装しました!認証セッションはJWTをCookieに保存することで、Web標準の仕組みに則ったきれいでRESTFulな実装が実現できたと思います

Dockerを導入 node以外の全ての環境依存を排除することにより、複雑な技術構成で、MacとWindows両方がいるチームだけど、全く同じ環境で開発できる体験を実現しました

Orvalを導入 OpenAPIから型安全なAPIクライアントを生成することで、フロントエンドとバックエンドの繋ぎ込みを極限までスムーズにすることができました。

よかったところ

全メンバーが新しいことに挑戦できた プログラミングや、チーム開発が未経験のメンバーも、それぞれ任されたタスクを試行錯誤しながら実装に取り組むことができました。

もっと頑張れたところ

実装しきれなかったこと ・話したい相手のアイコンをデザインする画面 ・できごとに写真を添付 ・できごとの検索 ・デプロイimage

そら-ハックツ

@7e188947938fb360