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 ]]
+
-Requirements:
-- Linux server (circa 2011)
-- Node.js (Version 0.4.10 or later)
-- MongoDB (Version 1.8.2 or later)
+# Quick install
+
+Requirements:
-## Quick start for a single server installation
+- 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)
+- forever
$ pwd
/home/you
+ $ install git
+ $ install node
$ git clone git@github.com:/finalsclubdev/FinalsClub fc
$ cd fc
$ git submodule init
[[ flesh this out with correct commands - reference util scripts - fix util scripts ]]
-# Database
+# System components
-The database is MongoDB.
-MongoDB is not a relational database, but rather a noSQL or "document/object" based database.
-Data is stored as structured objects versus tables and rows.
-(More about MongoDB)[http://mongodb.org].
+The system consists of these main parts:
-## Collections
+- The website
+- The collaborative, real-time editor
+- The back channel
-- 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 ]]
+Most of the system is written in Javascript and executed by the Node.js runtime.
# 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 3 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.
Several node modules are leveraged to to make the basic website work:
-- (async)[URL]
-- (aws-lib)[URL]
-- (connect)[URL]
-- (connect-mongo)[URL]
-- (ejs)[URL]
-- (express)[URL]
-- (express-messages)[URL]
-- (hat)[URL]
-- (hooks)[URL]
-- (init)[URL]
-- (jade)[URL]
-- (mongodb)[URL]
-- (mongoose)[URL]
-- (socket.io)[URL]
+- [async](http:npmjs.org)
+- [aws-lib](http:npmjs.org)
+- [connect](http:npmjs.org)
+- [connect-mongo](http:npmjs.org)
+- [ejs](http:npmjs.org)
+- [express](http:npmjs.org)
+- [express-messages](http:npmjs.org)
+- [hat](http:npmjs.org)
+- [hooks](http:npmjs.org)
+- [init](http:npmjs.org)
+- [jade](http:npmjs.org)
+- [mongodb](http:npmjs.org)
+- [mongoose](http:npmjs.org)
+- [socket.io](http:npmjs.org)
+
+
+[[ 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. ]]
+