Menu

SPI Lab

SHMolyneaux

SPI Lab

Contents

Introduction

SPI Lab is a website which allows students to interact with each other and collaborate on projects for the SPI course taught by Dr. Kremer. It was created by Stephen Molyneaux between Winter 2012 and Spring 2013. It includes many examples of how SnakeCharmer can be used. Sadly, it does not take advantage of [Classes] within [pstorage].

Interesting features

Over the course of its development SPI Lab has gained a number of interesting features:

  • Login Widget
  • Sections
  • Citations
  • Projects
  • Blogs
  • Tags
  • Comments
  • Events
  • Calendars
  • Searching
  • Various Editors
  • Code Highlighting

Login Widget

SPI Lab contains a small number of widgets displayed at the right hand side of every page. The login widget asynchronously verifies the login credentials before refreshing the page. This reduces user frustration if they provide incorrect information. Go to the [SPI Lab Login Widget] page for more details.

Sections

Throughout the website, section objects are used to display information. Blog posts, events, citations, and sidebar information are stored as sections. Besides citations, they share a common editor. This editor includes the ability to add pictures, add text, embed citations, embed calendars, highlight code snippets, include lists, attach labels, and more. Each of these elements is called a "block".

Citations

Citations share a similar format as sections. Articles, books, inbooks, booklets, incollections, inproceedings, tech reports, and web pages can be cited in SPI Lab. Citations have their own editor separate from sections.

Projects

Projects are collections of sections that are linked to from the Missions sidebar. Users can use the collection of sections to document and collaborate on projects.

Blogs

Each user is given a blog. The blog is essentially a list of sections that the specific user can freely add to and modify.

Tags

Tags are labels given to sections so that those keywords can be searched easily. Words, user, and projects can be tagged in a section.

Comments

Each non-citation section has the option of users being able to comment on it. Text, along with an author name and time stamp are included. Comments can be modified after they have been posted.

Events

Events are sections with a designated time. Tagging events allows them to be included in relevant calendars.

Calendars

Calendars are blocks that are included within sections. A calendar displays (in order) the events that occur on specific days in a given month. Events can be filtered by their tags, with the same syntax as with searching for sections.

Searching

All sections can be indexed and searched by their tags. A search query has a number of keywords, with groups of keywords separated by commas. For something to be returned in a search it must have a matching tag for each keyword in a group.

Editors

Section Editor

The section editor allows for users to edit sections and events (not including citations). The owner of a section can allow other users to modify the section. The title, tags, and blocks can be modified in a browser.

Citation Editor

The citation editor allows for user to create a modify citations from an assortment of types. Articles, books, and web pages are just a few of the things that can be cited. Each citation type is defined by a simple JSON-formatted file.

Comment Editor

The comment editor is a very minimal editor to allow users to modify their comments on a section.

Code Highlighting

Snippets of code can be included in sections. A language can be set to highlight specific keywords within the snippet. C/C++, java, python, php, xml, and others are supported. It uses Alex Gorbatchev's Syntax Highlighter.


Related

Wiki: Classes
Wiki: SPI Lab Login Widget
Wiki: Table of Contents

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.