From c2619d9aa2b8e38b3e065bc08675749b5b2c3338 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Tue, 26 Mar 2019 16:17:32 -0400 Subject: [PATCH] Update gitignore, add graphviz diagrams --- .gitignore | 131 +++++++++++++++++++++++++++++++- design/db.gv | 71 +++++++++++++++++ design/media-collection-tree.gv | 7 ++ 3 files changed, 207 insertions(+), 2 deletions(-) create mode 100644 design/db.gv create mode 100644 design/media-collection-tree.gv diff --git a/.gitignore b/.gitignore index f0e3bca..53af949 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,129 @@ -/target -**/*.rs.bk \ No newline at end of file + +# Created by https://www.gitignore.io/api/rust,macos,jetbrains+all +# Edit at https://www.gitignore.io/?templates=rust,macos,jetbrains+all + +### JetBrains+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### JetBrains+all Patch ### +# Ignores the whole .idea folder and all .iml files +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/ + +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +# Sonarlint plugin +.idea/sonarlint + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Rust ### +# Generated by Cargo +# will have compiled files and executables +**/target/** + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +# End of https://www.gitignore.io/api/rust,macos,jetbrains+all diff --git a/design/db.gv b/design/db.gv new file mode 100644 index 0000000..8a10fd0 --- /dev/null +++ b/design/db.gv @@ -0,0 +1,71 @@ +digraph { + graph [pad="0.5", nodesep="0.5", ranksep="2"]; + node [shape=plain] + rankdir=RL; + + media [label=< + + + + + + +
media
id
media_type_id
display_name
notes
+ >]; + + media_name [label=< + + + + + + +
media_name
id
media_id
name
language
+ >]; + + # CD, DVD, etc. + media_format [label=< + + + + + +
media_format
id
physical
format
+ >]; + + media_format_link [label=< + + + + +
media_format_link
media_type_id
media_format_id
+ >] + + # Video Game, Anime, Movie, TV Show + media_type [label=< + + + + +
media_type
id
type
+ >]; + + media_type_format_link [label=< + + + + +
media_type_format_link
media_type_id
media_format_id
+ >] + + media_type_format_link:media_type_id -> media_type:id + media_type_format_link:media_format_id -> media_format:id + + media:media_type_id -> media_type:id + + media_name:media_id -> media:id + + media_format_link:media_id -> media:id + media_format_link:media_format_id -> media_format:id + +} diff --git a/design/media-collection-tree.gv b/design/media-collection-tree.gv new file mode 100644 index 0000000..cb97a9b --- /dev/null +++ b/design/media-collection-tree.gv @@ -0,0 +1,7 @@ +digraph objectTree { + media_type -> media + media_type -> media_format + + media_format -> media + media -> media_name +}