Skip to content

Further Development

Cumhur Korkut edited this page May 21, 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. If you want to avoid this repetitive process, you can run the command grunt watch, which will watch your changes in the files and lint/compress the files automatically after any changes.

The JavaScript files used in the front end are linted with JSHint, using Grunt. Therefore running Grunt after the changes/additions will help you use the best practices.

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 back end code is also linted. Hence, running Grunt to check the code quality is recommended.

Spec keeps its modules in modules/ 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.

Hacky Assign Module

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

Styling

Use spaces instead of tabs.

Clone this wiki locally