Coder Social home page Coder Social logo

final_project's Introduction

FeatherNote

Welcome to the FeatherNote application! FeatherNote is a single-page web application inspired by Evernote. This application is built using the Rails web framework, as well as React.js. Give it a try here !

Features

  • Create an account
  • Log in / Log out
  • Log in through Facebook or Twitter
  • Create, view, and edit notes
  • Create Notebooks to organize notes
  • Search for notes, filter search by either note content or notebook title
![alt text][screenshot]

Technologies

  • Ruby (version 2.2.3)

  • Rails (version 4.2.5)

  • React.js (docs)

  • Flux (docs)

  • PostgreSQL

  • BCrypt

  • OmniAuth Facebook (docs)

  • OmniAuth Twitter (docs)

  • Twitter Developer API (docs)

  • Quill JS Text Editor (docs)

Implementation timeline and other project documents including wireframes can be viewed here.

React/Flux

This application was built using the React.js front-end library, along with the Flux design pattern. Using these two technologies together allows for UI components to be rendered efficiently due to Reacts use of the virtual DOM, and the uni-directional flow of data provided by the Flux pattern. The diagram below was taken from the Flux documentation and explains the flow of data.

alt text

Using Flux, actions are sent to a dispatcher. The dispatcher then notifies stores, which contain data on a particular entity of the app (NoteStore for example). Stores also have views (which are React components) listening to them for when to render. A store will only let its views know to render based on the action it receives from the dispatcher. Since these views already define how they will render, the stores let them know when to render based on a action they are interested in.

React/Flux in FeatherNote

React and Flux are both used throughout the FeatherNote application. This section will explain how these technologies were used when creating a note.

  1. User clicks Add Note button, sending an AJAX request to add the note to the database
  2. The success callback of the AJAX request calls the action method to let the dispatcher know that a note has been added
  3. The dispatcher tells the stores that a note has been added
  4. The NoteStore is interested in this event, so it updates itself to include the new note, and then calls emitChange() to notify its listeners.
  5. The NoteIndex React component (view) is listening to events on the NoteStore, so once the NoteStore updates, the view re-renders to include the new note

final_project's People

Contributors

cbonaco1 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.