docs 4/head
authorJoe Hitchens <joe@sleepless.com>
Sat, 12 Nov 2011 20:03:04 +0000 (12:03 -0800)
committerJoe Hitchens <joe@sleepless.com>
Sat, 12 Nov 2011 20:03:04 +0000 (12:03 -0800)
README.md
app.js

index 149f1b58643aafabc52790bd94b14e9c8262aa5d..8c2a35511421345065a9ed8878ee72f60d08436f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -7,18 +7,25 @@ FC is a 501(c)(3) non-profit open education project dedicated to
 helping college students collaborate, learn, and share their knowledge freely online.
 
 
-# Installing
+## Additional resources
+
+[[ discussion groups, chat rooms, etc. related to FC and FC sources ]]
+
+
+
+# Quick install
 
 Requirements:
 
-- Linux server (circa 2011)
+- A typical Linux server (circa 2011)
 - Node.js (Version 0.4.10 or later) [More ...](http://nodejs.org)
 - MongoDB (Version  1.8.2 or later) [More ...](http://mongodb.org)
-
-## Quick start for a single server installation
+- forever 
 
        $ pwd
        /home/you
+       $ install git
+       $ install node
        $ git clone git@github.com:/finalsclubdev/FinalsClub fc
        $ cd fc
        $ git submodule init
@@ -27,62 +34,24 @@ Requirements:
        [[ flesh this out with correct commands - reference util scripts - fix util scripts ]]
 
 
-# Resources
-
-[[ discussion groups, chat rooms, etc. related to FC and FC sources ]]
-
-
-# Database
-
-The database is MongoDB.
-MongoDB is not a relational database, but rather a noSQL or "document/object" database.
-Data is stored as structured objects versus tables and rows.
-(More about MongoDB)[http://mongodb.org].
+# System components
 
-## Collections in the database
-
-- archivedcourses
-       [[ schema needed ]]
-- archivednotes
-       [[ schema needed ]]
-- archivedsubjects
-       [[ schema needed ]]
-- courses
-       [[ schema needed ]]
-- lectures
-       [[ schema needed ]]
-- notes
-       [[ schema needed ]]
-- posts
-       [[ schema needed ]]
-- schools
-       [[ schema needed ]]
-- sessions
-       [[ schema needed ]]
-- users
-       [[ schema needed ]]
+The system consists of these main parts:
 
+- The website
+- The collaborative, real-time editor
+- The back channel
 
-## [[ stuff ]]
+Most of the system is written in Javascript and executed by the Node.js runtime.
 
-[[ notes about scaling/replication/etc. ]]
 
 
 # Source Code
 
-The source code for the website itself consists of these main parts:
-
-- The collaborative, real-time editor
-- The back channel
-- The surrounding website
-
-These pieces are written in Javascript for Node.js.
-
 
 ## The Collaborative Real-time Editor 
 
-The real-time editor is an embedded editor called
-[Etherpad-Lite](https://github.com/Pita/etherpad-lite) (EPL).
+The editor is an embedded editor called [Etherpad-Lite](https://github.com/Pita/etherpad-lite) (EPL).
 It provides the ability for multiple people to simultaneously edit a single document.
 The documents in FC are the notes for a specific lecture.
 
@@ -131,6 +100,43 @@ Several node modules are leveraged to to make the basic website work:
 [[ more detail about website generally, then defer to src comments ]]
 
 
+# Database
+
+The database is MongoDB.
+MongoDB is not a relational database, but rather a noSQL or "document/object" database.
+Data is stored as structured objects versus tables and rows.
+(More about MongoDB)[http://mongodb.org].
+
+## Collections in the database
+
+- archivedcourses
+       [[ schema needed ]]
+- archivednotes
+       [[ schema needed ]]
+- archivedsubjects
+       [[ schema needed ]]
+- courses
+       [[ schema needed ]]
+- lectures
+       [[ schema needed ]]
+- notes
+       [[ schema needed ]]
+- posts
+       [[ schema needed ]]
+- schools
+       [[ schema needed ]]
+- sessions
+       [[ schema needed ]]
+- users
+       [[ schema needed ]]
+
+
+## [[ stuff ]]
+
+[[ notes about scaling/replication/etc. ]]
+
+
+
 # AWS Infrastructure
 
 The actual finalsclub.org servers run in the cloud on Linux servers, using Amazon Web Services (AWS).
@@ -159,3 +165,4 @@ NOTE: We still have an ongoing issue with the EPL server hanging up.  This is be
 
 
 
+
diff --git a/app.js b/app.js
index 722e164d76d40103e57825360bf2c37687d93320..295cfbe874c04671248ff70821a3f23df6ac4b09 100644 (file)
--- a/app.js
+++ b/app.js
@@ -1648,7 +1648,25 @@ app.get( '/archive/note/:id', loadUser, function( req, res ) {
 //
 // Data types:
 // Posts -  Posts are the main items in backchannel, useful for questions or discussion points
-//             [[ example object needed]]
+//             [[ example object needed with explanation E.G: 
+/*
+               Post: { postID: '999-1',
+                                 userID: '1234',
+                                 userName: 'Bob Jones',
+                                 userAffil: 'Instructor',
+                                 body: 'This is the text content of the post.',
+                                 comments: { {<commentObj>, <commentObj>, ...},
+                                 public: true,
+                                 votes:   [ <userID>, <userID>, ...],
+                                 reports: [ <userID>, <userID>, ...]
+                               }
+                 Comment: { body: 'foo bar', userName: 'Bob Jones', userAffil: 'Instructor' }
+               
+                 if anonymous: userName => 'Anonymous', userAffil => 'N/A'
+*/
+//
+//
+//
 // Comments - Comments are replies to posts, for clarification or answering questions
 //             [[ example object needed]]
 // Votes - Votes signifyg a users approval of a post
@@ -1669,6 +1687,7 @@ app.get( '/archive/note/:id', loadUser, function( req, res ) {
 //             [[ example needed ]]
 // reports - An array of user ids which are the users that reported the post
 //             [[ reports would be "this post is flagged as inappropriate"? ]]
+//             [[ bruml: consistent terminology needed ]]
 //
 // Posts and comments can be made anonymously. When a post is anonymous, the users info is stripped
 // from the post and the userName is set to Anonymous and the userAffil to N/A. This is to allow