Skip to content

Further Development

Cumhur Korkut edited this page Mar 11, 2014 · 8 revisions

Spec is an application developed specifically for Wesleyan University Instructional Media Services. Therefore, making it generic event management application is not a priority.

This page is a guide for the further development of Spec, for both IMS programmers and others.

Front end

The CSS and JavaScript files are optimized and compressed by Grunt task runner. The configurations for it are in Gruntfile.js, which you can run by the command grunt if you have grunt-cli installed. The ejs templates include paths to the dist folder, therefore you should run Grunt after any change if you want to see it in effect.

Many library files are included in Spec repository, this is mainly because those files are not available on CDNs, or their version used in Spec is not offered online anymore. These libraries are also compressed by Grunt tasks.

Back end

Node.js code is also linted with JSHint, using Grunt. Therefore running Grunt after the changes/additions to the back end will help you use the best practices.

Spec keeps its modules in module/ folder, and its functions that handles routes in the folder routes/

In order to be used by other institutions, a module (or page) that handles event addition and update should be developed. The current event addition is handled by routes/fileUpload.js and it depends on the XML files generated by Wesleyan EMS (Event Management System). Since the uploaded files can (and do) contain events that are already added to the database from the prior XML files, Spec stores the last file uploaded and when there is a new upload, it loads and parses the two XML files and compares for event additions, deletions and updates.

Auto Assign Module

Spec uses an auto assign module that assigns certain staff to certain repeating events. These auto assignments cannot be managed through an interface yet, they are managed in modules/autoAssign.js. More explanation can be found in the comments there.

Clone this wiki locally