Difference between revisions of "FinanceFerret"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(→‎Tables: Transactions (exported from MySQL))
(subpages; reorganized)
(29 intermediate revisions by 9 users not shown)
Line 1: Line 1:
==Overview==
+
[[category:software/incomplete]]
[[category:software/incomplete]][[FinanceFerret]] is the working name for an (eventually) [[open source]] personal finance manager application currently being developed by [[User:Woozle|Woozle]].
+
==About==
===Goals===
+
[[FinanceFerret]] is the working name for an (eventually) [[open source]] personal finance manager application currently being developed by [[User:Woozle|Woozle]].
* To avoid [[/flaws in other software|shortcomings in existing money manager software]]
 
* To minimize the "setup curve", i.e. the amount of preparatory work needed before any useful amounts of data can be entered
 
* To provide all basic functionality needed for the following:
 
** Tracking and balancing one's bank accounts, credit cards, and other basic types of money accounts
 
** Tracking debts and loans involving one or more other parties of varying levels of disorganization (they might or might not send you regular statements or even reliable itemizations)
 
* To make data entry as painless as possible:
 
** Easy identification of redundantly-entered transactions -- so you can Just Start Typing instead of worrying about where you left off last time
 
** Deferred data massaging -- so you can Just Start Typing, and worry about assigning proper accounts and categories to things later; the program should keep track of incomplete data massaging so you can take care of it when you have time
 
===Naming===
 
Googling for "[[google:financeferret|financeferret]]" did not turn up any apparent trademarks. The [[domain name]] "financeferret.com" was registered in 2006, but the [http://financeferret.com web site] still shows it as "coming soon" -- possibly a [[domain squatter]]. "financeferret.net" and "financeferret.org" are available as of 2008-08-17, and I don't plan to register them (got enough just-for-the-name domains sitting around sucking $12/year out of my bank account).  
 
  
From this, I determine that the name is more or less available for this use. If the registrant of financeferret.com would like to donate it to this project, I'd be happy to accept it. --[[User:Woozle|Woozle]] 09:26, 17 August 2008 (EDT)
 
 
===Status===
 
===Status===
The software currently exists as a [[Microsoft Access 97]] program (written in VBA); I have migrated the tables to [[MySQL]], and the basic functions are now working and usable. The rest of the application will be migrated to non-proprietary platforms as time permits, and I will be posting the source code as soon as I have any worth publishing.
+
2019-08-22 I have it partly working under [[Ferreteria]], but I have found myself annoyed by the limitations of the existing data schema and am rewriting that from scratch.
 
+
==Pages==
The next step may be to convert it to web-based application, as HTML could possibly overcome many of the interface design issues I'm encountering.
+
* [[/archive]]
 
+
* [[/goals]]
Early documentation for that version is [[htwiki:HyperMoney|on HypertWiki]].
+
* [[/history]]
===Concepts===
+
* [[/naming]]
* [[/mirror transaction]]
+
==Code==
 
+
* [[/tables]]
==Tables==
+
* [[/queries]]
===Transactions===
 
<section begin=sql /><mysql>DROP TABLE IF EXISTS `Transactions`;
 
CREATE TABLE  `Transactions` (
 
  `ID` int(4) NOT NULL auto_increment,
 
  `ID_Type` varchar(50) default NULL,
 
  `ID_Acct` int(4) default NULL,
 
  `ID_Dest` int(4) default NULL,
 
  `ID_Equity` int(4) default NULL,
 
  `ID_TrxMirror` int(4) default NULL,
 
  `ID_TrxDup` int(4) default NULL,
 
  `CheckNum` varchar(50) default NULL,
 
  `Amount` float default NULL,
 
  `AmountOrig` float default NULL,
 
  `DateAction` datetime default NULL,
 
  `DateEffective` datetime default NULL,
 
  `WhenEntered` datetime default NULL,
 
  `WhenChanged` datetime default NULL,
 
  `WhoEntered` varchar(63) default NULL COMMENT "[user]@machine",
 
  `Accounted` tinyint(1) default NULL,
 
  `Voided` tinyint(1) default NULL,
 
  `ToVerify` tinyint(1) default NULL,
 
  `IsApprox` tinyint(1) default NULL,
 
  `SortEntry` varchar(50) default NULL,
 
  `SortInst` varchar(50) default NULL,
 
  `BalanceImmed` float default NULL,
 
  `BalanceStated` float default NULL,
 
  `UseBalanceEffective` tinyint(1) default NULL,
 
  `Descr` varchar(255) default NULL,
 
  `CalcBalance` float default NULL,
 
  PRIMARY KEY  (`ID`),
 
  KEY `Acct` (`ID_Acct`)
 
) ENGINE=MyISAM;</mysql>
 
<section end=sql />
 
This is pretty much the Access version, with a minor tweak for multiuser support (WhoEntered).
 
===Event Log===
 
Copied, with only slight changes, from [[VbzCart tables]]. This version is suitable for re-use in other projects, but perhaps should be renamed EventLog or Events because the MySQL syntax highlighter thinks "log" is a keyword.
 
<section begin=sql /><mysql>DROP TABLE IF EXISTS `Event Log`;
 
CREATE TABLE `Event Log` (
 
    ID INT NOT NULL AUTO_INCREMENT COMMENT "log line identifier",
 
    EvWhen DATETIME NOT NULL COMMENT "when the event started",
 
    EvWhere varchar(255) COMMENT "where in the code the event happened (suitable for filtering)",
 
    Params varchar(255) COMMENT "any relevant parameters",
 
    Descr varchar(255) COMMENT "description of event",
 
    Code INT DEFAULT NULL COMMENT "numeric event code unique to location (EvWhere)",
 
    AppUser varchar(127) COMMENT "application username, for when we have a user-security system",
 
    SysUser varchar(127) COMMENT "who logged into the operating system (username)",
 
    Machine varchar(64) COMMENT "network name of machine from which the event was initiated, if applicable",
 
    isError BOOL COMMENT "FALSE = this is just a message or normal event; TRUE = there is a problem to fix (error)",
 
    isSevere BOOL COMMENT "TRUE = important enough to send email to admin immediately",
 
    Notes varchar(255) DEFAULT NULL COMMENT "manually-entered notes",
 
    PRIMARY KEY (`ID`)
 
) ENGINE = MYISAM;</mysql>
 
<section end=sql />
 
* Have to use "Ev" prefix because When and Where are keywords.
 

Revision as of 20:26, 22 August 2019

About

FinanceFerret is the working name for an (eventually) open source personal finance manager application currently being developed by Woozle.

Status

2019-08-22 I have it partly working under Ferreteria, but I have found myself annoyed by the limitations of the existing data schema and am rewriting that from scratch.

Pages

Code