TodoApp Svelte Themes

Todoapp

A Simple Todo App. Go, BunORM, Svelte, Mysql

Todo App

Screenshot 2024-08-19 at 3 10 17

ENV

DB_USER=root
DB_PASS=secret
DB_NAME=gotodo

実行

Hot-reloadingのために Air を使用しており、ソースコード(Go REST API)に変更が検出されると自動的にアプリケーションを再コンパイルし再起動します。

docker-compose up -d

http://127.0.0.1

docker-compose down --rmi all

スキーマ管理

sqldef を使うことで、データベーススキーマとコードベースのSQLスキーマファイルとの間の一貫性を保つことができ、スキーマのズレが生じるリスクを低減できます。簡単なTodoアプリなので sqldef に決めました。

$ docker compose exec api bash
$ mysqldef -h db -P 3306 -u root -p secret gotodo < ./internal/db/createTable.sql

API ドキュメント

mainブランチにプッシュすると、自動的にSwaggerを用いて /docs フォルダにAPIドキュメントを生成するGitHubActionを設定しました。 GitHub Pagesでいつでも見れるようにしました。

ER図

ER図は tbls で管理し、createTable.sqlに変更がある度にgithub actionで更新しています。ファイルは /internal/db/schema に配置してます。

CSRF対策 (WIP)

gorilla/csrf を使い対策を行いました。

LICENSE

MIT

Top categories

Loading Svelte Themes