Code Monkey home page Code Monkey logo

codeforelection_front's People

Contributors

ayuki-joto avatar gouf avatar halsk avatar hiroki-mizukami avatar hkwi avatar masahikohyodo avatar nyampire avatar rish314 avatar takahashim avatar tetsuyas1 avatar ts020 avatar yokinist avatar ypresto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codeforelection_front's Issues

項目追加(前回、届け出順、比例代表、過去の当選歴)

  • 立候補したかどうか:is_candidate(boolean)true; 立候補
  • 前回: current_position(integer) 0: 現職、1;新人
  • 届け出順(検索結果一覧での表示順で利用): submission_order(integer)
  • 比例代表との重複: is_hirei (boolean)
  • 過去の当選歴:winning_history(string) 改行区切りで当選回数を算出予定

HTMLのTITLE

HTMLのTITLEに入れるやつを何にしましょうか。
ドメイン名である「kouhosha.info」を使い、以下のように考えています。

  • TOP画面「トップページ | kouhosha.info」
  • 検索結果一覧「○○県第○選挙区の候補者一覧 | kouhosha.info」
  • 候補者詳細「山田太郎〈候補者名フル名〉 | kouhosha.info」

リンクを貼るとアイコン間の間隔がずれる

リンクが無い状態だと3つのアイコンは等間隔に表示されるが、リンクが1つでもあると等間隔でなくなる。例えば下記の画像は、OfficialWebSiteのアイコンのみリンクが貼ってある。

_ ___kouhosha_info

GrayDB(GoogleSpreadSheet)からのインポート方法について

現状の処理についての質問

15分に1回読み取るようなことをもくもく会で行ってましたが、
レポジトリのどの辺見たら詳細わかりますか?

実際のインポートに向けた準備について

  • 相談できればと思っています。

K列「前回」欄の「現在」対応

GrayDBのK列「前回」欄はどなたか何らかのマッチングで機械的に埋めて頂くことは可能でしょうか。「新」「前」「元」の3種で良いかと思いますが。

「新」「前」は対応済みだが、「元」は未対応。また、入ってくるデータによっては、取り込み用のスクリプトを修正する必要がある。

候補者のDBカラム名決定

データチームに確認したところ、自由に決めても良いが、GrayDBの「UI用DBカラム名」に記載してほしいとのこと。

TOPページにサイトの目的を記載

現在は、「Code for 選挙」という文字と郵便番号検索用のフォームのみがトップページに表示されている。サイトの目的や運営元くらいは記載しても良いのではないか。

候補者に選挙区が正しく紐付いていない

mysql> SELECT id, wikidata_id, senkyoku_id FROM `candidates` WHERE `candidates`.`senkyoku_id` = 321;
+-----+-------------+-------------+
| id  | wikidata_id | senkyoku_id |
+-----+-------------+-------------+
| 388 | Q7497524    |         321 |
+-----+-------------+-------------+
1 row in set (0.01 sec)

mysql> select * from senkyokus where pref_code = 23 and senkyoku_no = 11;
+-----+-----------+-------------+----------+---------------------+---------------------+
| id  | pref_code | senkyoku_no | zip_code | created_at          | updated_at          |
+-----+-----------+-------------+----------+---------------------+---------------------+
| 321 | 23        |          11 | 471      | 2017-10-09 10:59:29 | 2017-10-09 10:59:29 |
| 323 | 23        |          11 | 473      | 2017-10-09 10:59:29 | 2017-10-09 10:59:29 |
+-----+-----------+-------------+----------+---------------------+---------------------+
2 rows in set (0.01 sec)

上記の場合、郵便番号 471 で検索した場合はヒットするが、郵便番号473 で検索した場合は、ヒットしない。本来であれば、471 473 の両方でヒットする必要がある。

GrayDB: 比例ブロックコードのカラムを追加しても問題ないでしょうか?

codeforjapan/codeforelection#50 から来ました。

GrayDBの候補者シートには、現状比例ブロックコードのカラムがないため追加したいのですが、新しいカラムを追加してもfront側のデータインポートに支障はないでしょうか?

lib/tasks/import_graydb.rake を見る限りでは、データはカラム名から持ってきているようなので追加しても大丈夫そうですが、念のため確認です。

選挙区データ変更

現在は軽量版(postal2senkyoku.light.json)を利用しているが、フル版(postal2senkyoku.json)を利用するように変更する。

12万件の郵便番号データを利用し、インポートに時間を要することから、インポート方法を工夫する。

「森山𥙿」がインポートできない

森山𥙿氏の「𥙿」は「しめす偏に谷」だそうです。
https://ja.wikipedia.org/wiki/%E6%A3%AE%E5%B1%B1%E8%A3%95

これはUnicodeではU+2567Fで、BMPの範囲外になり、サロゲートペアでなければ表示できません。
http://glyphwiki.org/wiki/u2567f
http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=2567f

そのため、MySQLに投入する時点でエラーになっているようです。

$ bundle exec rake graydb:import
["UI用DBカラム名", "name_full", "name_last", "name_first", "name_alias", "name_full_furigana", "pary_id", nil, "party_history", "is_candidate", "current_position", "submission_order", nil, "pref_code", "senkyoku_no", "hirei_area_id", nil, "candidacy_history", "winning_history", "gender", "birth_day", nil, "birth_year", "photo_url", "twitter_id", "facebook_id", "facebook_page_id", "line_id", "youtube_channel_id", "instagram_id", "offiicial_website_url", "email", "official_blog_url", "reference_url", "birth_place", "educational_background", nil, "occupation", "position_held", "father", "spouse", nil, "url_wikidata", "url_wikipedia", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]

Mysql2::Error: Incorrect string value: '\xF0\xA5\x99\xBF' for column 'name_first' at row 1: INSERT INTO `candidates` (`name_first`, `name_last`, `name_first_furigana`, `name_last_furigana`, `party_id`, `gender`, `birth_day`, `birth_year`, `official_website_url`, `created_at`, `updated_at`, `wikidata_id`, `is_candidate`, `current_position`, `winning_history`, `hirei_area_id`) VALUES ('𥙿', '森山', 'ひろし', 'もりやま', 12, 1, '1945-04-08', 1945, 'http://www.moriyama-hiroshi.jp/', '2017-10-12 14:45:44', '2017-10-12 14:45:44', 'Q337762', 1, 1, '1975年鹿児島市議会議員補欠選挙\n第18回参議院議員通常選挙\n2004年衆議院鹿児島5区補欠選挙\n第44回衆議院議員総選挙\n第45回衆議院議員総選挙\n第46回衆議院議員総選挙\n第47回衆議院議員総選挙', 11)
#<ActiveModel::Errors:0x007fb2ba350c68 @base=#<Candidate id: nil, name_first: "𥙿", name_last: "森山", name_first_furigana: "ひろし", name_last_furigana: "もりやま", party_id: 12, senkyoku_id: nil, gender: 1, birth_day: "1945-04-08", birth_year: 1945, twitter_id: nil, facebook_id: nil, official_website_url: "http://www.moriyama-hiroshi.jp/", photo_url: nil, created_at: "2017-10-12 14:45:44", updated_at: "2017-10-12 14:45:44", wikidata_id: "Q337762", is_candidate: true, current_position: 1, submission_order: nil, winning_history: "1975年鹿児島市議会議員補欠選挙\n第18回参議院議員通常選挙\n2004年衆議院鹿児島5区補欠選挙\n...", hirei_area_id: 11>, @messages={}, @details={}>

解決策

  1. MySQLの文字コードをutf8からutf8mb4にすればよい?(で、あってます? MySQLはあんまり詳しくないので…)
  2. 「裕」(U+88D5)にする
  3. 「ひろし」にする

1で解決できそうなら1が良いと思いますが、どうなんでしょう?

宜しければリンク一本貼らせてください

別企画で期日前投票所マップっていうの作ってまして、
「候補者ナビで出馬者の情報を見る > 当日予定があっても、期日前で投票しよう」
的に連携できたら嬉しいです(単にリンク一本頂ければ可です)。

こちらでも「期日前投票に行く前に、候補の情報を確認しよう」と、候補者ナビを紹介できるので、互いにアクセスを流し合う感じに出来れば。

明日から活動始めて、全部揃うメドが13日頃、先行リリースは10日の予定です。

※なお単純なgooglemapなので、より上等なものにしれくれる人がいたらそれもウレシイ…

アーキテクチャの決定

ユーザ向けサイトのアーキテクチャを決定する。

  1. 高負荷に耐えられるような構成にする。Static Page Generatorを利用した静的なサイト生成を主とする。CDNの活用も検討する。
  2. 郵便番号から選挙区の検索については、WebAPI+Javascriptで行う。

データベース設計

【目的】
ユーザが利用するシステムは、通常のWebアプリケーション形式とするため、DBスキーマの作成を行う。

【アウトプット】
ER図

【作成手順】
データ構造が正式に決定していないので、しばらくは以下のデータに関して、最小限のDBスキーマの作成を行っていく。

  • 政治家の情報
  • 選挙区に関する情報
    • postal2senkyoku.json
    • city2senkyoku.json

MySQL utf8 対応

現在

mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

my.cnfファイルを作成して、Dockerfileに設定追加したら良いのは分かっているのですが、いまいちわからないところがあるので、誰かやり方教えてください。

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

必要なmy.cnf

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

https://qiita.com/YusukeHigaki/items/2cab311d2a559a543e3a

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.