First of all, I'm not a programmer. I'm here because I had an idea for a software program that my employer may hire someone to design, and I'm wondering what kind of investment it would take to hire someone to design it. (Thousands of dollars? Tens of thousands? Hundreds of thousands?)

We want to create a software program that Home Inspectors would use to create their inspection reports. The concept of the program is somewhat similar to Turbo Tax (a "wizard" type feature would prompt you to provide necessary information). It would have to be EXTREMELY user friendly, something someone who's never seen a computer before could use.


The user would set defaults/preferences before they even use the software that would determine which prompts they're shown. For example, if they say that they don't test for carbon monoxide, they'd never be prompted to provide CO readings.

Basically, it would ask you questions/prompt you for information and then base the following questions/prompts on your answers. For example, if the address of the building is in Florida, it wouldn't offer any selections that have to do with snow. If you say that a water heater is an electric water heater, it wouldn't ask you how the burner area looks. If you say that the building was constructed in 2002, it wouldn't offer you any notes about asbestos. If you say that the water, gas, and electricity are shut off to the building, it would automatically place notes in the correct places (in the printed report) about which things you weren't able to test (wouldn't ask you for carbon monoxide readings from the furnace exhaust, for example).

It should ask you questions at the beginning or during different sections, such as asking "types of penetrations/flashings present" at the roof section with a list that you select multiple items from, such as chimney, skylight, valley, plumbing stack (this one might be set to automatically be checked, and then you'd uncheck it if need be or the program would automatically uncheck it before hand if you say you aren't inspecting roof), etc. Then when you hit "next" (or whatever) you'd end up with a list of things you selected and lists of notes or further questions for each. As you answer the questions, more questions or note options appear. For example, if you selected chimney, then under the chimney section there would be questions like "how many chimneys" or "what are the types of chimneys" with options that are used to compile the list of notes you can choose from.

Inspectors would set some defaults which would include the order that they want to be asked the questions/prompted in (exterior before roof, roof before chimney, etc.), the terminology they prefer. Some would say that something "appears undamaged" and some would say "appears serviceable", both meaning that there are no apparent defects. Some use the word "mold" while others prefer to say "microbial growth".

It should ask you how many bathrooms, heating/cooling units, etc. at the beginning, but it should also be easy to add them if you find another one (such as a toilet or shower in the basement). Things like number of water heaters could correspond with the number of residences in the building (duplex, triplex, etc.), but it would still be important to be able to add more at any point.

There needs to be a way to add notes that you hadn't followed the proper relational path to find. There would need to be a search feature on both the individual databases and the one on our server. I was thinking something along the lines of a field that's always in the corner of the screen that they could start typing into and see lists of related notes show up below as they're typing. They should also be able to search by telling it what area to look in or just browse notes by category/area.

The program should remember the notes (including the relational path/location of them) people had keyed in. This could happen automatically, could be something the inspector would have to tell it to do, and/or could prompt the inspector asking if it should be saved.

The report should be easy to navigate around if someone wants to input something in a section that they're not on at that moment.

If they realize that they took the "wrong turn" on a relational path, they should be able to switch to another path without loosing what they've inputted. For example, if they realized that an AC unit is actually a heat pump, they could switch from the AC path to the heat pump path and copy the notes they had already input about the unit to it.

A "notepad" feature might be a good idea... a tab or button that they could click that would allow them to jot down notes to remind themselves to input something later when they're prompted?

There could be a "don't ask me this again" or "don't show me this note again" feature (it would add that setting to the inspector's profile, perhaps).

The final output should be available as a PDF file or a print file. I like the idea of putting it into a narrative format, such as, "The water heater is a 4 year old, 50 gallon electric unit. It appears undamaged." Perhaps there could also be another style of output (where it would list each of those things under individual headings/subheadings), but not necessarily. The inspector should be able to preview the output at any point in the inspection.

There should be a stage between checking boxes and actually creating the final output. This in between stage should be a preview-like area where the inspector is able to see the report as it is going to appear when it's printed and have the opportunity to change the wording if they want to.

It's very important to make it easy for the inspector to add photos. It would be good if this could be done in the "preview-like area" of the output.

We need to have an abbreviated Pocket PC version of the software that would sync up with a laptop/desktop so the inspector could complete parts of the inspection report that (s)he hadn't on the pocket pc, such as adding photos, previewing the output, adding more notes, etc.

There will be images/illustrations included in the database.

There are state and association standards that our inspection reports need to meet, so the reports should prompt you for information related to them.

There should be an "ask me later" or "remind me later" or "come back to this later" feature. An example of a time this would be useful is if they're prompted for the location/condition of the water main and they haven't found it yet. It would be nice if there was an "index" of things they've asked to be reminded of so that they can go back to it quickly when they do locate the water main.

There should be options that are always on the side/corner of the screen (or hidden under an easily accessible tab)... for example, they could find a miswired outlet or improperly installed wiring pretty much anywhere in the property.

And there should be a spell check feature, of course.


Wish list (features that would be nice but aren't immediately necessary):

1. When you start typing in a note, it should show you related notes in/around the "area" you're in. Perhaps this is something that could be turned off? This feature isn't particularly important.
2. Users could link up to a central database that would find any changes they made (notes they added) and add them. Then they could browse the database for notes to choose to install into their software. The site would keep track of the most popular notes, so if people just wanted to see those they could. It would also need to keep track of which regions the note came from, if that's set as a relevant field.
3. In addition to PDF document, also creates a web version of the report that contains videos and can be sorted in different ways (list recommendations, etc.), links to related information (which should also be active in the PDF's, actually), etc. They could click on photos in the report and have them enlarged.


I think that's all I have for now. Also, if certain features would be much more difficult to implement than others, please let me know which parts would make the project significantly more difficult/time consuming/costly. (:

Thank you!

Recommended Answers

All 6 Replies

By the way, I'd be the one inputting the information and establishing relationships within the database. I'm hoping that the type of database we'd need is something that already exists.

Assuming that it is, what we'd be hiring a programmer to do is write a "wizard" type program that would interface with the database and then turn the selected/keyed in fields/entries into a narrative report (based on sentences with "place holders" that I had written).

Those requirements are certainly not trivial. I'd recommend assessing currently available commercial solutions for this:

If those don't meet your needs, then you could start getting some bids on a custom solution. Generally, if an existing product would meet 80% of your needs, you're better off taking a hard look at what that remaining 20% is worth to you and how flexible you can be on it.

Yeah, we're on that list. :icon_wink: (Or rather, we're currently resellers of an inspection software program that's on that list.) Nothing on the market can do anything like what I've described. You have to wade through tons of notes that aren't relevant to your current inspection in order to find the ones that are, and short of creating the type of software I described, there really isn't any way around that.

That's a long list of requirements. From what I just browsed through, the real difficulty isn't the programming, but the kind of domain knowledge needed to make a well-designed software like that.

Just wondering, how much is your budget?

If you could put the flow of the program on paper (what should be asked for first, what next etc) and you put all the relations on a paper (your 2002-asbestos etc examples) this should not really be a difficult project to program.
I think the design of the user-interface would take up a lot of time, since it has to be understandable for *everyone*. That means designing it idiot-proof, which in my experience is a bit of a challenge ;)

What You need is speciall type of database called knowledgebase or expert system. But while such system could ask questions and configure itself or at least its interface to user and local conditions, giving textuall answers is not practicall as it would ask also for AI that could parse sentences written by user and extract relevant data. More complicated system, higher cost........
So, even if You would write all questions and offered answers, it would be still more costly to be able to be that flexible.
Price would be half milion US $ or more, depending what statistics or other data reports are final product of such database, wether it would be maintained centraly or it is just personall for printing required reports, as what You describe is just inputing data.
You must realize that centrall database must have space provided in its records for every posibility, and this must be built in or database need to be adaptable to data it contains, but if each record could be different in overall structure, then it is still more complicated and expensive..........
If You would want to sell precustomized or >>localized<< versions. then either there has to be expert system with all included, where each option could be turned off, or program should let You compose pages and configure itsef aroumd data inputted and define structure of database. That is most expensive version. Other option ask that someone define all pages at least as drawings and gives lists of options for every input so it could be simply selected, but each selection should have its own data inputing window with numeric choices (also as lists)......
I suggest that pocket PC is exchanged for small laptop, as then two wersion of software is not necesary..
I can do it as I am specialized for such programs, in about 6 months time.........
Of customizable databases, I would say ORACLE is closest, but has its limitations.........
Regards from Zagreb, the capitol of Croatia, Europe!
Marijan Pollak,
IT SA/SE 1st.Class,
Instructor and Team Leader

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.