This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in
Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything
else useful to implementing this project. Everything I have prepared to help you is right here.
This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is
fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the
define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.
Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many
other projects of my own.
Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.
You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.
Please do not email me about this project without reading the disclaimer above.
This project is about writing a suite of software to manage a PADSite, a site that
collects PAD (Portable Application Description) descriptions of programs and displays them to the public,
and allows the public to visit the author’s website or download the executables.
There are hundreds of attempts at doing this, most inept. Visit the hundreds of existing
PADSites I have collected in two lists:
Try submitting and browsing and downloading and make a list of features you like
and don’t like. I would suggest the following features:
- hassle-free submit. Everything you need to know should be inside the
that should be needed to submit a pad is its URL (Uniform Resource Locator).
- Implement PADmaps so authors
don’t need to submit every one of their creations individually.
- You need to do a lot of work to help the site master filter out the SPAM and inappropriate PAD
s. You need to fully automate checking of all executables for viruses and adware.
- You need to periodically poll the PADs (Portable Application Descriptions)
you have selected for your site and reverify them. Spammers may make a delayed
- You want all users of your software to automatically share information about
spammers so that an attack deleted by anyone automatically invokes protection for
- Display all the information in the PAD
file in HTML (Hypertext Markup Language) pretty
- It makes money with Google AdSense.
- The web pages are generated by JSP (Java Server Pages)
or similar framework or are statically generated with something like HtmlMacros. The advantage of
static macros is cheaper hosting an a simple HTML
without databases or Servlets. You might invent something like themes that modify the
way pages are generated to let the site master give his site a distinctive look.
- Create a Google sitemap so
Google will index your site.
- Think about how you can collect suitable PADs
to seed your site with. You can’t easily steal them from other PADSites, since
they won’t display the URL of the PAD.
They will let you download programs however. PADs
may be included in the downloads. You might be able to find the
on the developer’s website with some intelligent spidering. You will collect a
lot of junk. You need to create a filtering system to get rid of the junk.
- You want to compile a list of all the sites that maintain lists of PADSites such as
my minor hassle PAD sites. You want
to send an email to all those sites asking them to add your PADSite.
- Ideally anyone without computer skills could just answer questions to set up and
maintain the PADSite.
Existing Software to Manage a PADSite
- PADKit: written in
PHP (Pre-Hypertext Processor). Comes as a zip without
installer. You are supposed to customise the code and run it on a webserver with
SQL (Standard Query Language).