All Projects → Hirochon → Shappar

Hirochon / Shappar

Licence: other
気軽に投票を【取れる】【見れる】【できる】アプリです。

Programming Languages

python
139335 projects - #7 most used programming language
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
SCSS
7915 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Shappar

Vue People
VuePeople lists and connects Vue.JS developers around the world.
Stars: ✭ 167 (+659.09%)
Mutual labels:  circleci, django-rest-framework
Rubel
Rubel is a cms built with Laravel and React.
Stars: ✭ 70 (+218.18%)
Mutual labels:  circleci, single-page-app
drf-turbo
An alternative serializer implementation for REST framework written in cython built for speed.
Stars: ✭ 73 (+231.82%)
Mutual labels:  django-rest-framework
tscharts
Django REST framework-based Digital Patient Registration and EMR backend
Stars: ✭ 14 (-36.36%)
Mutual labels:  django-rest-framework
zimagi
Zimagi - Modular Data Integration, Processing, and Distribution Platform
Stars: ✭ 15 (-31.82%)
Mutual labels:  circleci
jquery-spa-example
Example Single Page Application build with jQuery
Stars: ✭ 27 (+22.73%)
Mutual labels:  single-page-app
wordpress-svelte
Frontend writen on svelt
Stars: ✭ 17 (-22.73%)
Mutual labels:  single-page-app
peasy-js-samples
Showcases business logic built with peasy-js and consumed by multiple clients
Stars: ✭ 19 (-13.64%)
Mutual labels:  single-page-app
django-logic
Django Logic - easy way to implement state-based business logic with pure functions
Stars: ✭ 44 (+100%)
Mutual labels:  django-rest-framework
rest-framework-latex
A LaTeX renderer for Django REST Framework
Stars: ✭ 30 (+36.36%)
Mutual labels:  django-rest-framework
oms cms
A Django content management system focused on flexibility and user experience
Stars: ✭ 18 (-18.18%)
Mutual labels:  django-rest-framework
bzkanban
🔪 Kanban board for Bugzilla 5+
Stars: ✭ 39 (+77.27%)
Mutual labels:  single-page-app
django-firebase-auth
Django DRF authentication provider for Google's Firebase Authentication Service
Stars: ✭ 50 (+127.27%)
Mutual labels:  django-rest-framework
django-parler-rest
Translatable model support for django-rest-framework
Stars: ✭ 48 (+118.18%)
Mutual labels:  django-rest-framework
open
The most boring open source you've ever seen ....
Stars: ✭ 109 (+395.45%)
Mutual labels:  django-rest-framework
ci-build-trigger
A trigger of bundle update
Stars: ✭ 32 (+45.45%)
Mutual labels:  circleci
dr scaffold
scaffold django rest apis like a champion 🚀
Stars: ✭ 116 (+427.27%)
Mutual labels:  django-rest-framework
django-final
source code for django-final course
Stars: ✭ 28 (+27.27%)
Mutual labels:  django-rest-framework
phx-auth-api
Authentication for Phoenix with JWT, user privileges and CI
Stars: ✭ 13 (-40.91%)
Mutual labels:  circleci
kblog
⚡ My Blog · 3 KB · Single Page · Material Design
Stars: ✭ 79 (+259.09%)
Mutual labels:  single-page-app

Shappar(しゃぱー)

URL

料金がかかるため現在は稼働しておりません。

イメージ図

Screenshot from 2020-05-23 17-29-29

概要

気軽に投票を【取れる】【見れる】【できる】アプリです。

《操作が分かりやすい》

  1. 質問を簡単操作で投稿
  2. ワンタップで気軽に投票
  3. 結果の情報が多いので次も投票したくなる!

使用例

とある日のAさん

Aさん(主婦さん):今日の晩御飯ハンバーグかカレーライスだと家の娘はどっちが喜ぶかな...?(質問を投稿)
Bさん(10代女性):ハンバーグ!(回答を投票)
Cさん(10代女性):ハンバーグ!(回答を投票)
Aさん:じゃあハンバーグにしよう!(結果の情報→10代女性が多い)

このような意思決定を簡単にできます!気軽に投票を集めてみよう!

実装した機能

SPA(シングルページアプリケーション)

  • Vue.js × Django REST FrameworkによるREST APIで実装
  • VueCLIによりビルドした静的ファイルをS3にデプロイ、CloudFrontにて配信
  • DjangoをAPIサーバーとして使用

URI設計

  • エンドポイントは直感的に分かりやすいように設計しました。

デザイン

  • Hirochonとfujiya228とで議論の上で決定
  • マテリアルデザインを参考
  • メインカラーとサブカラーを決定することでアプリの独自性を記憶してもらう
  • レスポンシブデザインに対応

投稿一覧画面

  • デザイン
    • ボタンをアイコン中心に作成→ユーザーに投稿(質問や回答の内容)の文字に集中させたい
  • 非同期のページネーション機能
    • 一番下の投稿の投稿IDをクエリパラメータとしてGETリクエストすることにより実装
    • スクロールしているページの途中でリクエストすることによりスムーズな読み込みを実現
  • PullToRefresh機能
    • スクロールしていない状態(画面一番上)で画面を下に引っ張ることで更新を実現
  • 投稿一覧表示機能
    • シンプルな色使いで長期間使用も可能
    • アイコン画像を表示する→投稿(質問)したユーザーの質問意図の情報量を増加
    • 投稿(質問)したユーザー投票したユーザーにしか結果は見れない→投票する意欲を増加
    • 投票合計数のみ全てのユーザーに表示する→投票結果が多い場合に投票する意欲を増加
  • 投票機能
    • ワンタップで投票可能→煩わしい操作は不要
    • 投票した瞬間結果が見れる→結果をすぐに表示することで次の投票も期待
  • 投票結果のソート/更新機能
    • 投票の番号順・投票数の多い順・少ない順に対応
    • 投稿ごとに更新を可能に
  • 投票したユーザーの詳細情報取得機能
    • 投票したユーザーの情報を可視化
    • 急に【デザインを明るく】【グラフに動きをつける】ことで、アプリの中で驚きを与えたい!
    • こちらも投稿(質問)したユーザー投票したユーザーにしか結果は見れない→投票する意欲を増加
  • 検索機能
    • クエリパラメータをGETリクエストすることで実装
  • 投票数のランキング機能
    • ランキングを作ることでユーザーの投票/投稿意欲を向上

投稿画面

  • ユーザー目線のバリデーション
    • 文字制限がわかるように常に表示
    • 回答の選択肢に何も記入していなくても投稿可能(記入していない箇所は自動削除)
    • タップできなくするを採用(ワンタップ動作が必要なポップアップはできるだけ使わない)
  • 下書き保存機能
    • ローカルストレージに保存することで実装
  • スライド削除機能
    • スライドで回答選択肢を削除できることによりスマホユーザーの操作性向上

マイページ画面

  • 鉄板のマイページ機能
    • ホーム画像や自己紹介欄
    • ユーザーの設定画面にはアップロード画像の見本が見れる
  • 投稿一覧表示機能
    • 訪れたマイページのユーザーが投稿(質問)した投稿の一覧を表示
  • 投票した投稿一覧表示
    • 訪れたマイページが自分自身のマイページだった時は、自分が投票した投稿の一覧を表示

テスト

  • バックエンド
    • ビュー: エンドポイントへのテストはほとんど網羅。エラーハンドリングテストも。
    • シリアライザ
  • フロントエンド

使用技術

フロントエンド

  • Vue.js: 2.6.11
  • Vue CLI: 4.1.2
  • Storybook
  • Sass(scss)
  • HTML/CSS

バックエンド

  • Python: 3.8.1
  • Django: 2.2.10
  • Django REST Framework: 3.11.0

インフラ

  • インフラ構成図 Shappar Diagram

  • AWS

    • ECS / ECR / ALB / EC2 / VPC / RDS(PostgreSQL) / S3 / CroudFront / Route53 / ACM / SES / CloudWatch
      • ECSのデプロイメントタイプでローリングアップデートを採用することでアップデートした際も稼働し続けられる
      • PostgreSQL: 11.5
  • Docker

    • Docker: 19.03.8
      • ボリュームによるコンテナ間のデータ共有
    • docker-compose: 1.16.1
      • ローカル環境構築
  • CircleCI

    • 自動テスト
      • masterブランチ以外へのブランチへマージすることでテスト開始
    • 自動デプロイ
      • masterブランチへのマージによりECR/ECS/S3へデプロイ
      • Orbsを用いたデプロイを実装
  • Nginx(Webサーバー)

    • ロードバランサーとしての負荷分散
    • ヘルスチェッククリア
  • Gunicorn(アプリケーションサーバー)

その他ツール

  • タスク管理
    • GitHub Projects
  • API仕様書
    • OpenAPI(Swaggar)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].