The CS50 IDE is based on Ubuntu Linux, and if you are planning to build a web application similar to Mashup or CS50 Finance, the relevant technologies are often abbreviated as LAMP (Linux, Apache, MySQL, PHP). Google for "LAMP server setup" and you will find a lot of information about this.
If you want to design a web application, but not host it on the web, then you need to ask yourself what sort of hardware you are planning to host it on. Presumably, if you want your uncle to use it for his pet grooming business, you're talking about installing a web server at his place of business, either on an existing computer that he has there, or on another server. So you have a lot of options, and they all have their pros and cons.
Your Uncle's Computer: Native OS
I'm guessing that, if your uncle has a computer at his place of business, it is most likely running Mac OS X or Windows. If you want to set up services similar to those offered by a LAMP server, you might want to look into WAMP (for Windows) or MAMP (for Mac OS X). Then you'll need to teach your uncle how to start up the services and access the website over the localhost interface, presuming he is technically inclined. This website would only be accessible from one computer, and your uncle would need to learn how to run not only the web app, but also the server setup.
Your Uncle's Computer: Linux VM
Another possibility would be to set up a Linux virtual machine (VM) using a hypervisor like VMware or VirtualBox. You could set it up to automatically start services like Apache and MySQL when it is booted up. Your uncle may find this simpler to start up. The networking would be trickier than the first option -- you would need to configure the virtual machine's network adapters appropriately to allow him to visit the web app from his computer. This would also be accessible only from one computer, and your uncle would need to learn not only the web app, but also the VM startup.
Your Uncle's Local Area Network
Another possibility would be to build a dedicated LAMP server (out of an old desktop, perhaps, or even something cheap like a Raspberry Pi) and leave it running on your uncle's Local Area Network (LAN). This could be done for less than $100. If he does not have a LAN, you could create one using a $50 router.
If your uncle already has wireless, he may have a suitable router already, but you'll need to configure it appropriately to get computers talking to one another on the LAN. You could edit the client machine's /etc/hosts
file, or use some form of locally-hosted DNS masquerading like dnsmasq
(simpler to set up than a real DNS server like bind
) to give your server a name on the network. Or, you could just train your uncle to access the website at its IP address. This would also be accessible only on the Local Area Network, and your uncle would need to learn not only the web app, but also the maintenance of the server hardware.
Hosted Service
Honestly, I believe that this will be the best option for you.
You can purchase a domain name for $10/year through a DNS registrar such as NearlyFreeSpeech. (Disclaimer: I don't get paid to endorse them or anything, I just think they are an affordable option.) They also offer web server hosting and SQL databases for rock-bottom rates, based on usage.
You can set up password protection so that the service is only used by your uncle, and then he can check it from any computer, tablet or smartphone anywhere.
I recommend getting a web domain for your own personal use (such as cb3kdesign.com) and then configuring a subdomain (such as petmap.cb3kdesign.com) for the web app.
You can have basically unlimited subdomains with one paid domain, and it will probably end up costing less than buying or building a computer for the task.
Even better, you won't need to deal with maintaining the hardware or training your uncle to do anything but use the app.