---
# System prepended metadata

title: デスマハッカソン大概念

---

# デスマハッカソン大概念

## やること
　
- Nuxt×Go×C++×Azureで良い感じに面白いことをやりたい
- 操作系
    - オンラインでみんなで集合写真
- Nuxt Web App：
    - C++から送られた座標データを元に何かを掴み取りたい
    - 何を掴み取る
        - テーマ依存


### やること

1. Webアプリ上で良い感じに顔写真をとる
2. サーバーに顔写真を送る
3. サーバー側で一定の間隔毎にC++側のプログラムに記念写真のジェネレートをリクエスト
4. **生首＋適当な首以下の画像を上手く合成して人を再構成**
5. それらから記念写真を生成
6. 結果のバイナリをGoに返す
7. その結果を接続中のユーザーに返す

### ユーザーの流れ

- Webアプリにアクセス
- Webアプリからカメラへのアクセスをリクエスト
- 証明写真撮る的な感じのあれで顔を枠にはめる
- 撮影ボタンを押して撮影
- 少女祈祷中...(Now Loading...)
- 合成写真が送られてくる
- そのまま放置していた場合、適宜合成写真がUpdate
- UIにあるやつ
    - 自分の顔写真を撮るところ
    - 撮った写真
    - 撮影ボタン
    - 合成写真が表示される
    - 同時接続ユーザー数

### バックの画像の管理方法

GoとC++は最終的には同一コンテナ

- フロントから受け取った画像データをファイルに書き出す
- ローカルに保存する
- ファイル名とuser_idを紐付けてdbか何かに保存
（この間の処理は2週間後に考える）
- Goは書き出されたファイルパスから画像を読み取る
- バイナリにしてフロントに投げる

### ひとまずの目標（Web App・API Server）

- フロント -> とりあえず一通り出来る
- バック　-> 投げられた画像をオウム返し・上の打ち合わせ通りにとりあえず保存する
    - オウム返しの手順
        - 画像を取得
        - 上のルールに則ってファイルを保存
        - その保存したファイルパスからファイル読み出し
        - それを返す
- 画像処理班：合成出来るように💪＆コンテナ化💪

### 2週間後くらいに

ここをやる

- C++に呼び出す時はファイル名の配列を渡す（コマンドライン引数）
- C++側はコマンドライン引数で渡ったファイル名リストからファイルを読み出す
- C++側は生成された画像のファイルパスを返す 

### やらなきゃいけないこと

- 必要そうなサーバーはさっさと実装
- Go
- C++
