My favorites | Sign in
Project Logo
                
Search
for
Updated Nov 07, 2008 by li...@live.ca
Labels: Featured, Phase-Requirements
FeatureList  
List of features still to be developed.

Introduction

These are the features we still need to develop for Spending Profile. Want to implement one? Simply edit this page and add your name beside it where it says "Owner". Then email lisac@live.ca to become a project member with commit rights to the code repository, and to discuss the feature and its development.

Features Still to Implement

Use the online demo to see what we mean by the featurs below.

  • Migrate existing main page to Ajax (Shared ownership: pick from the list below)
    • F016 Search box: expose it in the UI and convert back end to Ajax. NOTE: SEE IF THE SEARCH FEATURE NEEDS TO BE RETHOUGHT BEFORE USING.
    • F017 Information bubbles: the ? beside fields in the form: expose them in the UI, hook up existing info bubble scripts. May not require Ajax.) (Owner: enter your name)
    • F018 Feedback form: expose it in the UI and convert back end to Ajax
    • F019 Add transaction: make the Add Transaction button send the Ajax request to the server. Note the request itself is already done.
  • F035. Delete multiple transactios at once
    • Level: intermediate
    • Required: javascript, PHP, SQL
    • Allow the user to select multiple transactions and delete them together.
    • Provide a delete button on the toolbar above the transactions table, and if possible link the functionality to the delete key as well.
  • F036. Copy and paste transactions
    • Level: advanced
    • Required: javascript, PHP, SQL, html, css
    • Note: Customer request made November 2, 2008
      • Feedback: let me "copy" a recurring transaction - such as daily coffee so I don't have to enter it manually every day :)
    • Allow the user to select multiple transactions and copy/paste them.
    • How to determine the date (suggestion): Default to the current date if the current month is in view. If pasting to a month other than the current month, default to the same day of the month as the original transaction. If pasting into a view that spans more than one month, what to do? Prompt for the date?
    • Note: If a search filter is active, it should probably be kept, but what if the pasted transaction would not appear due to being blocked by the filter? Message? Popup saying you may want to clear their filter?
    • Transaction(s) should be highlighted after pasting so you can easily find them to change their date(s) and other details if desired.
    • Provide copy and paste buttons on the toolbar above the transaction table, and if possible link the functionality to the CTRL+C and CTRL+V keys.
    • Handle duplicates when pasting. Flag them and/or make it ask for confirmation.
  • F037. Get monthly statements running again
    • If possible put the trigger script on a hosted server that's running all the time; not on our machine that could be switched off.
  • F038. Make import page able to add/rename categories
    • Note: Customer request made November 6, 2008
      • Feedback: I add all of my expenses via the mass import data file function, but I can't change/add categories via that form. I wish I could.
    • To consider: If we change the import page to use the new smart drop-downs, this may work automatically. At least adding might. Renaming may be tricker.
  • F028. Make income amount column bold, to differentiate from expenses (Owner: enter your name)
    • Level: easy
    • Required: HTML
  • F003. Display the blue tabs on the outer site (Owner: Charbel Choueiri)
    • Level: easy
    • Required: PHP, HTML
    • Make the blue tabs from the inner site also appear on the outer site for logged in users only. This is so that they can easily return to their main account pages.
    • Currently, if a user logs in and then clicks a link in the banner or footer, they are taken back to the outer site with no links to get back to their account.
    • The tabs in question are the blue ones under the banner after logging in. Currently we have Main, Graphs, Budget, Import and Account.
  • F004. Display the user’s email address after logging in (Owner: Charbel Choueiri)
    • Level: easy
    • Required: HTML and some PHP
    • Display the currently-logged in user's email address on the same line as the tabs, right-aligned.
  • F010. Display Statments on Demand (Owner: enter your name)
    • Level: intermediate
    • Required: PHP, html, css, javascript
    • Allow the user to display a statement for any time period, on demand.
    • Possible enhancement: allow them to email themselves a copy of the statement
    • Possible enhancement: show a printer-friendly version of the statment
  • F006. Export financial data (Owner: Abu)
    • Level: advanced
    • Required: tbd
    • OFX = Open Financial Excange. It is pretty much the cross-bank accepted standard for financial data. Parsing it is not difficult - see how Import is implemented. We now need to do the reverse and convert Spending Profile transactions into OFX format.
    • The OFX specification is available here.
  • F013. Support for wireless devices (Owner: Jessica Pan)
    • Provide a very basic version that runs on handheld devices.
    • Just the sign in form and add transaction to start with.
    • So that users can enter transactions from their internet-enabled handheld devices.
  • F014. Populate the demo account through a script (Owner:Xin Liu)
    • Level: intermediate
    • Required: SQL, PHP
    • Write a script that populates the demo database with a standard set of sample data.
    • Adds a standard set of transactions to the current month. We can set it to run regularly (ex: monthly).
    • You’ll need to come up with a standard set of transactions - play around with the demo until you get something that displays nicely in the pie graphs and could represent a typical family budget.
    • Perhaps we can set/reset the budget page to its defaults as well through the same script.
  • F027. Make a new pie chart showing the breakdown of expenses by fixed and variable
    • Level: intermediate
    • Required: PHP, 2d graphics programming, some HTML
    • The pie chart will just have 2 slices: fixed and variable.
    • See also feature F033
  • F033. Make a drop down to choose pie chart type (Owner: enter your name)
    • Level: advanced
    • Required: Javascript, HTML, PHP
    • Description: There are more pie chart types than just the two we currently show (Expenses by Category and Expenses by Vendor). We can create pie charts for many other things, such as Expenses by Fixed/Variable, Expenses by Payment Method, and all of these can apply to income as well. So rather than cram all the pie charts onto the main page, keep the two pie chart spaces and put a drop down on the toolbar for each, which allows the user to select from the different types of pie chart.
    • Note: this feature does not involve creating the different types of pie chart; just providing the drop down mechanism to switch between them.
    • Early mock-up image of how it could look.
  • F031. Create a tip box or other means of informing users about functionality
    • Level: intermediate
    • Required: HTML, css, javascript, php
    • We're getting feedback such as "I need a calculator" or "oh my goodness, just discovered after 6 months that you can sort on columns in the transaction table by clicking on the column headers!" Well, if this isn't obvious then we should help users learn what they can do on the site. Is a tip box the best way? Or a tutorial? And where would it fit in the layout? Make a proposal!
  • F020. Search feature V2.0 (Owner: enter your name)
    • Level: intermediate
    • Upgrade the existing search feature
    • - Allow "smart" prefixes to sort by specific columns. (ex: vendor=Starbucks) - Allow multiple search terms (ex: Starbucks Zellers $40) or (ex: vendor=Starbucks and amount=2.60) - Allow comparison operators (ex: amount>34) or (ex: >34)
    • Create an "Advanced Search" to help users build the expressions above through the UI instead of typing them.
  • F021. Pie Chart Mouseovers (Owner: Enter your name)
    • When you mouseover a pie chart slice, data will be displayed in an info bubble.
  • F022. Budget Alerts (Owner: Artem Padalko)
    • Alert users when they go over budget. Start with email and UI alerts. Can add other means of notification in future (ex: handheld devices)
  • F023. Vendor Autocomplete (Owner: Charbel Choueiri)
    • Autocomplete feature for the vendor field
  • F024. Show sub-categories in pie chart (Owner: Charbel Choueiri)

  • F025. Financial Goals (Owner: Tri)
    • Allow users to set goals and track their progress

  • F026. Flash Videos (Esther)
    • Video to present Spending Profile to website visitors.
  • F012. Compare your spending habits to the national or world average (Owner: enter your name)
    • Analyze the data in the aggregate to ensure privacy is maintained.
    • Needs definition as to how the results will be displayed.
  • F009. Exchange rate calculator (Owner: enter your name)
    • Level: advanced
    • Required: tbd
    • From 2 customers. People who travel a lot and/or buy things in different currencies would find an exchange rate calculator very useful.
    • We could use an external source to get the daily exchange rate, and then use it for the conversion. Need to research how to do this.

FOR FUTURE DEVELOPMENT

  • F034 Write a program that deletes the account id from an ofx file (ADD TO MAIN FEATURE LIST AS SOON AS CHARBEL CONFIRMS IT IS NECESSARY)
    • Level: Intermediate
    • Required: You can propose to write it in the language of your choice
    • The program will be a very small and simple one that users can download from our website. It will parse an ofx-formatted file, find the string
      <acctid>
      , and delete the account number which follows it. This is a recommended step for security before uploading their transactions from their bank into Spending Profile. (even though our connection is already secure, many users are more comfortable deleting their account number from anything they upload.)
  • Custom Views (Should wait until our add-on framework is tested and stable.)
    • Level: advanced
    • Required: PHP, HTML, js, css, SQL, more?
    • A bit like iGoogle, allow users to choose what they want to see on the page.
    • The user can create their own custom views, choosing from the available components and arranging them as they wish on the page.
    • We have an add-on architecture which should help when designing this feature.
    • This feature needs more definition.
  • Goal Sharing (This should be done after the main goals module is implemented)
    • Level: advanced
    • Required: PHP, js, SQL, HTML, css
    • Allow users to share their financial goals if they wish to. They will be visible to other members, who should be allowed to make comments so that they can give their advice and encouragement.
  • Printable view(s) (wait for Ajax migration and final layout changes to be done.)
    • Level: advanced
    • Required: PHP, HTML, js, css, SQL
    • Create printable views of the user`s data. This is a "clean" view with all the buttons, links and controls removed.
    • What views do we want to print? Main tab? Budget tab? Graphs tab? What about views that aren`t available throught the tabs, such as the monthly statement view? What about allowing the user to pick what goes on the page to print?
    • This could get quite fancy. Start with a single printable view (ex: main page) and then explore what else we could do with this.
  • Deleting unused code (Wait until we release new folder structure.)
    • Level: intermediate
    • Required: PHP, js, HTML, css
    • Find things in the code that aren't being used. There are probably quite a few! See what we can safely delete. There may even be whole files we can get rid of. Removing code is often better than adding it. It cleans things up, makes for less code to maintain and learn, and can even make the code run faster and better.
    • You may also find things you can rewrite more simply, ie replace a long piece of code with something shorter and more efficient.
    • See what you can come up with! Lots room here to explore and experiment.
    • This is a good way to get familiar with the code.
  • New Screenshots (Owner: enter your name)
    • Level: easy
    • Required: basic HTML, simple image editing/cropping
    • Take new screenshots for the "What Does it Look Like" page. They are all out of date since the release of the new layout in March 2008.
    • We should wait until the orange scheme is totally replaced on the inner site.
  • Local deals. (Wait for a future major release.)
    • Level: advanced
    • Required: PHP, js, HTML, css
    • The user's ip address tells us their location. Use this to show them local specials or coupons.
    • This feature needs more definition and likely the participation of 3rd party merchants.
  • Budget Page Enhancements
    • Level: advanced
    • Requires: PHP, HTML, SQL, js, css
    • Possible enhancement: Provide a way to help the user choose their budget amount by displaying a popup showing the user's average spending in a category over the last 3, 6, and 12 months.
    • Possible enhancement: Provide a way to change the upper limit on the vertical axis of the graph. This will allow them to see more detail on the graph. It can be very useful in cases with extreme values; for example, if one bar in the graph is very tall, all the others will be squished at the bottom. Changing the axis upper limit will allow the user to see the squished data in a better range.
  • Set up a user forum (Owner: enter your name) (Re-evaluate if/when we want to do this)
    • Level: advanced
    • Required: PHP, js, HTML, css
    • Set up a forum to allow users to discuss different financial topics.
    • They could be discussing anything from money-saving strategies to budgeting tips, asking for advice, etc. etc.
    • It would be really nice if the forum could use the same authentication as the main site, so you wouldn't have to log in twice and have separate ids to remember.
    • You will need to research different forum engines an propose one. It should allow us to customize the "look and feel" so that we can put our header and footer on it and it won't seem like you're you're leaving the main site at all. Find out what forums are out there, play around with them and make a recommendation. Try to go with something open-source if possible!
  • F030. Make transaction list display configurable (Owner: enter your name)
    • Level: intermediate
    • Required: css, HTML, javascript, PHP
    • Allow user to configure the colors for expenses/income, and other features, such as category colors, currency format...
    • Needs more definition; make a proposal!
  • F029. Allow carry-forward of previous month balance (Owner: enter your name)
    • Level: intermediate
    • Required: HTML, javascript, css, PHP
    • Have the previous month's balance be automatically entered into the next month.
    • Qustions must be resolved as to the duplication of income this causes. For example, if you have the last month's income as a separate entry every month, it causes an inflated income when viewing more than one month at a time. We will be allowing the user to define any time period to view with any start and end date. So how doe this balance get show there - and how should it be treated when calculating the totals for the period?
  • F007. Receipt Store (ON HOLD - not sure if we can provide enough storage)
    • Level: advanced
    • Required: PHP, js, SQL, HTML, css
    • Allow users to scan their receipts and upload them to their account, linking them to a particular transaction.
    • This will allow people to use our site as backup storage for their receipts. (wow!)
    • You will need to define more details of how this feature could work. Make a proposal!
  • F008. Bill Splitting. (Owner: enter your name)
    • Level: advanced
    • Required: PHP, js, HTML, css
    • Take one transaction and split it into several.
    • This will be useful for ATM withdrawals or receipts from a general store like WalMart, where your purchases can fall into several different categories.
    • Design and write a module that helps the user to split a transaction into multiple transactions.
    • Design required first - write a document that proposes how this feature will work.
  • F002. Create a calendar view of transactions. (Owner: Enter your name)
    • Level: advanced
    • Required: PHP, HTML, css, javascript
    • The idea: See WHEN you spend money.
    • On the Main tab, create a calendar view of transactions. This will be an alternative tothe list view that we already have. Switching to the calendar view will display a calendar showing the transactions on the days when they occurred.
    • A short textual summary of each transaction will be shown, with the full details appearing when the user requests them (ex: mousesover, click...)
    • A UI design is required for this feature. The design will include the calendar itself as well as provide a means for the user to switch between views (list/calendar).
  • F032. Upgrades to the "Carry fixed transactions forward" feature
    • NOTE: THIS HAS BEEN REPLACED WITH FEATURE F036: "Copy and paste transactions"
    • Change it to "Carry selected transactions forward" (more flexibe)
    • If there are duplicates, make it ask for confirmation
  • F011. Create a Google Maps Mashup (Owner: Alex Borisenko)
    • POSSIBLE LACK OF MARKET NEED. REQUIRES MORE RESEARCH AND INVESTIGATION BEFORE CONTINUING.
    • Level: advanced
    • Required: Google Maps Api, PHP, SQL, js
    • Create a Google Maps Mashup for Spending Profile to allow users to SEE where they shop! They can plot points on a map corresponding to the stores where they buy things.
    • Try to make it smart so that a store can be plotted once by one user and be available after that to all users.
    • Google Maps API: http://code.google.com/apis/maps/
  • FXXX. Server-side class library (feature id will be assigned individually)
    • THIS IS HERE BECAUSE WE WILL NOW WRITE THE LIBRARY AS REQUIRED BY OUR FEATURES
    • Level: intermediate
    • Required: PHP, with a very tiny bit of xml
    • transacations (Owner: Paul) F005
    • user (Owner: enter you name)
    • vendor (Owner: enter you name)
    • category (Owner: enter you name)
    • goals (Owner: Tri)
    • contributor (Owner: enter you name)
    • pie chart (Owner: Samy)
    • bar graph (Owner: Samy)
    • security (Owner: enter you name) Note: needs to be rewritten to use white list instead of black list approach

Much of the code for the above classes is already written, so you just need to migrate it to use the new database structure. It's also open to refactoring of course, and as we develop other features there will be requests for new functionality.


Sign in to add a comment
Hosted by Google Code