Architecture
The SMYC logical architecture consists of three components: Sharers, Viewers, and the Database. This is illustrated in the following diagram:
![](architecture.png)
The relationship between the Sharer and the Database is straightforward -- the Sharer writes "files" to the Database. The relationship between the Viewer and the Database is more complicated than the names imply. In fact, these two components are associated in three different ways. Most obviously, the Viewer reads from the Database at startup. However, since the Viewer has an "editable" mode, it also acts as the Subject to the Database's Oberver whenever a change is made. Finally, since other Viewers can be attached to the same "file", these Viewers act as Observers to the Database's Subject whenever the Database changes. In this way, multiple users can view and edit the same "file" simultaneously.
Incorporating SMYC into a Development Environment
The SMYC Viewer runs inside of any modern browser, so students can share with anyone.
There are two SMYC Sharers. One runs inside of any modern browser so can be incorporated into any development environment. The other is a plugin for jGRASP which is particularly appropriate for beginning programmers, since they do not have to leave their integrated development environment (IDE) to share files.
Powered By
SMYC is powered by CodeMirror, Firebase, and Firepad.