For my final project I'm working on something similar to Mashup, only it is for a specific purpose. I want to help my uncle with his pet grooming business by using marketing data about potential clients from CSV files.

I want to integrate the addresses from the CSV into a database and the Google Maps API and later the Google directions API so someone delivering marketing materials could just follow the directions.

My problem is that, once I finish the project, I want him to be able to use it, and I feel so reliant on the cs50 ide for programming stuff that I'm not exactly sure how to go about this.

My idea is that it would just be a locally hosted website (so as to not have to pay for a domain name or anything). I just don't know how to program a website like that without the apache50 or mysql50 with for support.

Do you guys have any helpful advice to help get me off the ground? I feel stuck because I know the underlying principles of what I want to do because of the problem sets, just not any of the actual implementation so that it won't be tied to cloud9.


1 Answer 1


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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .