tkzwtks / go-Intern-Diary

はてなインターン2018 課題アプリケーションひな形

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-Intern-Diary

ディレクトリー構成

  • db: データベースのテーブルスキーマ
  • config: 環境変数から読み込む設定
  • model: モデル層: 型定義を書きます
  • repository: データベースにアクセスするリポジトリ層
  • service: Diaryアプリケーションを定義するサービス層
  • web: webサーバーのルーティングやリクエストの解釈、レスポンスを実装するweb層
  • ui: フロントエンド
  • templates: HTMLテンプレート
  • resolver: GraphQLスキーマとクエリの実行
  • loader: GraphQL用のデータローダー

実行

サーバー起動

docker-compose up --build
open http://localhost:8000

GraphiQL

open http://localhost:8000/graphiql

テスト実行

docker-compose build && docker-compose run --rm app make test

MySQL

docker-compose exec db mysql
mysql> use intern_diary;
mysql> select * from user;

Dockerコンテナを作り直すために一旦削除

docker ps -a
docker stop <container id>
docker rm <container id>
# または
docker rm -f <container id>

例: データベーススキーマを変更する時はmysqlコンテナを作り直す

docker ps -a | grep mysql
docker rm -f 83ece5d09062

フロントエンド

サーバーを起動すると自動的にwatchされる

docker-compose up

テスト実行

docker-compose run --rm node yarn test

About

はてなインターン2018 課題アプリケーションひな形


Languages

Language:Go 63.2%Language:TypeScript 15.0%Language:JavaScript 9.4%Language:Makefile 5.4%Language:Dockerfile 3.5%Language:Shell 3.3%Language:CSS 0.3%