A tool to help potential students better understand the cost of college.
This project is aimed to address the problem of students, parents, and families in need of additional tools during their senior and junior year of high school and can help them make informed decisions about how they will invest their time and money in college (not just at Boise State). These choices, especially in the first-year and first-term, have a high impact on the degree of success a student will (or will not) experience. These choices include things such as how much to work, where to work, how much time to spend on campus, how many credits to take, how many years to graduate, how much time before a student enters the work force, where to live, costs of commuting, time to connect with other students and faculty, project time, time spent studying, academic assistance, etc. Therefore this project was created to help students enter and evaluate different information and see the trade-offs in terms of their time and money they may be making in order to plan and envision life (or multiple lives) as a student.
This project as it stands today is a web appliction that utilizes C#, ASP.NET, Razor Pages, and Microsoft SQL Server which together make up the front-end and back-end which together allows users to create personalized reports of relating to their time and money management when considering college. The functionality that was built within this application allows for users to be able to securely create, login, and sign out of a profile that can store and retrieve all of their past calulation reports. The application also allows for both signed in and non-signed in users to download their reports as a document to their personal machine. The only difference in the user experience is that for non-signed in users they are unable to view,edit, or download any past reports they may have made in the past requiring them create a new report each time. To implement these various features, the application balances the use of a back-end database and the application web controllers/CSHTML views. This project design leads to very effective and fairly expandable project due to the flexiblity of the application web controllers/CSHTML views (ASP.NET & Razor Pages) as it allows for easy integration of server side code to our applications front end. Some examples of this is in our project are the cookie based authentication that we wrote in C# which allowed for simple implementation of secure logins/registrations along side session specific user creditentials that we are able to internally access for other database and web controller functions. Along side this the Razor Pages CSHTML allowed for us to tightly control our applications front end with higher level programmibility offered by C# which made many of the features regarding data manipulation and persistence both app side and database side very convenient. This project also takes adavantage of the xunit framework for the simple integration of database, server app, and front end unit testing to better help with maintenance and any further integration of features to the application. The rest of the application and it's implementation follows a fairly standard approach as we use common practices of page modeling/viewing along side controler interaction that all is supported by a database.
The way that this project works is that it uses it's page models/controllers to manipulate input data provided by the user for each of the feilds provided by each page. In the case that a user is signed in this input data from the page models is sent to the database and stored under the valid user account. This data will be retrieved every time the user choices to either edit or view a past report. The web controllers in the C# code will still then use this data and recalculate the summary data just as they would on a intial post request when submitting the input data on the front end. Once a user has either filled out a new report, retrieved a existing one, or edits an existing one all of the controller calculations will show the summary of the input data and supply the user with feedback about their current calculations or even download the report itself which is generated in a downloadable file on the user machine by the server code. Outside of how the main functionality of the application is it also utilizes cookie based authentication that within our source code generates authorization tokens the application uses to verify a specific user either new or returning.