take.note A Project Composition and Content Organization Web App Responsive RESTful MVC web
app built with Node, Express, Handlebars, HTML, CSS, Bootstrap, JavaScript, jQuery, MySQL,
Sequelize and Quill.js word processor. Keep all your notes organized alongside your project
document in a take.note's integrated workspace. Keep all your projects together in one
place you can access online from any device. take.note can help you write books, papers,
speeches, screenplays, apps, project planning, and more--anything that requires a final
formatted document using multiple content sources. take.note on Heroku take.note is a
Project-based note organizer web app with multiple User accounts. An MVC-structured responsive
web app, take.note utilizes a MySQL database accessed with the Sequelize ORM, Handlebars
for data-based page templating, and Bootstrap front-end elements modified with custom
CSS. The web-based Quill.js word processor allows the main document of each Project various
formatting options. The database has four tables created and managed by Sequelize ORM
models: Users, Projects, Topics, and Resources, which are all associated with a cascading
one-to-many relationship, in that order. Each table has a name column, with the name
value of Projects, Topics, and Resources being editable from the User interface with
input area on-focus/on-blur event handlers; no "submit" button clicks needed. Each Project
also contains the main Project's word-processor formattable document, and each Resource
contains a Resource Content text field for storage of individual notes. The Project and
Resouce Content fields are also editable by the same on-focus/on-blur events as their
titles, again eliminating the need for "submit" buttons. Also included is the ability
to delete Projects, Topics, and Resources. In addition, there are buttons on the right
sides that allow the toggling of expand/collapse of either all Resource Contents, just
the Resource Contents of a single Topic, and of individual Resource Content areas for
easier viewing of current items being worked on. Basic User login is handled by storing
the User's name in the browser's local storage, and matching that value to the UserName
field in the Users table in the databse. This takes the User to a page listing all of
the User's Projects. If the Username entered does not already exist in the database,
the app creates a new User and associates the User name to it's own Projects.