Team 7 - Front End · Team 7 - Front End Li Breite, Greg Dorshimer, Joseph Griego, Anu Gulati,...

22
Team 7 - Front End Li Breite, Greg Dorshimer, Joseph Griego, Anu Gulati, Caitlin Matuszak, Caesar Nuzzolo Team 9 - Back End Adrian Kant, Austin Kilduff, Edward Pratt, Cameron Sun, Andrew Krischer

Transcript of Team 7 - Front End · Team 7 - Front End Li Breite, Greg Dorshimer, Joseph Griego, Anu Gulati,...

Team 7 - Front End

Li Breite, Greg Dorshimer, Joseph Griego, Anu Gulati, Caitlin Matuszak, Caesar Nuzzolo

Team 9 - Back End

Adrian Kant, Austin Kilduff, Edward Pratt, Cameron Sun, Andrew Krischer

About Credit for Life - The PrototypeCredit for Life is a nationally recognized fair designed to help high school students develop financial management skills they will use throughout their lives.

Currently running in Duxbury, MA, the game is run exclusively using paper materials which requires extensive setup and stress to our client, Stephanie. We set out to create a digital prototype of the Credit for Life fair to ease this process.

Live Demo!

Project Starting Point

System Expectations vs Reality

Requirements:

● User Creation/Signup● User Authentication● Game Setup & Administration● Student Interface● Volunteer Interface● Admin Interface● Student Game State (i.e. student data persistence)● Student Game Actions (i.e. moves players can take)● Game User Capacity - 100s of students

The Prototype:

● User Creation/Signup○ Create user with role○ Student, Volunteer, or Admin

● User Authentication○ Basic Authentication

● Game Setup & Administration○ Create/Manage Game, Distribute Codes○ Manage Volunteers and Booths

● Volunteer Interface○ Student Tracking

● Student Game State○ Booth Status & Generated Credit Score○ Limited Functionality - Needs Expansion

● Game User Capacity○ Untested

Client Benefits

Before:

● Students required to keep track of everything on paper● Administrators have to coordinate all volunteers and booth information● Students have to do all calculations themselves

Now:

● The app will keep track of all booth information and do all calculations● Opportunity to expand to include features like reporting on student data● Lessen the setup burden of administrators ● Automates processes like career selection and salary/credit score assignment

Code Quality

- Review of test specifications before development

- Code Reviews via GitHub for each ticket

- Code Coverage: 97-100%

Sprint Progress Over Time - Team 7

Sprint 1 - Project Definition, Confluence Documentation and Jira Tickets Sprint 2 - UML Design, Mockups, Requirements Documentation, Environment SetupSprint 3 - Begin Development

● Authentication ● Account Creation

Sprint 4 - Remainder of Development● Volunteer Workflow● Manage and Create Games● Assign Volunteers● Career Selection

Sprint Progress Over Time - Team 9Sprint 1 - Project Definition, Client Setup

Sprint 2 - Dev Beginnings

● Hello World App● Vagrant● Jenkins● Tests

Sprint 3 - API Design

● Account Creation / Forgot Password

Sprint 4 - Account Management, Game Setup, Basic Game Functionality

Jira Cumulative Flow Diagram (Team 7 & 9)

Weekly Progress (Team 7 & 9)

Process/Teamwork - Team 7

We had weekly team meetings (pull tickets into sprints, work together, etc)

Used Slack to communicate and Confluence and Jira to organize process

Github used to organize code, with a branch for every ticket

Team members would take tickets on a first come first serve basis

Code reviews - whoever was available

If there were any issues, the rest of the team was always happy to help

Process/Teamwork - Team 9

Confluence - Requirements, Meeting Notes, and API Documentation

Slack - Daily Communication,

Github - Pull Requests, Code Reviews

Jira - Epics, Stories, Sprint Management

Weekly Meetings - Sprint Planning, Updates

Process/Teamwork - Team 9

SLACK

MEETINGS

CONFLUENCE

JIRAGIT

MEE

TING

PL

ANNI

NG

REQUIREM

ENTS

TAS

KS

DEVELOPMENT

PULL

REQ

UESTS

CODE

REVIEWS

SP

RIN

T

PLA

NN

ING

Process/Teamwork - Cross Team

Weekly Meetings - Sprint Planning, Cross Team Process

Confluence - Code Communication and API Documentation

Slack - Daily Communication, API Revision Announcements and Requests

Challenges - Full Project

Took longer than expected to get project details, requirements, a client

Otherwise, we had very good communication and teamwork once we got the ball rolling.

Challenges - Team 7

● Joe :(○ Learning React○ Deploying, other DevOps needs

● Initial confusion regarding format of test specifications

● Creating front-end pages for incomplete back-end endpoints

● Usability Tests○ Surveying high school or freshmen students has

complicated Northeastern rules○ Couldn’t actually demo the game with high school

students

Challenges - Team 9

Inexperience with Flask

App/Test Organization

Python Dependency Management

Local Same Origin Use of API - Vagrant

Operations - Cross Team

We deployed our own Jenkins instance to handle automated builds and testing

Issues we encountered:

- Node is packaged on Debian (and thus Ubuntu) in a way that is incompatible with most scripts

- Webpack uses a lot of memory

Successful builds do not automatically deploy to production, but promoting a build is a one-step process:

Project Handoff

Frontend is fully self-contained; the build artifact is ready to be served by any web server.

We provide an Apache configuration for the backend that loads the appropriate modules and sets up the WSGI application

We adapted the setup scripts for vagrant to make setting up a new server as simple as running two scripts. The instructions are on confluence / in the readme.

Project Future - Functionality

Gameplay Details (Complexity)

Gameplay Customization (Booth Settings)

Statistics and Heuristics

Company Sponsorship Integration

Project Future - Team and People

The Commonwealth of Massachusetts is interested in adopting this project and using it in high schools around the state.

Though there will likely be teams working on this project next semester and future, state-level contractors, we hate to see this project go...