From 2bbd17a0c84a7c62c0866b46e0c4120604b45f71 Mon Sep 17 00:00:00 2001 From: Rohan Rangray Date: Wed, 13 May 2015 19:04:53 -0700 Subject: [PATCH] Removed the arrows going into edgelabels. Prettified things. --- node_modules/sqlt/.npmignore | 4 + node_modules/sqlt/.travis.yml | 3 + node_modules/sqlt/LICENSE | 25 ++++ node_modules/sqlt/README.md | 152 +++++++++++++++++++++ node_modules/sqlt/index.js | 41 ++++++ node_modules/sqlt/package.json | 61 +++++++++ node_modules/sqlt/test/fixtures/getUsers.sql | 4 + .../sqlt/test/fixtures/getUsersByIdOrEmail.sql | 6 + node_modules/sqlt/test/index.js | 105 ++++++++++++++ screen_sequence_diagrams/add_class.dot | 10 +- screen_sequence_diagrams/change_password.dot | 6 +- .../configure_account_notifications.dot | 6 +- screen_sequence_diagrams/contact_admin.dot | 4 +- screen_sequence_diagrams/drop_class.dot | 4 +- screen_sequence_diagrams/edit_flashcard.dot | 7 +- screen_sequence_diagrams/filter_cards.dot | 4 +- screen_sequence_diagrams/fix_flashcard.dot | 20 ++- .../flag_inappropriate_cards.dot | 13 +- screen_sequence_diagrams/hide_card.dot | 14 +- screen_sequence_diagrams/pull_flashcard.dot | 11 +- screen_sequence_diagrams/push_flashcard.dot | 10 +- screen_sequence_diagrams/remove_card.dot | 16 +-- screen_sequence_diagrams/review_notification.dot | 6 +- screen_sequence_diagrams/section_limit_access.dot | 12 +- screen_sequence_diagrams/study_deck.dot | 10 +- screen_sequence_diagrams/user_login_out.dot | 18 +-- screen_sequence_diagrams/user_register.dot | 10 +- screen_sequence_diagrams/view_by_pull_time.dot | 10 +- screen_sequence_diagrams/view_feed.dot | 10 +- 29 files changed, 505 insertions(+), 97 deletions(-) create mode 100644 node_modules/sqlt/.npmignore create mode 100644 node_modules/sqlt/.travis.yml create mode 100644 node_modules/sqlt/LICENSE create mode 100644 node_modules/sqlt/README.md create mode 100644 node_modules/sqlt/index.js create mode 100644 node_modules/sqlt/package.json create mode 100644 node_modules/sqlt/test/fixtures/getUsers.sql create mode 100644 node_modules/sqlt/test/fixtures/getUsersByIdOrEmail.sql create mode 100644 node_modules/sqlt/test/index.js diff --git a/node_modules/sqlt/.npmignore b/node_modules/sqlt/.npmignore new file mode 100644 index 0000000..1a815a8 --- /dev/null +++ b/node_modules/sqlt/.npmignore @@ -0,0 +1,4 @@ +*.swp +.DS_Store +node_modules/ +npm-debug.log diff --git a/node_modules/sqlt/.travis.yml b/node_modules/sqlt/.travis.yml new file mode 100644 index 0000000..6e5919d --- /dev/null +++ b/node_modules/sqlt/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - "0.10" diff --git a/node_modules/sqlt/LICENSE b/node_modules/sqlt/LICENSE new file mode 100644 index 0000000..5f12266 --- /dev/null +++ b/node_modules/sqlt/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2014, Eugene Ware +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of Eugene Ware nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY EUGENE WARE ''AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL EUGENE WARE BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/sqlt/README.md b/node_modules/sqlt/README.md new file mode 100644 index 0000000..66926d9 --- /dev/null +++ b/node_modules/sqlt/README.md @@ -0,0 +1,152 @@ +# sqlt + +Simple SQL Templating helper inspired by [Yesql](https://github.com/krisajenkins/yesql) + +[![build status](https://secure.travis-ci.org/eugeneware/sqlt.png)](http://travis-ci.org/eugeneware/sqlt) + +Give this library the location of a SQL template file, and it will return a function that +you can call with a [mysql](https://www.npmjs.org/package/mysql) or [pg](https://www.npmjs.org/package/pg) connection, an optional array of parameters, and a callback. + +## Installation + +This module is installed via npm: + +``` bash +$ npm install sqlt +``` + +## Example Usage + +### Simple SQL query with no params + +Given a SQL template file located in /path/to/queries/getUsers.sql + +``` sql +SELECT + * +FROM + users; +``` + +You can get a function that is easily callable with a database connection +handle, and get a callback: + +``` js +var sqlt = require('sqlt'), + mysql = require('mysql'); + +var conn = mysql.createConnection({ + host: 'yourdatabase.com', + database: 'yourdbname', + user: 'yourdbusername', + password: 'yourpassword' +}); + +var getUsers = sqlt('/path/to/queries/getUsers.sql'); +getUsers(conn, function (err, results) { + if (err) throw err; + console.log(results); +}); +``` + +### SQL query with params + +Given a SQL template file located in /path/to/queries/getUsersByIdOrEmail.sql + +``` sql +SELECT + * +FROM + users +WHERE + id = ? OR email = ?; +``` + +You can get a function that is easily callable with a database connection +handle, an array of parameters, and get a callback: + +``` js +var sqlt = require('sqlt'), + mysql = require('mysql'); + +var conn = mysql.createConnection({ + host: 'yourdatabase.com', + database: 'yourdbname', + user: 'yourdbusername', + password: 'yourpassword' +}); + +var getUsersByIdOrEmail = sqlt('/path/to/queries/getUsersByIdOrEmail.sql'); +getUsersByIdOrEmail(conn, [1234, 'bob@hotmail.com'], function (err, results) { + if (err) throw err; + console.log(results); +}); +``` + +### Load a directory full of queries + +Given a folder that contains a list of `.sql` files (say the `getUsers.sql` and +`getUsersByIdOrEmail.sql` file above: + +You can get a single object where each `.sql` file is turned into a query +helping function: + +``` js +var sqlt = require('sqlt'), + mysql = require('mysql'); + +var conn = mysql.createConnection({ + host: 'yourdatabase.com', + database: 'yourdbname', + user: 'yourdbusername', + password: 'yourpassword' +}); + +var queries = sqlt.dir('/path/to/queries'); +queries.getUsers(conn, function (err, results) { + if (err) throw err; + console.log(results); +}); +queries.getUsersByIdOrEmail(conn, [1234, 'bob@hotmail.com'], function (err, results) { + if (err) throw err; + console.log(results); +}); +``` + +### Streaming support + +By not passing through a callback the query functions will return streams +(depends on the underlying database library - eg below is for [mysql](http://npmjs.org/mysql)). + +Given a SQL template file located in /path/to/queries/getUsersByIdOrEmail.sql + +``` sql +SELECT + * +FROM + users +WHERE + id = ? OR email = ?; +``` + +You can get the stream by not passing through a callback: + +``` js +var sqlt = require('sqlt'), + mysql = require('mysql'); + +var conn = mysql.createConnection({ + host: 'yourdatabase.com', + database: 'yourdbname', + user: 'yourdbusername', + password: 'yourpassword' +}); + +var getUsersByIdOrEmail = sqlt('/path/to/queries/getUsersByIdOrEmail.sql'); +var stream = getUsersByIdOrEmail(conn, [1234, 'bob@hotmail.com']).stream(); +stream.on('data', console.log); +// stream.pipe() +``` + + +### Pull Requests Welcome! diff --git a/node_modules/sqlt/index.js b/node_modules/sqlt/index.js new file mode 100644 index 0000000..fbb1759 --- /dev/null +++ b/node_modules/sqlt/index.js @@ -0,0 +1,41 @@ +var fs = require('fs'), + path = require('path'); + +function makeSql(stmt) { + return function (conn, params, cb) { + if (typeof cb === 'undefined' && typeof params === 'function') { + cb = params; + params = []; + } + if (typeof cb === 'undefined') { + // for piping + return conn.query(stmt, params); + } else { + conn.query(stmt, params, cb); + } + }; +} + +module.exports = sqlt; +function sqlt(sqlFile) { + var stmt = fs.readFileSync(sqlFile, 'utf8'); + return makeSql(stmt); +}; + +module.exports.dir = sqltDir; + +function sqltDir(dir) { + var queries = {}; + function isSql(name){ + return name.slice(-4,name.length) === '.sql'; + } + var files = fs.readdirSync(dir).filter(isSql); + + var contents = files.map(function(fileName){ + return fs.readFileSync(path.join(dir,fileName)).toString(); + }); + files.forEach(function(fileName,i){ + queries[fileName.slice(0,-4)] = makeSql(contents[i]); + }); + return queries; +} diff --git a/node_modules/sqlt/package.json b/node_modules/sqlt/package.json new file mode 100644 index 0000000..b63ac33 --- /dev/null +++ b/node_modules/sqlt/package.json @@ -0,0 +1,61 @@ +{ + "name": "sqlt", + "version": "1.1.1", + "description": "Simple SQL Templating helper inspired by Yesql", + "main": "index.js", + "scripts": { + "test": "mocha" + }, + "repository": { + "type": "git", + "url": "https://github.com/eugeneware/sqlt" + }, + "keywords": [ + "sql", + "yesql", + "presql", + "template", + "file", + "database", + "mysql", + "pg", + "postgres", + "postgresql", + "mysql", + "orm" + ], + "author": { + "name": "Eugene Ware", + "email": "eugene@noblesamurai.com" + }, + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/eugeneware/sqlt/issues" + }, + "dependencies": {}, + "devDependencies": { + "expect.js": "~0.2.0", + "mocha": "~1.17.0" + }, + "homepage": "https://github.com/eugeneware/sqlt", + "_id": "sqlt@1.1.1", + "dist": { + "shasum": "5e3b48cec68b3b6a9b80d60e5dd5656009b246e6", + "tarball": "http://registry.npmjs.org/sqlt/-/sqlt-1.1.1.tgz" + }, + "_from": "sqlt@*", + "_npmVersion": "1.4.3", + "_npmUser": { + "name": "eugeneware", + "email": "eugene@noblesamurai.com" + }, + "maintainers": [ + { + "name": "eugeneware", + "email": "eugene@noblesamurai.com" + } + ], + "directories": {}, + "_shasum": "5e3b48cec68b3b6a9b80d60e5dd5656009b246e6", + "_resolved": "https://registry.npmjs.org/sqlt/-/sqlt-1.1.1.tgz" +} diff --git a/node_modules/sqlt/test/fixtures/getUsers.sql b/node_modules/sqlt/test/fixtures/getUsers.sql new file mode 100644 index 0000000..6c2176f --- /dev/null +++ b/node_modules/sqlt/test/fixtures/getUsers.sql @@ -0,0 +1,4 @@ +SELECT + * +FROM + users; diff --git a/node_modules/sqlt/test/fixtures/getUsersByIdOrEmail.sql b/node_modules/sqlt/test/fixtures/getUsersByIdOrEmail.sql new file mode 100644 index 0000000..7c50ff8 --- /dev/null +++ b/node_modules/sqlt/test/fixtures/getUsersByIdOrEmail.sql @@ -0,0 +1,6 @@ +SELECT + * +FROM + users +WHERE + id = ? OR email = ?; diff --git a/node_modules/sqlt/test/index.js b/node_modules/sqlt/test/index.js new file mode 100644 index 0000000..a3e4b6a --- /dev/null +++ b/node_modules/sqlt/test/index.js @@ -0,0 +1,105 @@ +var expect = require('expect.js'), + path = require('path'), + sqlt = require('..'); + +describe('sqlt', function() { + // simple mock + var conn = { + query: function (stmt, params, cb) { + if (typeof cb === 'undefined' && typeof params === 'function') { + cb = params; + params = []; + } + if (typeof cb === 'undefined') { + return { + pipe: function () { + return stmt; + } + }; + } else { + cb(null, stmt); + } + } + }; + + it('should be able to read a SQL statement', function(done) { + var getUsers = sqlt(path.join(__dirname, 'fixtures', 'getUsers.sql')); + getUsers(conn, function (err, res) { + if (err) return done(err); + var expected = + "SELECT\n" + + " *\n" + + "FROM\n" + + " users;\n" + expect(res).to.equal(expected); + done(); + }); + }); + + it('should be able to read a parameterized statement', function(done) { + var getUsersByIdOrEmail = sqlt(path.join(__dirname, 'fixtures', 'getUsersByIdOrEmail.sql')); + getUsersByIdOrEmail(conn, [123, 'bob@hotmail.com'], function (err, res) { + if (err) return done(err); + var expected = + "SELECT\n" + + " *\n" + + "FROM\n" + + " users\n" + + "WHERE\n" + + " id = ? OR email = ?;\n"; + expect(res).to.equal(expected); + done(); + }); + }); + + it('should be able to read a directory of queries', function(done) { + var queries = sqlt.dir(path.join(__dirname, 'fixtures')); + expect(queries.getUsers).to.be.a('function'); + expect(queries.getUsersByIdOrEmail).to.be.a('function'); + + doUsers(); + + function doUsers() { + queries.getUsers(conn, function (err, res) { + if (err) return done(err); + var expected = + "SELECT\n" + + " *\n" + + "FROM\n" + + " users;\n" + expect(res).to.equal(expected); + doParam(); + }); + } + + function doParam() { + queries.getUsersByIdOrEmail(conn, [123, 'bob@hotmail.com'], function (err, res) { + if (err) return done(err); + var expected = + "SELECT\n" + + " *\n" + + "FROM\n" + + " users\n" + + "WHERE\n" + + " id = ? OR email = ?;\n"; + expect(res).to.equal(expected); + done(); + }); + } + }); + + it('should allow streaming of results', function(done) { + var getUsersByIdOrEmail = sqlt(path.join(__dirname, 'fixtures', 'getUsersByIdOrEmail.sql')); + var stream = getUsersByIdOrEmail(conn, [123, 'bob@hotmail.com']); + expect(stream.pipe).to.be.a('function'); + var expected = + "SELECT\n" + + " *\n" + + "FROM\n" + + " users\n" + + "WHERE\n" + + " id = ? OR email = ?;\n"; + expect(stream.pipe()).to.equal(expected); + done(); + }); +}); diff --git a/screen_sequence_diagrams/add_class.dot b/screen_sequence_diagrams/add_class.dot index 948951f..f8fb62e 100644 --- a/screen_sequence_diagrams/add_class.dot +++ b/screen_sequence_diagrams/add_class.dot @@ -21,14 +21,14 @@ digraph G{ "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape=diamond, fixedsize=true, width=1.4, height=1.4]; "WhiteListCheck"[center=true, fillcolor="#aaaaff", style=filled, style=filled]; - "Sidebar Menu" -> "POST"; + "Sidebar Menu" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Sidebar Menu"; - "Controller" -> "SUCCESS"; + "Controller" -> "SUCCESS"[dir=none]; "SUCCESS"->"WhiteListCheck"; - "WhiteListCheck" -> "Permission Denied: \n User cannot be enrolled in class"; - "WhiteListCheck" -> "Success! \n User is added to class"; + "WhiteListCheck" -> "Permission Denied: \n User cannot be enrolled in class"[dir=none]; + "WhiteListCheck" -> "Success! \n User is added to class"[dir=none]; "Success! \n User is added to class" -> "Sidebar Menu"; "Permission Denied: \n User cannot be enrolled in class" -> "Sidebar Menu"; diff --git a/screen_sequence_diagrams/change_password.dot b/screen_sequence_diagrams/change_password.dot index cf8416b..e670c15 100644 --- a/screen_sequence_diagrams/change_password.dot +++ b/screen_sequence_diagrams/change_password.dot @@ -14,13 +14,13 @@ digraph G{ "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; - "Sidebar Menu/Settings" -> "POST"; + "Sidebar Menu/Settings" -> "POST"[dir=none]; "POST" -> "Controller"; "Controller" -> "Email"; "Failure: User did not\nchange password"[shape=none]; - "Email" -> "Failure: User did not\nchange password"; + "Email" -> "Failure: User did not\nchange password"[dir=none]; "Failure: User did not\nchange password" -> "Sidebar Menu"; "Success: User \nchanged password"[shape=none]; - "Email" -> "Success: User \nchanged password"; + "Email" -> "Success: User \nchanged password"[dir=none]; "Success: User \nchanged password" -> "Sidebar Menu"; } diff --git a/screen_sequence_diagrams/configure_account_notifications.dot b/screen_sequence_diagrams/configure_account_notifications.dot index 1195242..cbb5a08 100644 --- a/screen_sequence_diagrams/configure_account_notifications.dot +++ b/screen_sequence_diagrams/configure_account_notifications.dot @@ -8,11 +8,11 @@ digraph G{ nodesep=2.5; ranksep=0.45; "Account Settings"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; - "Account Settings" -> "PATCH /api/me/settings"; + "Account Settings" -> "PATCH /api/me/settings"[dir=none]; "views.update_settings" -> "New settings valid?"; - "New settings valid?" -> "Yes\nSUCCESS"; - "New settings valid?" -> "No\nFAILURE"; + "New settings valid?" -> "Yes\nSUCCESS"[dir=none]; + "New settings valid?" -> "No\nFAILURE"[dir=none]; "PATCH /api/me/settings" -> "views.update_settings"; "No\nFAILURE" -> "Account Settings"; "Yes\nSUCCESS" -> "Save settings"; diff --git a/screen_sequence_diagrams/contact_admin.dot b/screen_sequence_diagrams/contact_admin.dot index 42b249d..4233282 100644 --- a/screen_sequence_diagrams/contact_admin.dot +++ b/screen_sequence_diagrams/contact_admin.dot @@ -16,8 +16,8 @@ digraph G{ lp=100; // Graph - "Instructor's Email Client" -> "EMAIL"; + "Instructor's Email Client" -> "EMAIL"[dir=none]; "EMAIL" -> "Admin's Message Box"; - "Admin's Message Box" -> "MESSAGE"; + "Admin's Message Box" -> "MESSAGE"[dir=none]; "MESSAGE" -> "Instructor's Email Client"; } diff --git a/screen_sequence_diagrams/drop_class.dot b/screen_sequence_diagrams/drop_class.dot index 24a11b1..464744f 100644 --- a/screen_sequence_diagrams/drop_class.dot +++ b/screen_sequence_diagrams/drop_class.dot @@ -18,9 +18,9 @@ digraph G{ "Sidebar Menu" -> "Controller" [label=" DELETE"]; "Controller" -> "User Check"; "User did not\ndrop class"[shape=none]; - "User Check" -> "User did not\ndrop class"; + "User Check" -> "User did not\ndrop class"[dir=none]; "User did not\ndrop class" -> "Sidebar Menu"; "User successfully\ndropped class"[shape=none]; - "User Check" -> "User successfully\ndropped class"; + "User Check" -> "User successfully\ndropped class"[dir=none]; "User successfully\ndropped class" -> "Sidebar Menu"; } diff --git a/screen_sequence_diagrams/edit_flashcard.dot b/screen_sequence_diagrams/edit_flashcard.dot index 04dc25b..a94827d 100644 --- a/screen_sequence_diagrams/edit_flashcard.dot +++ b/screen_sequence_diagrams/edit_flashcard.dot @@ -9,22 +9,23 @@ digraph G{ "View Deck"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; + "POST"[shape=none]; "View Deck" -> "Edit Flashcard Button"; "Edit Flashcard Button" -> "Flashcard Changes"; - "Flashcard Changes" -> "POST"; + "Flashcard Changes" -> "POST"[dir=none]; "POST" -> "Controller"; //Only blanks(mask) altered "Only mask altered"[shape=none]; "Server creates New FlashcardMask object"[fillcolor="#aaaaff", style=filled,pos="0,0!"]; - "Controller" -> "Only mask altered"; + "Controller" -> "Only mask altered"[dir=none]; "Only mask altered" -> "Server creates New FlashcardMask object"; "Server creates New FlashcardMask object" -> "View Deck"; //Text changed "Text or material date altered"[shape=none]; - "Controller" -> "Text or material date altered"; + "Controller" -> "Text or material date altered"[dir=none]; "Text or material date altered" -> "Create New Flashcard"; "Create New Flashcard" -> "Push to Feed"; "Push to Feed"-> "Add to User Deck"; diff --git a/screen_sequence_diagrams/filter_cards.dot b/screen_sequence_diagrams/filter_cards.dot index a284da9..ae4f6df 100644 --- a/screen_sequence_diagrams/filter_cards.dot +++ b/screen_sequence_diagrams/filter_cards.dot @@ -16,9 +16,9 @@ digraph G{ "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; - "Feed" -> "Filter"; + "Feed" -> "Filter"[dir=none]; "Filter" -> "Controller"; - "Controller" -> "Filtered cards"; + "Controller" -> "Filtered cards"[dir=none]; "Filtered cards" -> "Feed"; } diff --git a/screen_sequence_diagrams/fix_flashcard.dot b/screen_sequence_diagrams/fix_flashcard.dot index 75fbc21..27d5362 100644 --- a/screen_sequence_diagrams/fix_flashcard.dot +++ b/screen_sequence_diagrams/fix_flashcard.dot @@ -5,13 +5,14 @@ digraph G{ label="[F7] Fix Flashcard"; node[shape=box, style="rounded,filled,bold"]; splines=ortho; - nodesep=1.0; + nodesep=0.4; + ranksep=0.1; "View Deck"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; "View Deck" -> "Edit Flashcard"; - "Edit Flashcard" -> "POST /api/flashcard/{pk}/edit"; + "Edit Flashcard" -> "POST /api/flashcard/{pk}/edit"[dir=none]; "POST /api/flashcard/{pk}/edit" -> "FlashcardViewSet.edit"; - "FlashcardViewSet.edit" -> "Text or material date altered"; - "FlashcardViewSet.edit" -> "Only mask altered"; + "FlashcardViewSet.edit" -> "Text or material date altered"[dir=none]; + "FlashcardViewSet.edit" -> "Only mask altered"[dir=none]; "Only mask altered" -> "Update UserFlashcard object"; "Text or material date altered" -> "Create new Flashcard with prev pointer\nNotify all users who've pulled the card"; "Only mask altered"[shape=none]; @@ -22,12 +23,17 @@ digraph G{ labelfloat=true; lp=100; "FlashcardViewSet.edit"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=2.2, height=2.2]; + "Sidebar Menu"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; "WhiteListCheck"[center=true, fillcolor="#aaaaff", style=filled, style=filled]; - "Sidebar Menu" -> "POST"; + "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.1, height=1.1]; + "POST"[shape=none]; + "FAILURE"[shape=none]; + "SUCCESS"[shape=none]; + "Sidebar Menu" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Sidebar Menu"; - "Controller" -> "SUCCESS"; + "Controller" -> "SUCCESS"[dir=none]; "SUCCESS"->"WhiteListCheck"; "WhiteListCheck" -> "Permission Denied: \n User cannot be enrolled in class"; "WhiteListCheck" -> "Success! \n User is added to class"; diff --git a/screen_sequence_diagrams/flag_inappropriate_cards.dot b/screen_sequence_diagrams/flag_inappropriate_cards.dot index 768f8d0..1108642 100644 --- a/screen_sequence_diagrams/flag_inappropriate_cards.dot +++ b/screen_sequence_diagrams/flag_inappropriate_cards.dot @@ -5,7 +5,8 @@ digraph G{ label="[F4] Flag Inappropriate Cards"; node[shape=box, style="rounded,filled,bold"]; splines=ortho; - nodesep=1.0; + nodesep=2.0; + ranksep=0.4; "Live Feed"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; @@ -23,15 +24,15 @@ digraph G{ "Flashcard Hidden from Feed"[center=true, fillcolor="#aaaaff", style=filled]; "POST"[shape=none]; "Live Feed" -> "Flag as Inappropriate"; - "Flag as Inappropriate" -> "POST"; + "Flag as Inappropriate" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Live Feed"; - "Controller" -> "POST"; + "Controller" -> "POST"[dir=none]; "POST" -> "Server"; - "Server"-> "SUCCESS"; + "Server"-> "SUCCESS"[dir=none]; "SUCCESS" -> "Flashcard Hidden from Feed"; "Flashcard Hidden from Feed" -> "Server creates a FlashcardReport object"; "Server creates a FlashcardReport object" -> "Live Feed"; -} \ No newline at end of file +} diff --git a/screen_sequence_diagrams/hide_card.dot b/screen_sequence_diagrams/hide_card.dot index e34e0f9..abaf07a 100644 --- a/screen_sequence_diagrams/hide_card.dot +++ b/screen_sequence_diagrams/hide_card.dot @@ -12,15 +12,15 @@ digraph G{ lp=100; "POST"[shape=none]; - "FAILURE: card no longer exists in database"[shape=none]; - "SUCCESS: card successfully hidden"[shape=none]; + "FAILURE: card no longer\nexists in database"[shape=none]; + "SUCCESS: card\nsuccessfully hidden"[shape=none]; "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; - "Feed" -> "POST"; + "Feed" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE: card no longer exists in database"; - "Controller" -> "SUCCESS: card successfully hidden"; - "FAILURE: card no longer exists in database" -> "Feed"; - "SUCCESS: card successfully hidden" -> "Feed"; + "Controller" -> "FAILURE: card no longer\nexists in database"[dir=none]; + "Controller" -> "SUCCESS: card\nsuccessfully hidden"[dir=none]; + "FAILURE: card no longer\nexists in database" -> "Feed"; + "SUCCESS: card\nsuccessfully hidden" -> "Feed"; } diff --git a/screen_sequence_diagrams/pull_flashcard.dot b/screen_sequence_diagrams/pull_flashcard.dot index 0d3970d..cef1dc6 100644 --- a/screen_sequence_diagrams/pull_flashcard.dot +++ b/screen_sequence_diagrams/pull_flashcard.dot @@ -23,15 +23,14 @@ digraph G{ fixedsize=true, width=1.4, height=1.4]; "Flashcard added to User's Deck"[center=true, fillcolor="#aaaaff", style=filled]; "POST"[shape=none]; - "Pull Flashcard Button" -> "POST"; + "Pull Flashcard Button" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Pull Flashcard Button"; "Controller" -> "Hide Flashcard from Feed"; "POST" -> "Server"; - "Server"-> "SUCCESS"; + "Server"-> "SUCCESS"[dir=none]; "SUCCESS" -> "Flashcard added to User's Deck"; - "Flashcard added to User's Deck" -> "Update Card Rating" + "Flashcard added to User's Deck" -> "Update Card Rating"[dir=none]; "Update Card Rating" -> "Pull Flashcard Button"; - -} \ No newline at end of file +} diff --git a/screen_sequence_diagrams/push_flashcard.dot b/screen_sequence_diagrams/push_flashcard.dot index 9859596..47c554d 100644 --- a/screen_sequence_diagrams/push_flashcard.dot +++ b/screen_sequence_diagrams/push_flashcard.dot @@ -23,15 +23,15 @@ digraph G{ fixedsize=true, width=1.4, height=1.4]; "Flashcard Record \n Created in Database"[center=true, fillcolor="#aaaaff", style=filled]; "POST"[shape=none]; - "Push Flashcard Button" -> "POST"; + "Push Flashcard Button" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Push Flashcard Button"; - "Controller" -> "POST"; + "Controller" -> "POST"[dir=none]; "POST" -> "Server"; - "Server"-> "SUCCESS"; + "Server"-> "SUCCESS"[dir=none]; "SUCCESS" -> "Flashcard Record \n Created in Database"; - "Flashcard Record \n Created in Database" -> "Card Published in Feed"; + "Flashcard Record \n Created in Database" -> "Card Published in Feed"[dir=none]; "Card Published in Feed" -> "Push Flashcard Button"; } diff --git a/screen_sequence_diagrams/remove_card.dot b/screen_sequence_diagrams/remove_card.dot index 54b7a84..9160dae 100644 --- a/screen_sequence_diagrams/remove_card.dot +++ b/screen_sequence_diagrams/remove_card.dot @@ -21,15 +21,15 @@ digraph G{ fixedsize=true, width=1.4, height=1.4]; "POST"[shape=none]; "Card Removed from Deck"[shape=none]; - "Flashcard Position Updated in Live Feed"[shape=none]; - "View Deck" -> "POST"; + "Flashcard Position\nUpdated in Live Feed"[shape=none]; + "View Deck" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "View Deck"; "Controller" -> "Remove Flashcard Button"; - "Remove Flashcard Button" -> "DELETE"; + "Remove Flashcard Button" -> "DELETE"[dir=none]; "DELETE" -> "Server"; - "Server" -> "Card Removed from Deck"; - "Card Removed from Deck" -> "Flashcard Position Updated in Live Feed"; - "Flashcard Position Updated in Live Feed" -> "View Deck"; -} \ No newline at end of file + "Server" -> "Card Removed from Deck"[dir=none]; + "Card Removed from Deck" -> "Flashcard Position\nUpdated in Live Feed"[dir=none]; + "Flashcard Position\nUpdated in Live Feed" -> "View Deck"; +} diff --git a/screen_sequence_diagrams/review_notification.dot b/screen_sequence_diagrams/review_notification.dot index 1c84918..008da91 100644 --- a/screen_sequence_diagrams/review_notification.dot +++ b/screen_sequence_diagrams/review_notification.dot @@ -1,7 +1,7 @@ digraph G{ ratio=0.75; //rankdir="LR"; - node[shape = box]; + node[shape=box, style="rounded,filled,bold"]; splines=ortho; nodesep=1.4; "Sidebar Menu"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; @@ -10,9 +10,9 @@ digraph G{ "Notification"[shape=none]; "UPDATE"[shape=none]; - "Server" -> "Notification"; + "Server" -> "Notification"[dir=none]; "Notification" -> "Controller"; - "Controller" -> "UPDATE"; + "Controller" -> "UPDATE"[dir=none]; "UPDATE" -> "Sidebar Menu"; } diff --git a/screen_sequence_diagrams/section_limit_access.dot b/screen_sequence_diagrams/section_limit_access.dot index 0ee28b6..76807ca 100644 --- a/screen_sequence_diagrams/section_limit_access.dot +++ b/screen_sequence_diagrams/section_limit_access.dot @@ -8,7 +8,7 @@ digraph G{ node[shape=box, style="rounded,filled,bold"]; splines=ortho; nodesep=1.4; - "Instructor's Email Client"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; + "Instructor's\nEmail Client"[center=true, fillcolor="#aaaaff", style=filled,pos="0,0!"]; "Admins Page"[center=true, fillcolor="#aaaaff", style=filled]; "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape=diamond, fixedsize=true, width=1.8, height=1.8]; @@ -24,14 +24,14 @@ digraph G{ fixedsize=true, width=1.5, height=1.5]; // Graph - "Instructor's Email Client" -> "EMAIL"; + "Instructor's\nEmail Client" -> "EMAIL"[dir=none]; "EMAIL" -> "Admins Page"; - "Admins Page" -> "POST"; + "Admins Page" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "SUCCESS"; - "SUCCESS" -> "Instructor's Email Client"; + "Controller" -> "SUCCESS"[dir=none]; + "SUCCESS" -> "Instructor's\nEmail Client"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Admins Page"; } diff --git a/screen_sequence_diagrams/study_deck.dot b/screen_sequence_diagrams/study_deck.dot index d5a53f0..560b3dc 100644 --- a/screen_sequence_diagrams/study_deck.dot +++ b/screen_sequence_diagrams/study_deck.dot @@ -22,15 +22,15 @@ digraph G{ "FAILURE:\nUser has no card in the deck."[shape=none]; "Sidebar Menu" -> "ClassView"; - "ClassView" -> "POST"; + "ClassView" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE:\nUser has no card in the deck."; - "Controller" -> "SUCCESS\nUser has at least a card in the deck."; + "Controller" -> "FAILURE:\nUser has no card in the deck."[dir=none]; + "Controller" -> "SUCCESS\nUser has at least a card in the deck."[dir=none]; "FAILURE:\nUser has no card in the deck." -> "Sidebar Menu"; "SUCCESS\nUser has at least a card in the deck." -> "StudyView Blank"; - "StudyView Blank" -> "POST"; + "StudyView Blank" -> "POST"[dir=none]; "Controller" -> "StudyView Response"; - "StudyView Response" -> "POST"; + "StudyView Response" -> "POST"[dir=none]; "Controller" -> "StudyView Blank"; } diff --git a/screen_sequence_diagrams/user_login_out.dot b/screen_sequence_diagrams/user_login_out.dot index 082b69c..da8e416 100644 --- a/screen_sequence_diagrams/user_login_out.dot +++ b/screen_sequence_diagrams/user_login_out.dot @@ -28,18 +28,18 @@ digraph G{ fixedsize=true, width=1.8, height=1.8]; // Graph - "Sidebar Menu" -> "POST"; + "Sidebar Menu" -> "POST"[dir=none]; "POST" -> "Logout Controller"; - "Logout Controller" -> "Logout FAILURE"; + "Logout Controller" -> "Logout FAILURE"[dir=none]; "Logout FAILURE" -> "Sidebar Menu"; - "Logout Controller" -> "SUCCESS:\n User logged out"; - "SUCCESS:\n User logged out" -> "Login/Register Page" + "Logout Controller" -> "SUCCESS:\n User logged out"[dir=none]; + "SUCCESS:\n User logged out" -> "Login/Register Page"; - "Login/Register Page" -> "Login Controller" - "Login Controller" -> "SUCCESS:\n User logged in" - "SUCCESS:\n User logged in" -> "Sidebar Menu" + "Login/Register Page" -> "Login Controller"; + "Login Controller" -> "SUCCESS:\n User logged in"[dir=none]; + "SUCCESS:\n User logged in" -> "Sidebar Menu"; - "Login Controller" -> "Login FAILURE" - "Login FAILURE" -> "Login/Register Page" + "Login Controller" -> "Login FAILURE"[dir=none]; + "Login FAILURE" -> "Login/Register Page"; } diff --git a/screen_sequence_diagrams/user_register.dot b/screen_sequence_diagrams/user_register.dot index 8cfd84b..95c0228 100644 --- a/screen_sequence_diagrams/user_register.dot +++ b/screen_sequence_diagrams/user_register.dot @@ -27,18 +27,18 @@ digraph G{ fixedsize=true, width=1.5, height=1.5]; // Graph - "Login/Register Page" -> "POST"; + "Login/Register Page" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "Login/Register Page"; - "Controller" -> "SUCCESS:\nValid, send JSON."; + "Controller" -> "SUCCESS:\nValid, send JSON."[dir=none]; "SUCCESS:\nValid, send JSON." -> "Server"; - "Server" -> "FAILURE:\nData invalid"; + "Server" -> "FAILURE:\nData invalid"[dir=none]; "FAILURE:\nData invalid" -> "Login/Register Page"; - "Server" -> "SUCCESS:\nValid, unverified user created.\nEmail verification message displayed."; + "Server" -> "SUCCESS:\nValid, unverified user created.\nEmail verification message displayed."[dir=none]; "SUCCESS:\nValid, unverified user created.\nEmail verification message displayed." -> "Login/Register Page"; } diff --git a/screen_sequence_diagrams/view_by_pull_time.dot b/screen_sequence_diagrams/view_by_pull_time.dot index 02aa0b9..85c8ede 100644 --- a/screen_sequence_diagrams/view_by_pull_time.dot +++ b/screen_sequence_diagrams/view_by_pull_time.dot @@ -18,10 +18,10 @@ digraph G{ "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; "POST"[shape=none]; - "View Deck" -> "POST"; + "View Deck" -> "POST"[dir=none]; "POST" -> "Controller"; - "Controller" -> "FAILURE"; + "Controller" -> "FAILURE"[dir=none]; "FAILURE" -> "View Deck"; - "Controller" -> "Sort by Ascending/Descending Time"; - "Sort by Ascending/Descending Time" -> "View Deck"; -} \ No newline at end of file + "Controller" -> "Sort by Ascending\nor Descending Time"; + "Sort by Ascending\nor Descending Time" -> "View Deck"; +} diff --git a/screen_sequence_diagrams/view_feed.dot b/screen_sequence_diagrams/view_feed.dot index 240de0e..2dfa3ed 100644 --- a/screen_sequence_diagrams/view_feed.dot +++ b/screen_sequence_diagrams/view_feed.dot @@ -13,14 +13,14 @@ digraph G{ "GET"[shape=none]; "SUCCESS"[shape=none]; - "FAILURE: no cards"[shape=none]; + "FAILURE:\nno cards"[shape=none]; "Controller"[center=true, fillcolor="#aaaaff", style=filled, shape = diamond, fixedsize=true, width=1.4, height=1.4]; - "Root" -> "GET"; + "Root" -> "GET"[dir=none]; "GET" -> "Controller"; - "Controller" -> "FAILURE: no cards"; - "Controller" -> "SUCCESS"; - "FAILURE: no cards" -> "Feed"; + "Controller" -> "FAILURE:\nno cards"[dir=none]; + "Controller" -> "SUCCESS"[dir=none]; + "FAILURE:\nno cards" -> "Feed"; "SUCCESS" -> "Feed"; } -- 1.9.1