In Updates, Services By Nathan C. Castle - Director of Services on June 23rd 2014

Note: This post was originally published on June 15, 2014.

Open Source

SG Services is moving to a new "Open Source" development model. Moving forward, the source code for all of our software, including websites, will be published for unlimited use to the community. There are a few things to note, which will protect SG while maximizing value for the community:

  • Our projects will all be split into two components: a white-label generic version of the project, and all of the components and styles needed to make it SG specific. This allows us to open-source the most important parts of the project while protecting our own identity.
  • Not all new software will be open sourced right away. Some projects will need time to be split according to the aforementioned rules.
  • Not all projects will be solely maintained by SG.
  • SG developers will contribute to open source projects, while SG will accept those contributions from our own developers and others

Engineering Excellence

SG Services needs to be known as a solid and reliable provider of services that make the RIT experience better. That means they need to be beautiful, consistent with each other, fast, reliable, and feature-rich. We need to set a high bar of quality that rivals those of Silicon-Valley startups, and we must pioneer the use of enterprise-class engineering processes within the RIT community to reach that goal. As part of that, a set of engineering standards and processes are being developed. See below:

Introduction

Student Government Services provides a number of important services to students, many of which include a software component. In order to protect our reputation for quality and to provide the best possible service to our students, we must have solid, industry-proven engineering practices. Technical Excellence is a top priority of SG Services.

Source Quality Standards

All software should be written so that it meets the best standards of its respective langauge/environment. For example, all websites should be 100% HTML5 and CSS3 compliant. All applications should use a DBMS rather than hand-crafted SQL statements. Java applications should use javadoc comments where applicable and C#/VB applications should use XML comments when when self-documenting code practices aren’t enough to clarify intent.

Version Control Standards

There will be two components to every application we develop open source:
  • Generic white-label version with no specific customizations for RIT’s environment. That means no branding, no reliance on a specific type of database, no mention of RIT outside of the license, and no RIT specific authentication or logging.
  • Components that add branding, specific database support, authentication and everything else we need to turn the application into an SG services-specific deployment.

Testing

All available unit tests must be run at every build, and if a single test fails, then the build also fails. Before a build may be promoted to production, it must have had basic smoke testing of the UI performed to verify that nothing is broken.

Additional recommended testing:

  • Test to ensure that application is not broken by unexpected input
  • Load test to ensure it meets the needs of our users
  • Test UI across high-res desktops, high-res and low-res tablets and phones, in both landscape and portrait
  • Positive test every path a use can take through the application

Issue Tracking

All planned improvements, found defects, and any other issue must be tracked in either YouTrack for SG projects or GitHub for public projects.No changes should be made to the code without an associated issue number.

Continuous Integration

All SG projects must be managed by our continuous integration server, TeamCity. Every project will be build nightly, as well as with every commit to VCS. This is to ensure that our software is reliable and that defects are found as soon as possible. At every build, the above testing procedures must be followed, and the continuous integration server will manage this.

Continuous Delivery

The continuous delivery process starts with the nightly build. As soon as a build passes all unit tests, it is pushed to the development environment for further testing. At each delivery milestone or end of sprint, the build will be promoted to User Acceptance Testing. The UAT deployment will work against the production database. Assuming there are no showstopping bugs, the UAT’d build will be promoted to deployment. This entire process is managed by TeamCity.

New Service: SG Sites

In the past, club websites have been managed by a piece of software known as "webman". This software has the following problems:
  • It requires knowledge of PHP/HTML and design skills to design nice websites
  • It is difficult to manage, and the process to give a club access to their site is extremely difficult.
  • Last year, clubs had problems and SG wasn't able to help, and at the same time ITS wasn't able to offer good support either.

The solution: Wordpress Multisite

Wordpress multisite is an SG managed version of wordpress that can host many completely independent sites. It has the following features that make it ideal for our use:
  • Built in support for RIT's authentication
  • Easy ability for services team to grant and revoke access for users to specific sites
  • Ability to create beautiful websites with NO technical skills.
  • Strong built in ability to handle blogs, static pages, and many other staples of modern websites
  • Easy extensibility
This change will make life easier for our clubs and increase the standard of quality for RIT websites. WordPress is free software.

The first round of invites will be sent out to clubs within the next few weeks. We'd like to see all SG club sites migrated away from webman by the end of the semester.

Send a Smile

The project I've been working on, Send a Smile is an example of the new Open Source development model. I, as an individual, have created this generic project, which services will eventually take, customize and put into production. See the Source here: https://github.com/NathanCastle/Send-a-Smile/

The site is really coming together, and I've included some screenshots so you can see what's up.
AdminPage
Administration panel for organizations.
ExploreHome
The main place where users start to explore all of the publicly available feedback data.
heatMaps
Organizations can see a heatmap of where their positive and negative feedback is happening.
Home
Home page - can be customized to make SG branding shine.
LocationDetails
The public can see a rich report of the feedback for a particular location, which includes number of smiles and frowns, overall picture of feedback tone, and of course where it is on the map.
locationListing
Organizations have access to a rich and powerful dashboard for managing their feedback.
locationMap
Organizations can easily visualize where their feedback locations are.
manageUsers
Each organization can manage their own users, including fine-grained control for what they can and can't see and do.
mobileSmile
Mobile interface for submitting feedback.

MultiOrgSelect
A user can be an administrator for multiple organizations, and this page makes it easy to switch between managing multiple.
newLocation
Just drag and drop the marker to create the feedback location.
newOrg
It is super easy for SG to create a new organization.
orgCustomReport
Organizations can generate an excel report, for when they need to do more complex analysis of their data.
orgEdit
Organizations can self-service change their name, email and URL as needed.
orgListingSuper
Its easy for SG to get a global perspective on what organizations are doing with the app.
OrgPage
Its easy for the public to see and understand feedback for an organization.
OrgPageBottom
OrgSmileList
Organizations can delete feedback, if for example, it contains obscenity.
orgUserCreate
Control what new users can do in the system.
SmilesFrowns
The UI works hard to make understanding the data easy - smiles are always highlighted in green, frowns are always highlighted in red, and recent smiles receive a nice badge.
SmilesFrownsPage3
Data is broken up into easy-to-use pages.
super
Even non-technical Directors of Services can manage the application.
superUserList
userEdit
User management is super easy with large pictures for identifying users. Their user image is the same across wordpress and this site.
If you tl;dr'd that, here's a quick snapshot of the features I really like:

  • Application admin panel allows even non-technical people to administer the site with ease
  • Each organization gets its own easy-to-use dashboard, which includes the ability to look at their feedback, manage organization users, and manage feedback points
  • Google Maps integration to make it super easy for anyone to visualize feedback
  • Gravatar integration to help identify users visually, without having to manually add a user picture.
  • Use of bootstrap for theming means it is easy to make beautiful new themes that are consistent with our branding
Note: This is still under active development. The application is yet to be polished fully, and many features will be added and tweaked before this goes anywhere near production. I'm serious about those engineering standards!

GitLab/Redmine/others

SG Services will need reliable tools to manage our projects. Many good, free solutions exist, and we are currently evaluating several. We've also heard that the existing tools for engineering students and the like aren't very good. Tools like wikis, time and issue tracking, and file storage would be nice, and the aforementioned solutions have those things. This is still in the very early stages.