GithubHelp home page GithubHelp logo

kobayashitakaki / shasin-sns Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 7.67 MB

InstagramのようなSNS(ポテパンキャンプ課題)

Ruby 64.72% JavaScript 1.08% CSS 3.97% HTML 27.53% CoffeeScript 2.70%

shasin-sns's Introduction

Instagramクローン作成

こちらにデプロイしています。
https://shasin-sns.herokuapp.com/
テスト用ユーザーを用意していますので、試してみてください。

これは何か?

ポテパンキャンプの課題の1つとして取り組んだ、
「Instagramのクローンアプリ制作」の成果物です。
ログイン、写真の投稿、ユーザーのフォロー、コメント、いいね、といった、
SNSとして必要な機能を実装しました。

製作期間

課題の概要としては、
「Instagramのクローンを自分で作る。2週間経過時点で提出。」
というものでした。
なんとか2週間で一通りの機能を実装することが出来ました。

機能

  • email/passwordによる認証
  • Facebookによるログイン(gem "devise")
  • 画像の投稿
  • プロフィール画像の設定
  • 画像のストレージとしてAmazon S3を使用
  • ユーザーのフォロー
  • 投稿へのコメント
  • 投稿へのいいね
  • コメント、いいねのAjax通信

Facebookログインについては、セキュリティポリシーを明記しないと
APIを使わせてもらえなくなってしまうため、
現在は無効化した状態でデプロイしています。

こだわったところ

サイトデザイン

ホーム画面とプロフィール画面は本家を参考に、
bootstrapとFont awesomeでできる限り似せました。
レスポンシブデザインにしました。
(投稿画面やプロフィール編集画面については手が回りませんでしたが・・・)

Ajax

以下についてAjaxを使うようにしました。

  • いいね、いいね取り消し
  • コメント、コメントの削除
  • いいねしたユーザー一覧表示
  • プロフィール画面での写真の詳細表示

コメント

Railsチュートリアル完了時点で取り組んだ課題で、
初めて自分でアプリケーションを一から開発する機会になり、なかなか苦労しました。
特にJavascript周りはRailsチュートリアルでは扱わないので、
かなり調べました。
(CoffeeScriptの文法や、Turbolinksの扱い)

RailsのMVC周りについては、Railsチュートリアルのコードを参考に実装し、
良い復習になったと思います。
また、いいね、コメントについてはRailsチュートリアルでは扱わないため、
モデルの設計から行うことになり、Railsを扱う良い練習になりました。

以下、2週間経過時点でのレポート文を載せています。


苦労した点

  1. フロントエンドの実装
  • htmlのclass, id, CSSの設定

行き当たりばったり的に実装してしまい、雑然としている そのためテンプレートに変更を加えた際に意図した動作をしなくなることがあった

  • form送信とjsクリックイベント

送信されない、反応しない、htmlのリクエストになってしまう、等

  1. ログインの実装
  • facebook for developers

リダイレクトURL等の設定に悩んだ

  • devise

使い方が難しい

  1. デプロイ
  • herokuのエラーに悩んだ
  • AWSの設定に悩んだ

学んだ点

  1. ujsによりajax的にページを更新できるようになった

  2. bootstrapによるレイアウトが上達した

自慢したい点

  1. フィードのデザイン
  • InstagramのWebページをできるだけ真似した
  1. できるだけajax的に動作するようにした
  • いいね、コメント、フォロー/アンフォローに関する箇所

いまいちな点

  1. テストを全く書いていない
  • 機能の実装を優先してしまった
  1. ユーザーに関する機能
  • email/passwordによる認証画面を作っていない
  • メール送信を使う機能を実装していない
  • パスワード変更ができない
  1. フィード以外のデザイン
  • 投稿、ユーザー設定画面が雑
  • deviseのflashが雑に出てしまう
  1. jsのコーディング
  • 行き当たりばったりで実装してしまい、かなり見通しが悪い気がする

相談したい点

  1. ujs, scssのコーディングのお作法が知りたい
  • モデル毎にファイルがあるが、どう使い分けるか
  • イベントハンドラの登録はもっとスマートにできないか

shasin-sns's People

Contributors

kobayashitakaki 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.