-
Notifications
You must be signed in to change notification settings - Fork 0
Fall 2020 Software Specification
Welcome to the Team5Repo wiki!
CSCI 150 Fall Project
-
Introduction
-
Description
-
Requirements
-
Prioritization
-
Diagrams
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.
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.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.
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 |
Use Case Diagram:
Sequence Diagram:
Class Diagram: