Post on 25-May-2020
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.
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
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