Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.

Latest commit

 

History

History
78 lines (69 loc) · 3.91 KB

README.md

File metadata and controls

78 lines (69 loc) · 3.91 KB

CAS FE - Project 1 of Group 'dkellenb' and 'bruede'

This repository contains the project work of the two students Daniel Kellenberger and Benjamin Rüde.

Installation

Documentation

Supported Browsers

  • Desktop
    • Chrome
    • Firefox
  • Mobile
    • Android with Chrome browser
    • iOS

Supported features

  • Easy to use note application
    • Easy to start with your first note. You simply can't miss the big button at your screen for adding your first note
    • Application will know if there are no notes and will show you a big plus-sign for adding a note
    • There is no annoying input validation. You can enter what you like, the system can handle it
    • You have a fast feedback if you hit the save button and you can switch back to edit in no time
  • All functions you wish
    • Create note
    • Edit a note
    • Revert a note to his stored state
    • Delete a note
    • Give notes dates until they have to be finished
    • Mark notes as finished
    • Give notes a importance value between 1-5
  • Filter and sort your notes for better overview
    • Sort by create date
    • Sort by importance
    • Sort by date until job has to be done
    • Show again finished notes
  • Work on the same set with your friend at the same time
    • Sharing new notes (new notes appear at the end)
    • Sharing every edit and update
    • Deleted notes by your friend will be removed immediately also on your screen
  • Works with IOs and Android Browsers on your mobile
    • You can even use all the share functions with your friends on your mobile device
  • Change color to your favorite style
    • Your selection get stored in the LocalStorage and will be persisted between visits
    • Choose between 4 color sets
  • Multi edit and new notes is possible
    • You can have multiple notes in edit mode: They will stay in edit mode even if you hit the sort or filter buttons
    • You can start with multiple new notes: They will stay at any time at the top of the list and will not be affected by sorting oder filtering

Technical features

  • The Application uses a REST-API on a node.js server for storing notes on a nedb.
    • It is possible to send your web socket id through the rest interface. The web socket event will contain your id.
  • Events for create, update and delete of notes are shared by a web socket with the id of the note and the socketId if present. The client can then decide what he want to to with it. (Future feature)
  • For the color switching CSS properties are used (-> No big dom changes needed or complicate selectors).
  • Handelbars is used for doing all the template rendering.
  • There is a jquery-extension which allows the ajax-json-parser to identify date objects and convert them back to date objects instead of strings.
  • UUID is used for creating unique IDs for all notes
  • Everything in the application is set to the application namespace, there are no global definitions.
  • Responsive layout based on flex structure

REST Api

####Methods

Method CMD Description
/rest/notes GET Returns all persisted notes
/rest/notes POST Adds a new note
/rest/notes/model/ GET Gets a template model
/rest/notes/:id GET Returns a note with the given id
/rest/notes/:id PUT Updates a note by the given id
/rest/notes/:id DELETE Deletes a note by the given id

####Special Headers#### It is possible to send the header 'X-Note-Socket-ID' with a request. If you do the event created by the websocket because of your request will contain your socket id an can be used on the client side to identify your own events.