Hardware Architecture
This is fairly fundamental to the successful completion of any project. If you're going to write a program it needs to run on a computer, somewhere, somehow. For the type of web based development that we're focusing on primarily, these are a pretty easy questions: PC vs. Mac and / or Windows vs. Linux? Nor is this usually a difficult question. Most people have strong feelings about the options and reams have been written about it across the internet. Rather than rehash this argument, which is pointless since the odds are 99% you've already made up your mind anyway, let's take a moment to consider the alternatives; a little outside the box thinking if you will. If you are interested in the topic please feel free to Google it to your heart's content.
When you write a program, is a web-based solution really the correct approach? There are others and they dramatically affect hardware requirements. Just because you determine you have a technology-based solution which requires a program, doesn't instantly demand a web-based solution. A web-based solution is online and accessible by anyone. Really accessible. If you would prefer not to do that because the information is sensitive, then there are other options. The primary advantage of web-based solutions is exactly this openness; it's so easy to communicate with the application anytime, anywhere.
If you like this idea and it works well for the purposes of your project, you will need to obtain hosting or your own web server; this is the hard drive on a computer which is connected to the internet and makes your website available to anyone 24 / 7. Then purchase a domain name (e.g. "earthchronicle.com") and point the DNS records to the IP of your web server. Effectively, your web server (or web hosting) website has two addresses where people can find it; however the "physical" address, the IP address, looks like this, 255.7.172.202. Since no one wants to remember the IP for all the websites they visit, websites have domain names which are simple and easy to remember. When you enter the domain name into your browser (like Internet Explorer or Firefox), the browser finds one of the many directory computers on the internet and translates the domain into the IP address and finds the website for you. Setting the DNS records configures one of those directory computers which then talks to the rest of its "friends" ensuring that within a few hours to a few days, every directory on the internet knows how to direct visitors to your site.
Alternatively, if you don't want your information to be that available, you can construct a desktop program, a program that people install on their computers and which is otherwise completely inaccessible. This is a good choice if you don't want the information to be widely accessible. With the rise of "always on" broadband connections, this distinction is declining in importance, since desktop computers are now regularly connected to the internet for long periods of time. However, with proper security in place, this is still the most secure way for people to store data, and they have only themselves to blame if the data is compromised. This is also a good choice if you would have to transfer large amounts of data or use extensive processing or memory on the web server. If those are bottlenecks in an online application, then allowing people to simply download the program one time is likely the better workflow. Then no further data transfer is required and users can take advantage of the much more extensive processing power and memory available on their own desktop computers.
There is also the networked client-server option. On a local network, the network server can run an application which all of the client computers can access. This was the first version of a web application; programs run on small to large networks before applications became possible on the internet, the largest network ever. Client-server applications run very similar to web applications as well and have many of the same hardware and configuration needs. However, while access is reasonably simple across the network, the use of firewalls and other security usually make it pretty difficult to access the information from outside the local network. It should be noted that networking is a non-trivial endeavor. But depending on your situation you may find a desktop, client-server, or web-based solution fits your hardware needs best.