Skip to content

Fall 2020 Software Specification

psoliss edited this page Dec 10, 2020 · 15 revisions

Welcome to the Team5Repo wiki!

CSCI 150 Fall Project

  1. Introduction

  2. Description

  3. Requirements

  4. Prioritization

  5. Diagrams

1. Introduction

1.1 Purpose

Bulldog Banking is a website that allows you to conveniently keep track of your money from monthly expenses, to manage your money according to your own personal goals. This wiki page will show our list of features and development of the site. This will provide an overview of our development stages and serve as an outline to fulfill our requirements.

1.2 Scope

Bulldog Banking is an online banking website that allows users to sign up for an account. Once a user has created or has an existing account, they are able to log in from the homepage using their credentials. There the user will have access to the user dashboard where financial information is displayed such as the user’s account balance for their checking and/or savings. As well as viewing recent transactions, bills this upcoming week, saving goals, and more.

There are people with various reasons that need financial assistance. Some people can be forgetful about paying their bills, others are bad/inexperienced at handling money, while others just need help managing their budgets. Our website is designed to help people to be more organized with their finances, and allows users to have a better understanding and control of their finances. Users can set monthly bill reminders, set financial goals, and provide their spending information. Our website will offer a simple user interface such as a calendar system with information containing specific details about bills, and the total amount spent that day, week, month or year. Once a user makes an account, they will be prompted to input some of their information that’ll help give BB a better understanding of the user. The user also has the ability to skip this and select their own options. The dashboard is where you are able to access all of the main features and see an overview of your current standing with visuals made from charts.js. The site will need to be able to establish a reliable connection between the client and the server to access and update user information.

1.3 Overview

This wiki will focus on giving an in-depth look at the features and the overall concepts of the site. It will serve as documentation for developers to follow through the development stages of BB. This will serve as a documentation d BB delivers this all in one convenient package that is simple, clean, and user-friendly interface that is easy to view your information.

2. Description

Product Components 2.1

2.1.1 Client

The user interactive experience. HTML, CSS, and some JavaScript will give the user and admin a user interface to interact with. To connect the front-end development to the database, the Python framework Django is used.

2.1.2 Server

The website will be hosted on a web server that will be able to accessed anywhere as long as there is an internet connection. It will be able to interact with the database and relay information to the client side.

2.1.3 The database

The B.B. website can be accessed by any website through any desktop browser that can connect through the internet. However, when it comes to mobile devices with mobile browsers the website is not well-formatted for a mobile user experience. While the website can be accessed by mobile users, it is not well-formatted to view on a smaller screen.

The database used for this project will be directly integrated through the framework (Django). By default, the database will be created using SQLite3 by models. It will access the users authenticated information, and interact with the users stored information such as their bills, accounts, personal information, and transactions. We use class-based views to have direct access to the database in order to make adjustments or add/remove data by the user. The administrators also have access to modify this information and see the tables in the database. Visualizations are linked to the database so information that is adjusted should also be reflected visually. The user will be linked by a foreign key of the logged in authenticated user.

Example of Users -

Username: Test1

Password: algorithm: pbkdf2_sha256 iterations: 216000 salt: l9C1oS****** hash: kfsK9R**************************************

Permissions: active

Example of User’s personal information -

Example of Transactions table -

Transactions are connected to a bill if bill pay is used by the special attribute, which serves as a foreign key.

Example of Bills table -

Bill name: Spotify

User id: Test1

Bill Amount: 10.00

Due Date: 2020-11-05

2.2 Users

The application will have two types of users, a user and a superuser (administrator). The user will be able to input some of their personal and financial information in order to see and keep track of their financial situation.

3. Requirements

3.1 UI Requirements

Home page, Sign up page, admin page, User Dashboard, Calendar, personal info page, etc.

ID: UIR1

Main Page:

Description: Given a user has the write web-address, the user is at the main homepage of the website, where you will be able to login and sign up page if needed.

Rationale: In order to access the site

Dependency: None.

ID: UIR2

Sign-up page:

Description: A user is able to create a username and enter a valid password, that is then authenticated and registered to the database. They will then be redirected to the homepage where they are able to login.

Rationale: In order to become a registered user and to use the site.

Dependency: UIR1

ID: UIR3

User Dashboard:

Description: Given a user has logged in, they will be brought to a page where they are able to view their main accounts, as well as latest transactions and view their calendar of upcoming bills or previous spending. If needed, they are able to click on buttons that will redirect the user to input or update their information.

Rationale: In order to access the site

Dependency: UIR1

ID: UIR4

Userinfo page:

Description: A user can go into the accounts page in order to view, update, or add new information to their account. This will allow them to input their information as a member of the bank.

Rationale: Keep track of what account they are using in order to better assess their finances.

Dependency: UIR3

ID: UIR5

Bills page:

Description: A user can input what type of bills they have, the amount, due date in order to keep track of their finances and to plan their week/month. User is also able to view their transactions in a Calendar format.

Rationale: Give the user a way to display their bill information, as well as interact with the bill and pay it.

ID: UIR6

Transactions:

Description: User is able to view create, delete, and update their transactions.

Rationale: User is able to view and interact with their transactions.

Dependency: UIR3

3.2 Functional Requirements

ID: FR1

Access to Website:

Description: A place where the user can interact with the web application

Rationale: So user can use the banking services online

Dependency: None

ID: FR2

Registration:

Description: A user can sign up to the site with a username and password

Rationale: In order for the User to interact with the site and use services

Dependency: FR1

ID: FR3

Help page:

Description: A place where the user can view contact information of the bank

Rationale: So user can gain assistance or interact with the bank if necessary.

Dependency: FR1

ID: FR4

User login:

Description: User is able to use their credentials they made during signing up in the Homepage

Rationale: User is able to go to their user dashboard where they are able to interact with the site and bank.

Dependency: FR 2

ID: FR5

UserDashboard:

Description: A web portal where a user is able to get an overview of their billing information and view their current balance.

Rationale: A hub where the user can see their important information easily at a glance.

Dependency: FR 4

ID: FR6

Userinfo list:

Description: A place where the user can view their registration information on their profile

Rationale: So user can be registered with the bank and view the information.

Dependency: FR 5

ID: FR7

Userinfo create:

Description: A user is able add their user information into the banks database.

Rationale: So user can have their information registered with the bank.

Dependency: FR 6

ID: FR8

Userinfo update:

Description: A user is able to update their user information into the banks database.

Rationale: So user can change their information registered with the bank.

Dependency: FR 6

ID: FR9

Userinfo delete:

Description: A user is able to remove their user information into the banks database.

Rationale: So user can remove their information registered with the bank.

Dependency: FR 6

ID: FR10

bills list:

Description: A user can view their bill information.

Rationale: So user can have their information registered with the bank.

Dependency: FR 5

ID: FR11

bills create:

Description: A user is able to add a new bill into the database

Rationale: So user can keep track of their upcoming bills.

Dependency: FR 10

ID: FR12

bills update:

Description: A user is able to update their current bills.

Rationale: So a user can change anything about their bills.

Dependency: FR 10

ID: FR13

bills delete:

Description: A user is able to delete an entry in their current bills.

Rationale: So a user can delete a bills.

Dependency: FR 10

ID: FR14

billpay:

Description: When a payment is made, delete a bill if it has been paid.

Rationale: user can pay one of their bills.

Dependency: FR 10

ID: FR15

transactions list:

Description: User is able to view their transactions history.

Rationale: User can view and interact with their transactions.

Dependency: FR 5

ID: FR16

transaction create:

Description: User is able to create a new transaction for their account.

Rationale: So user is able to add a new transaction for their account.

Dependency: FR 14

ID: FR17

transaction update:

Description: User is able to update transaction for their account.

Rationale: So user is able to add a update transaction for their account.

Dependency: FR 14

ID: FR18

transaction delete:

Description: User is able to delete transaction for their account.

Rationale: So user is able to delete a transaction for their account if necessary.

Dependency: FR 14

ID: FR18

Calendar:

Description: User is able to view their upcoming bills by an interactive Calendar

Rationale: So the user is able to get a view of their Bills in calendar format where it can be easier to keep track of the information.

Dependency: FR 10

ID: FR19

About Us:

Description: An about us of the bank and the developers.

Rationale: To get more information of the developers

Dependency: FR 1

ID: FR20

Logout:

Description: A logged in user is able to log out once they are done with their session.

Rationale: So the user is able to end their session.

Dependency: FR 4

3.3 Non-Functional Requirements

3.3.1 Responsive UI

Description: User should be able to access their information from the database and navigate through the site within 3 seconds of requesting an action Rationale: In order for the user to have a fluid experience.

3.3.2 Unique Usernames

Description: Each user should have a username thats unique from any other username, so no two users should have the same username. Rationale: This would have potential sources of error within the database, as well as trying to login.

3.3.3 Browser Compatibility

Description: Web application will work on any major Internet Browser (Firefox, Google Chrome, Safari) Rationale: In order for the user to be able to access the web application for use with their internet browser of choice.

3.3.4 Security

Description: user's password should be encrypted, and not able to access any other user's data within the site if they are not authorized to do so. Rationale: Privacy remains between users.

4. Prioritization

Week Goal
Sept 29 Framework can localhost and display html pages
Oct 6 Database is created, pages are able to redirect
Oct 13 User/signup authenticated, database table created for users
Oct 20 Table created for Input user info, user can logout
Oct 27 New tables created, integrate updated User-Dash html
Nov 3 Finish admin page, Ability to add information to tables with foreign key of authenticated user
Nov 10 Rest API, Visual Creation in JavaScript
Nov 17 Calendar, Dashboard Display important info, go public by hosting on server
Nov 24 Messages added on site, polished up site

5. Diagrams

Use Case Diagram:

Sequence Diagram:

Class Diagram:

Clone this wiki locally