42
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【個人開発】不幸な体験を暴露してお金をもらうアプリを作ってみた

Last updated at Posted at 2021-11-14

はじめに

ogp.png

皆さんにお聞きします。
何か不幸な体験をして、それを友達や家族に話したとき、一度は「同情するなら金くれよ!!」と思ったことあるのではないでしょうか?

そんな不幸な体験をされた人たちが「少しでも報われたら」という思いでクソアプリを作りました。


アプリの使い方

自分が体験した不幸を投稿し、twitterでシェアします。
「みんなの不幸一覧」を押すと、投稿された記事を全て見ることができます。

Image from Gyazo

記事を選択して詳細画面の中にある「¥100」ボタンを選択すと、投稿された記事に非同期でお金が入るようになっています。
この処理を一番こだわりました。

Image from Gyazo

「¥100」ボタンのコードの中身

「¥100」ボタンの中身のコードはこんな感じになっています。(コード汚くてごめんなさい...)

boards_controller

def likes
  @board = Board.find(params[:board_id])
  @like = @board.likes + 100
  @board.update(likes: @like)
end

show.html.erb

<span id="js-board-likes-<%= @board.id %>"><%= @board.likes %></span>

<%= link_to board_likes_path(@board), class: "level-item", method: :post, remote: true do %>
  <button class="btn-circle-3d-emboss button is-large fas fa-yen-sign mt-3 mb-6">100</button>
<% end %>

下記記述でパッと見ダブルクオーテーションが変な位置についてるように見えますが、Rubyのコードが反映されるようにしています。

$("#js-board-likes-<%= @board.id %>").replaceWith("<span id=js-board-likes-" + <%= j(@board.id) %> + ">" + <%= j(@board.likes) %> + "</span>");

使用技術

バックエンド

  • Ruby 2.7.2
  • Rails 6.1.4

フロントエンド

  • HTML
  • CSS
  • jQuery
  • BULMA

主要なgem

  • rubocop
  • pry-rails
  • pagy
  • meta-tags
  • webpacker

デプロイ

Heroku

データベース

PostgreSQL

最後に

今回製作したアプリは、元々CRUDの復習を目的としていて、アプリとしてリリースする予定はありませんでした。
実装していく過程で少しずつプログラミングの楽しさを感じることができ、「2週間で作り切る」という目標を掲げてリリースしたことで、一つ自信に繋げることができました。

次作も「締切駆動開発」を意識し、また人に遊んでもらえるサービスを作っていきたいと思います。

最後まで読んでいただきありがとうございました。

Twitter:https://twitter.com/wataru_pgm

42
16
2

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
42
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?