2022 Senior Capstone Project

Overview


During my last year at University, I worked on a website development project with two other students. Our group built a Django application to migrate an excel game to the web for a local bank. A web application would make the game easier to modify and mantain, as well as give more control to admins and users. This spreadsheet was very complicated with hundreds of variables to keep track of. At the end of the project, we delivered the application to the client and gave a presentation.

Besides Django 4, the other tools/technologies used were Python 3, JavaScript (ES6), HTML5, CSS3, Bootstrap, PostgreSQL, SQLite, Azure, Visual Studio Code, and Github.

Process


The capstone project spanned two terms totaling about six months. Each week we met with the client and discussed problems and questions that had come up. We met with our capstone teacher each week to ensure we were on track with the project.

First Term (January 2022 - March 2022)

During the first term we mostly planned the application using a waterfall methodology. While planning, we created multiple documents such as a Vision and Scope document, Software Requirement Specifications (SRS) document, and test case document. One of my contributions during this term was producing page wireframes for the application.

At the end of the term, I also began contributing to the application codebase in github. My first contributions were the dashboard for controlling the game and the team user interface for submitting game decisions.

Second Term (January 2022 - June 2022)

During the second term, we switched to an agile development methodology. Each week was a new sprint with new tasks for each of us to complete. We were free to choose what we would do for each sprint. During this term, I worked on many different things. Some of my contributions were page styling using CSS3/Bootstrap, and the factors page used to set the variable values for new games. I also did work with the Django ORM, models, and forms.

At the end of this term we presented our project to our teachers, client, and other students.

Results


Our client was happy with the result and said the project was successful.
Each member of my team was awarded an Outstanding Computer Science Senior 2022 award for our work on the project. We had been the most successful group in the class.

The following are some images of the application with descriptions:

Factors Page

Factors Page

This image is of the application factors page. This page is where an administrator can set the game/simulation variables before the game is started. This page uses JavaScript to automatically calculate certain fields based on other fields on the page (The calculated fields are in red). The game results depend on what variable values are saved using this page. This page contains a dozen Django model form sets saved together on submission. The factors page took multiple weeks to complete due to its complexity.

Decision Sheet Page

Decision Sheet

This image shows the decision sheet page. This is where a normal user makes decisions for each game year on the page. They can only submit decisions once the admin unlocks the current year via the administrator dashboard. This page uses a Django form. Using CSS3 and Bootstrap, I ensured that all forms and pages fit any screen size.

Dashboard Page

Dashboard

This image is of the dashboard page. The dashboard shows which teams have submitted decisions indicated by the green check in a year column/team row. This admin dashboard also has functionality to reset team decisions, view decisions, and control which years are locked and unlocked.

Thanks to both of my teammates as well! I am so proud of the work that we did together.