Boise State University

The Write Class™

At Boise State University, the First Year Writing Program team had developed an algorithm to guide incoming students into the proper first-year writing class. We took this system, The Write Class™ (TWC), and developed it into a web application. TWC is a unique system that uses self-directed placement to assess the student and find the perfect class fit. The First Year Writing Program team approached us to create this web application that would:

  • Allow Boise State University to implement the TWC algorithm necessary to do student placement via flexible forms with various branches.
  • Ensure data security in transit and at rest, and on hardware achieving SOC 2 Compliance, all in Amazon Web Services.
  • Integrate with the Boise State University Single Sign On system to make using the app easy for students, to make the student records have a verified source of student ID, and enable data integrations to be put in place.
  • Add a data integration feature that allows the placement results to be extracted an uploaded into the school’s student information systems.
  • Empower site administrators to change wording without needing to contact developers.
With this challenge given to us, we launched the site in the spring of 2018. The application is a full stack project, with front-end, API, and cloud architecture in AWS.

Live Project Link (Boise State University - The Write Class™)

react
redux
nodejs
postgreSQL
aws
bootstrap

Technologies Used

  • UI
    • React
    • Redux
    • Bootstrap & all CSS
    • React JSON Schema
  • API
    • NodeJS
    • Koa
    • Passport.js
  • Cloud Architecture - all in Amazon Web Services
    • Lambda + API Gateway
    • Redis
    • RDS - Postgres
    • Cloudfront + S3
  • DevOps
    • Gitlab CI/CD
    • Amazon Web Services CLI
  • Project Management
    • Pivotal Tracker for Agile software management
    • Gitlab for source code
    • Zendesk for customer feedback and support
    • Sentry for automatic bug monitoring
    • Pingdom for uptime and performance monitoring

Project Role

Our roles in this project included:

  • Software Architecture and Programming for both Front-end and API
  • Cloud Architecture and hosting for Amazon Web Services serverless stack
  • Integrating with Boise State University's Single Sign On which used OpenID Connect
  • DevOps integration within GitLab where we do full CI/CD
We managed day-to-day project management using Pivotal Tracker and planning weekly sprints.

Single Sign On
Student Flow
Progress Saved
Administrator Flow
Data Integration

Feature Summary

Here are some of the features within the app:

  • Single Sign On using Boise State University’s existing student login system to easily fit within the ecosystem of apps that students have to use.
  • Custom, complex form-based algorithm that results in an English course placement for the student with optional online follow up application for admission into higher level courses.
  • Student progress through the forms is saved to make resuming an application easy and reviewing of placement results possible.
  • Administrative panel for searching for student responses and viewing all answers.
  • Administrative workflow additions for reviewing student-submitted material, including email notifications and follow up to students on accept or rejection.
  • Ability to export all student responses.
  • Data Integration using an API created to allow university IT departments to pull data and push into student info systems.
  • Online editing of the wording so that admins don’t need to contact a developer to get simple wording changes completed.

Technology Details

We chose React as the front-end Javascript framework for this project. We knew the project would involve a lot of data from the custom forms we would be building, and we identified the open source mozilla-services/react-jsonschema-form as a solid foundation to build up these custom forms and logic. We combined that with using Redux as a central data store to give us one-way data flow and to break the complex data transformations into isolated pieces to help with design and debugging.

We chose NodeJS as the API language as the API wouldn’t be very large, but we wanted to be able to have the same libraries available for data validation on both the front-end and API. We also wanted a language that would work with Amazon Web Services Lambda. Why Lambda? Due to the nature of the app, it is used very heavily 2-3 times per year, during orientation that lasts a few weeks, but relatively idle the rest of the time. Lambda allows us to scale during those times, but be low cost during times it is not used as Lambda charges based on actual usage.

Our choice of Amazon Web Services for the cloud architecture and hosting was to make it easy to meet the requirement of SOC 2 Compliant hardware and data encrypted at rest and in transit.

Project Status

We are looking forward to working closely with the TWC team as we plan for future phases and bringing more universities onto the TWC platform.