Note Apps seem to have become the "Hello World" for web app tutorials.
Not sure how long it's been this way, but I think it's a good place to start for anybody. A Note App is easy to conceptualize while involving many levels of complexity; user-interface styling and interactions with databases, all within a complete application. It's a good place to start for anybody, especially as the difficulty can be easily scaled. From there you can go on in designing more complex and particular apps to solve whatever problems you have.
Fortunately, what I want to build is pretty similar to a Note App.
In academia, one of your main jobs is to read. Read read read. You're constantly reading new and old literature to learn as much as you can, and you never have enough time to read everything. It's really helpful to take efficient notes the first time so that you don't have to go back when you need to extract that information again.
One method I was taught in my undergrad was to make Cue-Cards. Each paper I read would get a single card for me to take notes on the different parts of the paper (intro, methods, results, conclusion...). Real estate is limited on a cue-card, so the key was to write a single very concise, informational sentence for each part of the paper. Enough for you to remind yourself and think further about what the full paper had to offer. It worked as a great study tool.
Of course there are many things I dislike about paper cue-cards. They're small, they're easy to loose, you have to be careful not to be messy, and you just never get to write as much as you need. Nowadays I opt for a more electronic method; word documents for each paper. I try to follow the same philosophy of concise summaries, but I can add extra information, pictures, and more.
Anyways lately I was thinking that my method was still pretty inefficient and was searching for ways I might improve my study tactics. But then I realized, what if I could make something? I'd been interested in learning more about Node.js all summer (it's what led me to starting this website in the first place), so why not?
And so this is what I'm working on! A research-paper note organizer. It's taken a bit to figure out how to go about this, but I think I'm finally onto a modest start.
There are a few features I want to focus on this app to get it to where I'd like to use it:
- Easily search and sort through your collection of "cards"
- Be able to "pull out" a card quickly and make edits
- Handle insertions of attachments (like images of graphs)
- Guide the user into making efficient cards
- Be completely client-side—no info stored outside clients computer
- Able to export and import entire card database
- Able to export cards or groups of cards into document files
- Able to share cards
I'm using ember.js as a framework and I've been having a blast learning the ins and outs! For the database, I'm trying out PouchDB for its ease of use and local offline functionality. Maybe in the future I could look at keeping things server side for syncing between different devices, in which case it seems like I'd be able to use CouchDB, thus keeping the option open.
I'm basing the app off of two helpful tutorials I've come across from Gaslight, and Sitepoint. I'll be hosting the development of this app on Github, and welcome any help or advice that comes my way as I'm learning pretty much all of this as I go. I'm sure that I'm doing some bad practice things that are better done another way.
Currently you can create new cards with a title, year, and abstract, you can view a list of all the cards, and you can click an entry on that list to see the full card. It's a simple start, but I think the basic functionality of what I want to achieve isn't actually too complex. My main concerns are going to be ensuring that data can't be lost easily.