tag:crieit.net,2005:https://crieit.net/boards/web1week-202107/feed 「(7/19~7/25)1週間でWebサービスを作るイベント - お題「バケーション」」の投稿 - Crieit Crieitで「(7/19~7/25)1週間でWebサービスを作るイベント - お題「バケーション」」ボードに投稿された最近の投稿 2021-07-28T00:50:18+09:00 https://crieit.net/boards/web1week-202107/feed tag:crieit.net,2005:PublicArticle/cd5244f6582945ba553cd59e5c618803 2021-07-28T00:41:10+09:00 2021-07-28T00:50:18+09:00 https://crieit.net/boards/web1week-202107/cd5244f6582945ba553cd59e5c618803 みんなで共有できる条件付きグループ分けツール「グループよしなにくん」 <p>みなさん、バケーションといえば、遊びに行ったり開発をしたりするわけですよね!?<br /> 数人ならいいですが、人数が多くなると出てくる問題――いい感じの条件でよしなにグループ分けしたい、そう思ったことはありませんか?<br /> そんなときにこれです。</p> <h2>グループよしなにくん</h2> <p><a target="_blank" rel="nofollow noopener" href="https://groovy-grouping.herokuapp.com/">https://groovy-grouping.herokuapp.com/</a></p> <p>……すいません、作りたいもの駆動です。<br /> 社内の勉強会でグループに分けることがあるのですが、いまひとつササッと決めきれませんでした。</p> <ul> <li>分散させるための条件をつけたい <ul> <li>いろいろなチームの人が均等になるようにしたい</li> <li>1グループに経験がある人ばかり偏らないようにしたい</li> </ul></li> <li>そのときどきで参加しない人もいるので、参加する人が自分でエントリーできるようにしたい</li> </ul> <p>調べたところ、「条件付き」と「データを保存してくれる」を両立したサービスがありませんでした。なので作りました。<br /> 最低限の機能を実装することを優先したので、UIは非常にscaffoldです。あとで整えたいです。</p> <h2>使い方</h2> <p>トップページからチームを作成<br /> <a href="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb610021dd2bbfe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb610021dd2bbfe.png?mw=700" alt="image.png" /></a><br /> ↓<br /> ユーザーを追加<br /> <a href="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb61002254ac7fb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb61002254ac7fb.png?mw=700" alt="image.png" /></a><br /> ↓<br /> チーム名と同名のイベントが作成されているので、イベントページへGo<br /> <a href="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb610022e94b82d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb610022e94b82d.png?mw=700" alt="image.png" /></a><br /> ↓<br /> 条件を追加<br /> <a href="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb6100228306967.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb6100228306967.png?mw=700" alt="image.png" /></a><br /> ↓<br /> 参加者を追加<br /> <a href="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb610023222477e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb610023222477e.png?mw=700" alt="image.png" /></a><br /> ↓<br /> 条件・参加者を入力したら、「グループ分けする」をクリック<br /> ↓<br /> よしなにグループ分けしてくれます<br /> <a href="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb6100236a488bf.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5eaef89f7d64c84df6cb0fcb412167fb6100236a488bf.png?mw=700" alt="image.png" /></a></p> <p>ある程度データが入っているので、こちらから自由に遊んでください。<br /> <a target="_blank" rel="nofollow noopener" href="https://groovy-grouping.herokuapp.com/teams/jZz9cN6QKi5Q/edit">https://groovy-grouping.herokuapp.com/teams/jZz9cN6QKi5Q/edit</a></p> <h2>技術</h2> <ul> <li>Ruby 3.0.2</li> <li>Rails 6.1.4</li> <li>heroku <ul> <li>JawsDB</li> </ul></li> </ul> <p>最初はfirebaseを使おうかなと思っていたのですが、考えている間にテーブル構造がどんどん複雑になっていき、RDB以外で考えられなくなりました。そして、思いの外時間がかかりそうだったので、使い慣れたRailsで実装することにしました。<br /> なので、技術的に目新しいことはないです。<br /> MySQLの民なのでDBはJawsDBです。herokuは1時間でデプロイできるからまじで強い。</p> <h2>感想</h2> <p>グループ分けの部分がアルゴリズムな感じで、あまり経験がないので難しかったです。現状かなりゴリ押している気がします。<br /> とはいえ、一応機能としては使えるものになっているのではないかと思います。多分。</p> <p>現状はいろいろと使い勝手が悪いので、もう使いやすくしたいです。<br /> ロジックを作るとフロントを実装するのが面倒になってしまうんですけど……。</p> END tag:crieit.net,2005:PublicArticle/Twitter-4-4f 2021-07-27T21:35:44+09:00 2021-07-27T21:41:26+09:00 https://crieit.net/boards/web1week-202107/Twitter-4-4f 夏休み中の暇つぶしに、Twitterトレンドを4コマで流し読み!「4f」 <h1>4f - Twitterトレンドを4コマで! -</h1> <p><a target="_blank" rel="nofollow noopener" href="https://four-frames.herokuapp.com/">https://four-frames.herokuapp.com/</a></p> <h1>4fとは</h1> <p><a href="https://crieit.now.sh/upload_images/684fa2e2dbe7246a375249984a7db8cf60fffa913df6f.jpeg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/684fa2e2dbe7246a375249984a7db8cf60fffa913df6f.jpeg?mw=700" alt="image" /></a></p> <p>Twitterのタイムラインを読むほど時間はないが、世の中の直近で何が起きているかざっと見たいといった自分の欲のために作りました。4fは"4 frames"の略で、日本語では4コマです。あんまり多くのツイートに溺れてしまわないように、Twitterのトレンドを最小限のツイート数で理解しようというものです。トレンドにまつわる4つのツイートを抜粋して表示しています。</p> <p>これをPC版では右左の矢印キーでトレンドを切り替えていけます。スマホ版では画面中央左右にある切り替えボタンで切り替えていきます(今後スワイプに対応予定)</p> <h1>技術</h1> <p>私自身、プログラミングは大学の授業でしかやったことないので、いろいろと試行錯誤中のため、Twitter/Github等から指摘いただけると喜びます。<br /> ・開発環境:VSCode + Docker on Mac<br /> ・稼働環境:Heroku<br /> ・GitHub:<a target="_blank" rel="nofollow noopener" href="https://github.com/jnakajima1982/4f">https://github.com/jnakajima1982/4f</a><br /> ・フレームワーク:Laravel<br /> ・Asana:やることリスト<br /> ・Figma:モックアップ用<br /> <a href="https://crieit.now.sh/upload_images/3e86150e364e6f112ee4cd38909553d260fffe580b118.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3e86150e364e6f112ee4cd38909553d260fffe580b118.png?mw=700" alt="image" /></a></p> <p>・ER図:データベース・モデリング<br /> <a href="https://crieit.now.sh/upload_images/cfb27a2850d2472e6b37f99e1930680660fffbcf617f4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cfb27a2850d2472e6b37f99e1930680660fffbcf617f4.png?mw=700" alt="image" /></a></p> <h1>ToDo</h1> <p>以下が今後やっていこうと思っていることです。<br /> ・TailwindCSSへの移行<br /> ・スワイプ対応<br /> ・ReactでSPA化<br /> ・トレンドページ自体を拡散するツイートボタン設置</p> <h1>感想</h1> <p>これだけやるのも時間がかかってしまいましたが、実践することで身についたことも多かったです。逆にこれをやりながら、Asanaなどの進捗管理ツールを外部公開できたら、このサービスを使っている人が今後のロードマップがわかるのになと思ったので、そういったサービスを作ってみようかと思っています。</p> jnakajima1982 tag:crieit.net,2005:PublicArticle/4863058531ea35049e21e34207c3bdbd 2021-07-27T04:55:00+09:00 2021-07-27T04:55:00+09:00 https://crieit.net/boards/web1week-202107/4863058531ea35049e21e34207c3bdbd スイカ割りゲームを作りました <h1>スイカ割りゲームを作りました</h1> <p><a href="https://crieit.now.sh/upload_images/2b8b27ca741e0e7eaa83d3de81301af560ff06f301ed0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2b8b27ca741e0e7eaa83d3de81301af560ff06f301ed0.png?mw=700" alt="スイカ割り" /></a></p> <p>「バケーション」といえば「夏休み」、「夏休み」といえば「スイカ割り」、ということで、スイカ割りを楽しめるゲームを作りました。</p> <p>大勢で集まることのできないこのご時世、ステイホームでスイカ割りを楽しめます。</p> <p>ゲームはこちらから遊べます<br /> → <a target="_blank" rel="nofollow noopener" href="https://okmr-d.github.io/suikawari/">https://okmr-d.github.io/suikawari/</a></p> <h2>ゲームの様子</h2> <p>ルールは簡単、動くスイカをタップ(またはクリック)して割るゲームです。</p> <p><a href="https://crieit.now.sh/upload_images/ba5bdb98be9e17dce74ade135e38ff8d60ff09fd96110.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ba5bdb98be9e17dce74ade135e38ff8d60ff09fd96110.gif?mw=700" alt="ゲーム画面" /></a></p> <p>え?想像してたスイカ割りと違うって?ドンマイです。</p> <p>簡単すぎると感じた方は、目隠しをしてお楽しみください。激ムズすぎる上、音が出ないので割れたかどうかわからないと思います。ドンマイです。</p> <h2>技術解説</h2> <p>スイカ(divタグ)をtransformで移動&回転させて壁に当たったら反射させてるだけです。特に canvas 等も使ってません。解説することがなかった。</p> <p>ソースコードはこちら<br /> → <a target="_blank" rel="nofollow noopener" href="https://github.com/okmr-d/suikawari">https://github.com/okmr-d/suikawari</a></p> <h2>感想</h2> <p>本当はVRみたいに振ってスイカ割りしたかったんですけどね。。気付いたらスイカがブロック崩しみたいな動きしてました。音とかも付けたかったですが、今回はここまで!</p> オクムラダイキ tag:crieit.net,2005:PublicArticle/Tell 2021-07-26T02:56:49+09:00 2021-07-26T15:19:12+09:00 https://crieit.net/boards/web1week-202107/Tell 友達や家族と簡単に日程調整ができるアプリ「ヒマしTell!」を開発しました! <h1>発想</h1> <p>友達と手軽に日程調整ができるアプリケーションを作成しました.</p> <p>お題は「バケーション」ということで,「休暇 → 友達と遊びに行く → 日程調整」と言うふうに連想し,アプリの作成を決定しました.</p> <h1>開発したWebアプリ「ヒマしTell!」</h1> <p>こちらが制作したアプリになります.スマホオンリー対応なのでPCで見る人はご了承ください.</p> <p><a target="_blank" rel="nofollow noopener" href="https://vacation-schedule-6j9jrvlis-furukawatakumi.vercel.app/schedules/">ヒマしTell!</a></p> <p>日程調整したい期間を入力すると下のようなチェックボックスカレンダーが生成できるので,そこにぽちぽち入力していくことで全員が暇な日が一目でわかります!!</p> <p><a href="https://crieit.now.sh/upload_images/8eec77c0950101e1e3984e7d1a58f97360fd9404dd9ef.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8eec77c0950101e1e3984e7d1a58f97360fd9404dd9ef.png?mw=700" alt="名称未設定.png" /></a></p> <p>サンプルのカレンダーを以下に貼っておきます.</p> <p><a target="_blank" rel="nofollow noopener" href="https://vacation-schedule-6j9jrvlis-furukawatakumi.vercel.app/schedules/J8xGsOaDydouEF6ZLZiw/edit">サンプルで作成したヒマな日カレンダー</a></p> <h1>工夫点</h1> <p>工夫点は4つあります.</p> <ol> <li>認証が必要ないため手軽</li> <li>コピーボタンでURLをクリップボードにコピー可能</li> <li>レインボーテーブルにすることで視覚的にチェックボックスがどの日に対応しているのか理解するのが容易</li> <li>リアルタイムで他人の更新内容を反映</li> <li>利用者ユーザに合わせたテーブルの表示</li> </ol> <p>気になるのはおおよそ1,4,ぐらいだと思うのでそれについて書きます.</p> <h4>認証が必要ないため手軽</h4> <p>まず,やはり目に止まると思われるのは認証が必要ないというところだと思います.<br /> 「セキュリティガバガバやん」と思ったそこのあなた,その通りでございます.</p> <p>触ってみるとわかるのですが,日程調整カレンダーを生成した時点で毎回使用者が誰かをアプリが聞いてきます.このタイミングでなりすましが簡単にできてしまいますね.</p> <p>しかし,気心の知れたユーザの間でその心配は不要なのではないでしょうか?<br /> 本アプリでは,なりすましのリスクを取って手軽さを取ってみることにしました.</p> <h4>リアルタイムで他人の変更内容を反映</h4> <p>通常だと,ページをリロードしないと他の人の変更が見えないという問題があります.その時々で認識しているヒマな日が一致しないのは結構辛いものがあるだろうということで,リアルタイム同期機能をつけてみました.</p> <p>このアプリはFirestoreを使っているんですが,onSnapshotというメソッドを使うととても簡単に実装できます.</p> <p>やれることの凄さに加えて簡単だったのでびっくりしました.</p> <h1>感想</h1> <p>簡単に信頼のおける人と日程調整ができるアプリを作成しました.割といいものができたのではと思っているので,完成度を高めていきたいですね.</p> <p>活動する時間を計測していたんですが,どうやらこの記事を書くのも含めて23時間ほどかかっているようです.orn...</p> <p>短い時間でクオリティを出してくる人たちはやっぱりすごいなぁ,と思いました.</p> <p>良ければいいねなどしていただけると嬉しいです.</p> 稲荷寿司 tag:crieit.net,2005:PublicArticle/Splay-Spotify-Youtube 2021-07-26T01:41:06+09:00 2021-07-29T21:03:50+09:00 https://crieit.net/boards/web1week-202107/Splay-Spotify-Youtube Splay - Spotify のお気に入り音楽を Youtube プレイリストでシェアしよう <p><img src="https://i.gyazo.com/9df4ec3526b68eafc74c8b16b449f114.png" alt="今回の Web1Week でつくったもの" /></p> <blockquote> <p>今回の Web1Week でつくった Web サービスの画面</p> </blockquote> <h1>はじめに</h1> <p><strong>転職前の有休中に web1week の期間が重なっていたので、バケーション中の身だから参加を決意しました。</strong> なおテーマ的にはまったくバケーション関係ないウェブサービスを作って参加してみました (えっ</p> <p>ちなみに知識不足で知らなかったのですが、GCP 使ったアプリを公開する場合は申請作業を行って承認してもらえないとテストユーザーしか利用できない状況になるようでした。</p> <p>ということで未だ申請作業できていないので、<strong>現在製作者本人しか利用できないウェブサービスとなっています。。</strong> 🙃💥</p> <p>いちおう Web サービスのデプロイ先は ↓ になります。<br /> <a target="_blank" rel="nofollow noopener" href="https://splay.nikaera.com/">https://splay.nikaera.com/</a></p> <p>GCP アプリの公開作業は空いた時間で挑戦してみる予定です💪<br /> あとソースコードは適当なリポジトリにアップする予定です🛠️</p> <p>上記については進展あり次第 Twitter でシェアりたいと思うのでご興味ある方は時々 <a target="_blank" rel="nofollow noopener" href="https://twitter.com/n1kaera">このアカ</a> 覗きに来てもらえたらと思います🛰️</p> <h1>つくったもの</h1> <p>私には普段 Spotify で音楽を聞いていて、気に入った音楽を Youtube で検索してその URL を Tumblr でシェアするという、気乗りしたときにだけやる趣味があります。</p> <p><strong>シェアするときはまとめて 10曲程度を選曲していたのですが、毎度 Spotify のお気に入りリストを漁って Youtube で検索して URL を Tumblr に貼り付けるという作業は割と面倒でした。</strong></p> <p><strong>更に 1曲シェアる毎に Spotify と Youtube と Tumblr の画面を行き来するのも面倒だったので、まとめて Youtube のプレイリストで公開できたら良いなと考えました。</strong></p> <p>そのため、兼ねてから学びを深めたかった Go 言語の学習がてら、上記の個人的なニーズが満たせそうな <strong>Splay</strong> というサービスを作ってみました。</p> <p>Splay の機能リストはざっくり ↓ の感じになっております🙋</p> <ul> <li>Youtube のプレイリストの新規作成および編集ができる</li> <li>Spotify のお気に入りリストの特定曲から Youtube の動画を検索できる</li> <li>Spotify の楽曲検索機能を利用して Youtube の動画を検索できる</li> <li><strong>Spotify の楽曲は即時 Youtube 動画としてプレビュー可能で、気に入ればそのまま即プレイリストに登録できる</strong></li> </ul> <p>最後に挙げた機能が自分でサービスを利用してみて一番気に入った機能なのですが、現時点 (2020/07/26) では Splay の利用は製作者本人にしかできないため、利用時の様子を Youtube 動画としてアップしておきました🎥👀</p> <p><a target="_blank" rel="nofollow noopener" href="https://youtu.be/tKX_Xrc1yUE">https://youtu.be/tKX_Xrc1yUE</a></p> <p>Spotify のお気に入りリストを目視で確認しながら、曲名とアーティスト名を Youtube の検索欄に入力して、該当動画の URL を手動でシェアするという手間が、Splay 使うとサクサクこなせそうなことイメージいただけたと思います多分... 🏃💨</p> <h1>おわりに</h1> <p>学習に割とフォーカスを絞って作ったので、ウェブサービス自体の機能は少なめに終わりましたが、不完全燃焼感があるのでもうちょい開発継続していきたいと考えています💭</p> <p>あと本記事内では割と絵文字を多用しましたが、<a target="_blank" rel="nofollow noopener" href="https://chrome.google.com/webstore/detail/teemo-💕/alhdkgcgpmdfbidaapdlnmbhoanoijka?hl=ja">自作した Chrome プラグイン</a>使ってました🙋</p> <p>最後にこのような機会を用意してくれた <a target="_blank" rel="nofollow noopener" href="https://twitter.com/dala00">だらさん</a> にちゃんと感謝して終わりたいと思います🙏✨</p> nikaera tag:crieit.net,2005:PublicArticle/32e71f7c934f8cb41c0722352f76899e 2021-07-26T01:34:15+09:00 2021-07-26T01:38:54+09:00 https://crieit.net/boards/web1week-202107/32e71f7c934f8cb41c0722352f76899e 大切な休日の過ごし方は適当に決めよう!ガチャバケーションを作ってみたよ <p><a href="https://crieit.now.sh/upload_images/c0b19d671492a8cae6b10bafb98ade5e60fd9387babd9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c0b19d671492a8cae6b10bafb98ade5e60fd9387babd9.png?mw=700" alt="image" /></a></p> <p><a target="_blank" rel="nofollow noopener" href="https://gatya-vacation.vercel.app/">ガチャバケーション</a></p> <p>「今日何しよ〜。」からのスマホをいじいじしていたら午前中がほぼ終わり、二度寝して起きたらもうすぐ本日終了で結局夜も眠れなくて無を過ごしたな〜って感じで休日を過ごしたことのある諸君に吉報です。</p> <p>なんと、ソシャゲでガチャする代わりにバケーションガチャを回すことでなんかいい感じの朝昼晩の予定がランダムで出てきます。</p> <p>普段なら絶対することのないことをやれるチャンスっっっっ!!</p> <p><a target="_blank" rel="nofollow noopener" href="https://gatya-vacation.vercel.app/">ガチャバケーション</a>を今すぐ回そう!回すのです、さらば救われん。</p> <p><a target="_blank" rel="nofollow noopener" href="https://twitter.com/akifumiyoshimu">@akifumiyoshimu</a>より</p> <p><a href="https://crieit.now.sh/upload_images/752563621fa0cbdca644ee07a25f8fb160fd903436abc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/752563621fa0cbdca644ee07a25f8fb160fd903436abc.png?mw=700" alt="image" /></a></p> あきふみ🇹🇭タイ個人開発 tag:crieit.net,2005:PublicArticle/c7308654cdccc8a0c7767abd7e298820 2021-07-25T21:44:17+09:00 2021-07-25T21:44:17+09:00 https://crieit.net/boards/web1week-202107/c7308654cdccc8a0c7767abd7e298820 バケーションしたいので部下に仕事全振りしたいと思います。 <p><a href="https://crieit.now.sh/upload_images/73dc28b615745803fdd70a062d40caf660fd5290c95d0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/73dc28b615745803fdd70a062d40caf660fd5290c95d0.png?mw=700" alt="タイトル" /></a></p> <p>はじめまして、しろです。<br /> web1week初参加です( *´艸`)</p> <p>気軽につくるつもりが、<br /> 妄想ばかりが膨らみ過ぎて<br /> 連休全部注ぎ込んでしまいました!!!<br /> jQueryとJavaScriptが言うこと聞いてくれなくて…</p> <hr /> <p>Webクリックゲーを作りました。</p> <h1>「バケーションしたいので部下に仕事全振りしたいと思います。」</h1> <p><a target="_blank" rel="nofollow noopener" href="https://games.nyaooon.com/vacation/">https://games.nyaooon.com/vacation/</a></p> <h2>【ゲーム概要】</h2> <p>営業から渡される無理難題なお仕事を<br /> すべて部下に丸投げ!!<br /> 寝ている人は起こして仕事をどんどん渡し、<br /> 1週間以内に完了してバケーションを楽しもう!!</p> <p>部下の性能はガチャ?(★5とか)で決まります<br /> バケーションを楽しめるかは、<br /> あなたの指示と、部下ガチャの結果次第!?</p> <h2>【操作方法】</h2> <p><a href="https://crieit.now.sh/upload_images/0bef0a56476bc861b4fb58d35dd674f360fd55759b9bc.PNG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0bef0a56476bc861b4fb58d35dd674f360fd55759b9bc.PNG?mw=700" alt="操作方法" /></a></p> <h2>【あとがき】</h2> <p>はじめて作ったので、<br /> ゲームバランスとか仕様とか無茶苦茶かもしれません。</p> <p><a target="_blank" rel="nofollow noopener" href="https://twitter.com/Shiro_Nyaooon">Twitter</a>もやっているので、<br /> 質問とか…バグ報告とか…お褒めの言葉とか!!<br /> 何でも気軽にお声がけくださーい!!!!</p> しろ tag:crieit.net,2005:PublicArticle/d16f0f3f88e785debdd6da67370112f3 2021-07-25T20:55:48+09:00 2021-07-25T20:55:48+09:00 https://crieit.net/boards/web1week-202107/d16f0f3f88e785debdd6da67370112f3 セミの音をミックスしてセミDJになるサイトを作りましたこんにちは。皆さん、夏休みはいかがお過ご... <h1>セミの音をミックスしてセミDJになるサイトを作りました</h1> <p><a href="https://crieit.now.sh/upload_images/7d9ce044e04aeff8af9d08be2a77bb4260fd4b0555e74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7d9ce044e04aeff8af9d08be2a77bb4260fd4b0555e74.png?mw=700" alt="screenshot" /></a><br /> こんにちは。</p> <p>皆さん、夏休みはいかがお過ごしでしょうか。</p> <p>私は特にやることもないので家でダラダラと過ごしています。</p> <p>クーラーをつけっぱなしで窓も締め切っているため、セミの声もほとんど聞こえてきません。</p> <p>私にとって夏といえば常にセミの声が共にあったものですが、セミの声が聞こえない夏というのもなんとも虚しいものです。</p> <p>外に出ればセミの声が聞こえてきますが、暑い中わざわざ外に出たくないですよね?</p> <p>そこでみなさんが抱いている「家にいながらセミの声を聞きたい」という願望を叶えつつ、セミの音を組み合わせて自分の好みのセミサウンドを作り出すサイトを作りました。</p> <p><a target="_blank" rel="nofollow noopener" href="https://sounds-of-japanese-summer-drbpwuc61-defunty.vercel.app/">https://sounds-of-japanese-summer-drbpwuc61-defunty.vercel.app/</a></p> <p>タイトルに「DJ」という言葉を使ってしまいましたが、セミの声を逆再生したり再生速度を買えたりする機能も欲しかったのですが、時間の関係で作り上げられませんでした。</p> <p>また、逆再生したとしても「ミン」が「ンミ」になるだけなので応用が効かないだろうと勝手にたかをくくりましたが、もしどうしてもンミンミ言わせたい方がいればぜひご一報ください。</p> <p>話は変わりますが、オリンピックも始まったので、ぜひ海外在住の方にも日本の夏を感じながら中継を観戦していただければと思っています。</p> <p>ただネットで調べてみたところ「日本のセミうるさくね?」という感想が多いように感じました。</p> <p>非常に残念ではありますが、実際にアプリ上で全セミサウンドをミックスしたところかなりうるさかったです。</p> <p>情緒もバランスですね。</p> <p>また、セミ以外にも虫の声が色々入ってます、なんなら鳥の声も入ってます。</p> <p>なので広義的には「生き物DJ」が適切なのですが、「セミDJ」の方が語感が良くて好きです。</p> <p>かの有名な映画「えびボクサー」にもあやかっており、同じようにヒットしますようにと語感を揃えました。</p> <p>ヒット作は語感で決まる、というのは誰かが言ったかもしれないし誰も言ってないかもしれないですが、アプリ名に意味を注ぎすぎないというのもたまには良いなぁとなんとなく思った夏休みでした。</p> defu@Todo:早寝早起き tag:crieit.net,2005:PublicArticle/a4b60fca1c76638867641f5d82b01b48 2021-07-25T20:33:38+09:00 2021-07-25T20:48:43+09:00 https://crieit.net/boards/web1week-202107/a4b60fca1c76638867641f5d82b01b48 趣味をシェア <p>このプロジェクトは<a target="_blank" rel="nofollow noopener" href="https://github.com/yCroma">yCroma</a>と共同開発しました!</p> <p>バケーションといえば、趣味を極めるのにもってこいですよね!<br /> でもみんなどんな趣味を持っているの…?<br /> ということで、趣味を共有できるアプリを作成しました!</p> <p>とにかく最小最速を心がけた結果、簡易的な掲示板のような機能にすることにしました。<br /> 会員登録なんてものはありません笑<br /> みんなで趣味を共有して、自分の趣味を増やしましよう!!</p> <p><a target="_blank" rel="nofollow noopener" href="https://freetime.sakudev.net">inYourFreeTime~趣味の共有~</a></p> <p><a href="https://crieit.now.sh/upload_images/6f4393846f76eed0b7832b22fee2534c60fd458883629.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6f4393846f76eed0b7832b22fee2534c60fd458883629.png?mw=700" alt="ScreenShot 2021-07-25 19.06.59.png" /></a></p> <p>Twitterシェアされると喜びます!ぜひお願いします!:)</p> <h2>使用技術</h2> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/t-sakurai816/inYourFreeTime">GitHubのリポジトリ</a>の<a target="_blank" rel="nofollow noopener" href="https://github.com/t-sakurai816/inYourFreeTime/wiki/Technology-Used">Wiki</a>に詳しく書きました!<br /> バグや欲しい機能などがあれば、issueをいただければと思います!</p> <h3>frontend</h3> <p>Vue.js, Vuetify</p> <h3>backend</h3> <p>Express</p> <h2>感想</h2> <p>参加してみての感想です</p> <h3><a target="_blank" rel="nofollow noopener" href="https://github.com/t-sakurai816">t-sakurai816</a></h3> <p>はじめは僕はあまり時間がとれないので、「アイデアだしと、インフラの相談くらいしかコミットできないよ」という話だったのですが、このweb1weekが楽しすぎて、かなりの時間コミットしてしまいました笑<br /> もともとAWSは利用していたので、AWSでサーバーレス構成を組んでみました。<br /> ServerlessExpressを利用することでバックエンドのAPIを簡単に立てることができました!<br /> Vueはほとんど触ったことなかったのですが、<a target="_blank" rel="nofollow noopener" href="https://github.com/yCroma">yCroma</a> くんのフロントエンド実装を手伝う形でかなりVueについての理解が深まったと思います。<br /> GitHubActionsも本格的に使ったのは初めてだったのですが、CI/CDツールの便利さを実感したプロダクトでした!</p> <p>一週間でサービスを作るという体験がかなり良い経験になりました!また参加できたら嬉しいです +1</p> <h3><a target="_blank" rel="nofollow noopener" href="https://github.com/yCroma">yCroma</a></h3> <p>サクッと作れるだろうと余裕かましていたら、実装は詰まるわ、ワクチンの副反応でうごけなくなるわで色んなことが起こったアプリ開発でした。今までは自由気ままに自分が作りたいものだけを作ってきたので、お題を元に何かを作るということは新鮮で楽しかったです。<br /> 1週間という短い時間の中で完成させなければならなかったので、利用するフレームワークは二人ともが利用したことがある「Vue.js」を採用。<br /> 半分以上は<a target="_blank" rel="nofollow noopener" href="https://github.com/t-sakurai816">t-sakurai816</a>に助けてもらっちゃいました(圧倒的感謝)。<br /> お互いがお互いのためにアプリケーションの足回りを整備しあっていたのが、一番良かったところでした。</p> <p>今度参加するときは、もっと余裕を持って完成させられるよう強くなっていたいと思います。</p> <h2>Contact us :)</h2> <h3>GitHub</h3> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/t-sakurai816">t-sakurai816</a><br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/yCroma">yCroma</a></p> <h3>Twitter</h3> <p><a target="_blank" rel="nofollow noopener" href="https://twitter.com/devsaku">t-sakurai816</a><br /> <a target="_blank" rel="nofollow noopener" href="https://twitter.com/_yCroma">yCroma</a></p> t-sakurai816 tag:crieit.net,2005:PublicArticle/7510face763fc6998cc884bf20561721 2021-07-25T20:33:29+09:00 2021-07-26T12:09:13+09:00 https://crieit.net/boards/web1week-202107/7510face763fc6998cc884bf20561721 気軽にバーチャル旅行をしよう <p>こんにちは、<a target="_blank" rel="nofollow noopener" href="https://twitter.com/yui_active">Yui</a>です。<br /> 今回はバケーションがテーマなんですが、このコロナ禍ではなかなか旅行も行けないですよね。<br /> せめてバーチャルでということで、気軽にバーチャル旅行ができるサービスを作りました。</p> <p><a href="https://crieit.now.sh/upload_images/7d528e74bcbdc1636f3589234a50549f60fd3cf16f5fe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7d528e74bcbdc1636f3589234a50549f60fd3cf16f5fe.png?mw=700" alt="ドゴーン.png" /></a></p> <p><a target="_blank" rel="nofollow noopener" href="https://travel-app-three.vercel.app/">https://travel-app-three.vercel.app/</a></p> <p>ボタンを押すとその国の背景に変わります。</p> <p>ちなみに背景画像に関しては全て私が過去に撮った画像を使ってます。<br /> あと30ヶ国ぐらい追加できますが、あんまり増やしすぎるのも面倒なので、個人的に好きな16ヶ国にしました。</p> <p>使用技術は、以下です。<br /> - Next.js<br /> - TypeScript<br /> - TensorFlow.js(bodyPixを利用しました)</p> <p>今回、作ってて思ったのですが、このアプリでNext.js + TypeScriptは明らかにオーバースペックすぎました。笑<br /> ただ、TensorFlow.jsをNext.jsで使ってる例が調べる限りではなさそうだったので、個人的に良いテンプレができたんじゃないかなと思います。(今後使うかはさておき)</p> <h2>技術的なこと</h2> <p>tensorflow.jsのbodyPixでは背景をぼかしたり、色を塗ったりということは予め用意されている関数を使えばすぐにできます。<br /> 以下<a target="_blank" rel="nofollow noopener" href="https://github.com/tensorflow/tfjs-models/tree/master/body-pix">公式</a>より。</p> <pre><code>const img = document.getElementById('image'); const net = await bodyPix.load(); const segmentation = await net.segmentPerson(img); // The mask image is an binary mask image with a 1 where there is a person and // a 0 where there is not. const coloredPartImage = bodyPix.toMask(segmentation); const opacity = 0.7; const flipHorizontal = false; const maskBlurAmount = 0; const canvas = document.getElementById('canvas'); // Draw the mask image on top of the original image onto a canvas. // The colored part image will be drawn semi-transparent, with an opacity of // 0.7, allowing for the original image to be visible under. bodyPix.drawMask( canvas, img, coloredPartImage, opacity, maskBlurAmount, flipHorizontal); </code></pre> <p>ただ、背景をくり抜く部分はなかなかに苦戦して、結構時間がかかりました。<br /> 最終的に、描画部分のcanvasの他にもう一つcanvas要素を用意してcanvasのdestination-outを利用したらなんとかなりました。</p> <p>以下みたいな感じです。</p> <pre><code> const drawimage = async ( webcam: HTMLVideoElement, context: CanvasRenderingContext2D, canvas: HTMLCanvasElement ) => { webcam.width = canvas.width = webcam.videoWidth; webcam.height = canvas.height = webcam.videoHeight; const tempCanvas = document.createElement("canvas"); tempCanvas.width = webcam.videoWidth; tempCanvas.height = webcam.videoHeight; const tempCtx = tempCanvas.getContext("2d"); (async function drawMask() { requestAnimationFrame(drawMask); const segmentation = await bodypixnet.segmentPerson(webcam); const mask = bodyPix.toMask(segmentation); tempCtx.putImageData(mask, 0, 0); context.drawImage(webcam, 0, 0, canvas.width, canvas.height); context.save(); context.globalCompositeOperation = "destination-out"; context.drawImage(tempCanvas, 0, 0, canvas.width, canvas.height); context.restore(); })(); }; </code></pre> <p>こちら詳細はqiitaに書いてるので、よければご確認下さい。<br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/yuikoito/items/bb9c40bbb673e4f71abe">https://qiita.com/yuikoito/items/bb9c40bbb673e4f71abe</a></p> <h2>あとがき</h2> <p>TensorFlow.jsを使ったアプリ開発は<a target="_blank" rel="nofollow noopener" href="https://qiita.com/yuikoito/items/b8062b9f89f72c6865ed">顔にマスクをかけるアプリ</a>に引き続き2つ目でした!<br /> 機械学習など全くわからん私でも公式を読みながら実装できたので、非常にありがたいライブラリだなと思います。</p> <p>ただ、どうしても人物の輪郭ぴったりにくり抜いて、とまではできなかったので、google meetの実装方法が気になる今日このごろです。</p> <p>それでは、最後までお読みいただきありがとうございました!良いバケーションを!</p> YuikoIto tag:crieit.net,2005:PublicArticle/1cfb5ad3e26fbb63fd07f1edda86af4c 2021-07-25T19:35:56+09:00 2021-07-25T19:35:56+09:00 https://crieit.net/boards/web1week-202107/1cfb5ad3e26fbb63fd07f1edda86af4c おやすみの計画はフローチャートで作る。そんな時代。 <h1>何を作ったか</h1> <p>簡単に簡単なフローチャートを作れる簡単なWebアプリケーションです。<br /> <a target="_blank" rel="nofollow noopener" href="https://mystifying-thompson-b2b252.netlify.app/">https://mystifying-thompson-b2b252.netlify.app/</a></p> <p><a href="https://crieit.now.sh/upload_images/02de7685b467cacae82b0ad508e5d5c660fd371fc0c82.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/02de7685b467cacae82b0ad508e5d5c660fd371fc0c82.png?mw=700" alt="スクリーンショット 2021-07-25 18.52.28.png" /></a></p> <p>上のヘッダー部分にある[ADD BOX]からボックスを追加して、線を繋いでいくだけでフローチャートが作れます。</p> <p>フローチャートの保存[SAVE]と読み込み[LOAD]にも対応してますが、バックエンドがないのでjson形式でガッツリダウンロードされます。</p> <p>大してテストしてないので意図しないタイミングでエラーが出るかも知れません。すみません。</p> <h2>開発内容</h2> <h3>期間</h3> <p>web1weekに参加すると決めた後、ビックリするぐらい堕落してたので、最終日の昼12時ぐらいから作り始めました。</p> <h3>技術</h3> <p>なんとなく、「フローチャートって作るの大変そう」ってイメージがありますが、一番大変な描画部分は<a target="_blank" rel="nofollow noopener" href="https://reactflow.dev/">React Flow</a>というライブラリがあるので、基本的にはこれに乗ってしまっています。</p> <p>あとはノードやエッジをカスタマイズして、編集機能や保存機能、読み込み機能を作っていっただけです。</p> <p>なので、今回のはReact Flowの技術調査という感じでサンプルアプリを作った、というのがイメージに近いかもしれません。</p> <p>UIは<a target="_blank" rel="nofollow noopener" href="https://material-ui.com/">Material-UI</a>です。(いつも同じの使ってるので代わり映えしませんが……)</p> <p>終わったら<a target="_blank" rel="nofollow noopener" href="https://www.netlify.com/">Netlify</a>に突っ込みました。</p> <h2>作り終わって</h2> <p>さすがにもう「ごめんなさい」しようと思ったのですが、なんとかやっつけられて良かったです……。</p> <p>まだ全然web1weekの作品を追えていないので、<br /> これから回っていこうと思います。</p> <p>毎回主催していただいている @dala さんありがとうございました!</p> iotas𓆡創作支援アプリ運営中𓅬 tag:crieit.net,2005:PublicArticle/3bdf895febf36f7079d3b78127f4dbab 2021-07-25T17:26:06+09:00 2021-07-25T17:32:14+09:00 https://crieit.net/boards/web1week-202107/3bdf895febf36f7079d3b78127f4dbab ロンバケのキムタクに挑戦! <h2>お題は『バケーション』さあどうする?</h2> <p>今回が2回目の参加です。<br /> よろしくお願いします( `・∀・´)ノヨロシク</p> <p>バケーションと聞いてみなさん何を連想します?<br /> 私は最初『バケーション・・・夏休み・・・うーん、BBQの飯テロ画像でも返えすサイトでも作ろうかな』くらいに感じたのですが、それと同時にあるテーマソングが流れました・・・</p> <p><strong>『まわれーまーわれーめりーごらん♪』</strong></p> <p>ええ、ロングバケーションのメインテーマソングである、久保田利伸の『LA・LA・LA LOVE SONG』が脳内に再生されたんです。</p> <p>(一応知らない人のために記載しておくと、96年にキムタクと山口智子が共演したドラマですw)</p> <p>その事をプログラミングコミュニティ『にゅ~ぶる会』のSlackで呟いたら・・・</p> <p>素麺会長から『スーパーボール投げまくれるやつ、作って』と。</p> <p><a href="https://crieit.now.sh/upload_images/34321afa1bb959f5b002bdb577f103f660fd19e1a8d06.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/34321afa1bb959f5b002bdb577f103f660fd19e1a8d06.jpg?mw=700" alt="image" /></a></p> <p>実は歌は流れたものの、ドラマの内容はイマイチ知らない私w</p> <p>そう言われてググりました。</p> <p>そしたら、第一話でキムタクと山口智子がマンションの3階からスーパーボールを投げてキャッチするシーンがあるんですね~👀</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=q6okyxFQAGE">youtubeで見つけたのでリンク置いておきます</a></p> <p>これを作れと?</p> <p>いや、否定から入ってはいけませんねw</p> <p><strong>作ってと言われたら、作って見せるのが男というものでしょう!</strong></p> <p>という事で、今回作くるものが決まりました(●´ω`●)</p> <h3>今回のWebサービスは『キムタクに挑戦!スーパーボールを投げまくれるWebサービス』です</h3> <p>元々今回はVue.jsを使ってみたいと思っていたので、Vueを使ってスーパーボールをマンションの3階から投げてキャッチするというゲームを作る事にしました。</p> <p>で、キムタクになりきるため(笑)視点は一人称・・・つまりFPS視点で制作する事としました。</p> <p>私自身はほとんどVueを触った事がない(というより、チュートリアルしかやってない)状態だったんで、要所要所で手間取りながらの製作となりましたが、なんとかコミュニティメンバーの力を借りつつ形にはなりました・・・。</p> <p><a href="https://crieit.now.sh/upload_images/34321afa1bb959f5b002bdb577f103f660fd21332419e.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/34321afa1bb959f5b002bdb577f103f660fd21332419e.jpg?mw=700" alt="image" /></a></p> <p><a target="_blank" rel="nofollow noopener" href="http://web1weekpart2.takuchan.club/">出来上がったものはコチラ</a></p> <p>(html、CSS、Vue,js)</p> <p>余談ですが、背景画像は私の住むマンションだったりします。<br /> 本心は作中の投げているシーンから背景画像を拝借したかったんですが、それをすると著作権とか肖像権とか関わってきますからね・・・私自身が3階に住んでいるという事もあり、弊マンションの画像を使うという事にしました・・・(笑)</p> <p>時間がもう少しあれば、投げる力の強弱を表現したり、ボールの跳ね返り方にランダム性も持たせたり、細かい機能を追加したかったんですがね、さすがに1週間で・・・それもロクに触った事がないVueで作る事は難しかったですね。</p> <p>しかし今回の制作でVueとはお友達になれた気がするので、今後はぜひ活用したいFWであります。</p> <p>以上、最後までご覧いただきありがとうございました。</p> 拓ちゃん🐶釣り人のためのWebサービス制作中!🗾岩手 tag:crieit.net,2005:PublicArticle/9502faa2913b56b2a5e1cde25848bca2 2021-07-25T17:14:00+09:00 2021-07-25T17:14:00+09:00 https://crieit.net/boards/web1week-202107/9502faa2913b56b2a5e1cde25848bca2 みんなのバケーション、略してみんバケ! <p>待ちに待った休日。<br /> さあ、思いっきり楽しむぞと意気込むも、何をしたらいいかわからず惰性で過ごしてしまう...</p> <p>せっかくのバケーションがもったいない。</p> <p>貴重なバケーションを無駄にしないために、あなたのバケーションアイデアをシェアして、みんなのバケーションを充実させましょう!</p> <p>やりたいことや、やってみたら楽しかったことなどを投稿してください。</p> <p>ログインすれば、自分だけのマイバケーションが作れますよー</p> <p><a target="_blank" rel="nofollow noopener" href="https://minnnano-vacation.herokuapp.com/">みんバケ!</a></p> <p><a href="https://crieit.now.sh/upload_images/f451156fd84b91b55a9faaafc8ca381060fd1cd6a41a6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f451156fd84b91b55a9faaafc8ca381060fd1cd6a41a6.png?mw=700" alt="image" /></a></p> Webヤモリ tag:crieit.net,2005:PublicArticle/The-World-Tour 2021-07-25T14:48:35+09:00 2021-07-25T14:52:04+09:00 https://crieit.net/boards/web1week-202107/The-World-Tour The World Tour <p><a href="https://crieit.now.sh/upload_images/8c682396f1b6285e0092b1af19c9587c60fcfb6ea9ead.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8c682396f1b6285e0092b1af19c9587c60fcfb6ea9ead.png?mw=700" alt="image" /></a>コロナ渦でバケーションといっても<br /> 旅行などなかなかいけない状況が続いていますよね<br /> そんな中でアメリカのディズニーワールドをwebで歩くことができ<br /> また、施設などのレビューも一緒に楽しめたらなと思い作成しました!<br /> 事業を手伝ってくださる友人との共同制作です<br /> 友人には施設情報の取得やストリートビューから下の部分を担当していただきました<br /> Twitter:@yuyuyu_popo<br /> Twitter投稿主:@UNICO_PROj<br /> 是非夢の国の旅をお楽しみください!<br /> <a target="_blank" rel="nofollow noopener" href="https://unicounique.sakura.ne.jp/worldtour/">入り口はこちら</a></p> MotoyaWakiyama tag:crieit.net,2005:PublicArticle/web1week-60fcf4f60effb 2021-07-25T14:21:58+09:00 2021-07-25T14:23:16+09:00 https://crieit.net/boards/web1week-202107/web1week-60fcf4f60effb 旅行の予定をたてよう <h2>旅行の予定をたてよう</h2> <p>初めてweb1weekに参加させていただきます。<br /> PHPを使用して、旅行の予定をたてるwebアプリの作成に挑戦しました。</p> <p><a href="https://crieit.now.sh/upload_images/624e2fb8d9ee75cb6f9cde941dc52b2360fcf36faba9b.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/624e2fb8d9ee75cb6f9cde941dc52b2360fcf36faba9b.JPG?mw=700" alt="image" /></a></p> <p>webアプリは<a target="_blank" rel="nofollow noopener" href="http://dabahashi.php.xdomain.jp/1week/index.php">こちらです</a></p> <h2>使い方</h2> <p>ページごとに選択肢が現れるので、好きなものを選び、「たびのしおり」を作成してください。</p> <p>内容の確定後、「復活の呪文」が発行されます。これをトップページのフォームに入力することで、ページを閉じた後でも「たびのしおり」を見直すことができます。</p> <p>それではみなさん良い旅を~</p> ヤギ