# いそっち道場設計書
## 目的
簡単なアプリケーションを作ってみよう
## 機能要件
1. DBにGroupを作成する
2. DBにユーザーを作成する
3. DBにツイートを作成する
4. DBからグループごとにユーザー情報を取得する
5. DBからユーザーごとにグループ情報を取得する
6. DBからユーザーごとの緯度経度を取得する
7. DBからグループごとの緯度経度を取得する
## 技術選定
### 根拠
言語を全てJavaScriptに揃えた。
懸念点としては非同期処理に躓く可能性有。
しかしながら複数の言語を覚えるコストと比較してそのコストは低いものと思料。
DBは情報量が多く、オーソドックスなMySQLを使用。
### DB
- MySQL
### バックエンド(API)
#### フレームワーク
- Express.js
#### ライブラリ
- Bookshelf.js: ORマッパー
- Moment: Dateオブジェクト管理
### フロントエンド
#### フレームワーク
- Vue.js
#### ライブラリ
- Axios: HTTP Client
- Moment: Dateオブジェクト管理
### バックエンド(クローラ)
#### フレームワーク
- なし
#### ライブラリ
- Axios: HTTP Client
- Bookshelf.js: ORマッパー
- Moment: Dateオブジェクト管理
- Twitter: Twitter Client
## API設計
https://storage.googleapis.com/isocchi-dojo/dist/index.html
## DB設計
https://storage.cloud.google.com/isocchi-dojo/yoshi.pdf?hl=ja
## 実装手順
1. DB構築
2. API開発
3. フロントエンド開発
4. クローラー開発
# いそっち道場 DB構築編
## 実装手順
設計書にあるDB設計に従って作って下さい。
[SequelPro](https://www.sequelpro.com/)を使うとGUI上でポチポチやるだけでDBが作れちゃうのでおすすめです。
## 成果物
- SQLdumpファイル
# いそっち道場 API構築編
## 実装手順
1. [Express Generator](https://expressjs.com/ja/starter/generator.html)を使うとAPIの雛形が簡単に作れちゃいます。
2. models,routers,というディレクトリを作ってMVCモデルのMとCを作ってみて下さい。
## 成果物
- 誰からでも叩けるURL
- こちらで用意しているテストコードに通ったらOK
{"metaMigratedAt":"2023-06-15T00:27:12.917Z","metaMigratedFrom":"Content","title":"いそっち道場設計書","breaks":true,"contributors":"[{\"id\":\"52f5592b-3468-45ba-b551-cb2c46c7ae3d\",\"add\":1879,\"del\":655}]"}