Note: this page is under construction. Details will follow.
Below is a list of suggested projects. You are highly encouraged to come up with alternative ideas. Ideally, we are looking for projects that are both innovative and contribute something, either to the Internet at large, or to some smaller group of users. The focus should be on modern Internet technologies. This includes, but not limited to:
- Google technologies (iGoogle, GData, Google Maps, Google Earth, GWT, Google Analytics).
- Open source projects such as Firefox, Thunderbird
- VoIP, video on demand (such as the Skype API)
- Large collaborative projects such as Wikipedia.
Below are some of our ideas on possible projects.
User generated content
Web 2.0 is all about having the users provide content instead of hiring writers collaboration and sharing between users.
That includes the paradigm of “the network as a platform”, bringing applications utilizing AJAX or similar frameworks to run through a browser and the architecture of participation that allows users to own data on a site and to exercise control over it.
Projects in this category use public API or publicly available data to add some new value to a site or an internet application.
Wikipedia rating system
Wikipedia offers their whole database for download, and this can be a 'mikhre zahav' for experiments. One particular possible project is some sort of ranking system for users (just like eBay) and a way to provide reader of Wikipedia a visual warning when certain texts are written by unexperienced, uncertified or anonymous individuals.
See also here.
Social networks
Facebook, LinkedIn, Rimzu and many others social networks present us some examples of real-life graphs. Implement and explain the results of some known graph algorithms on these.
Recommendation systems
Remember Pandora, the Internet radio station that offered personalized broadcasting according to your taste, based on past experience?
Make something like that, not necessarily audio-based: jokes, poems, recipes are all good candidates.
You might even earn some money if your algorithm beats the NetFlix challenge!
Adding layers to Google Earth
Since Google Sky was already implemented, you should go further. For instance, “Google Satellite” could show you the current location of satellites. Satellite data can be obtained from various source, e.g., NASA or here.
Wireless communication
A cable-free network is quite an oxymoron, but nevertheless a convenient method of increasing connectivity. While wide-area wireless networks not based on a cellular phone infrastructure are still prototypes, myriads of local-area wireless products based on IEEE 802.11b and 802.11g standards are available for home consumers and businesses.
This unchaining allows to introduce on-the-road network applications and services.
Projects in this category squeeze a little more from widely available WLAN cards and/or routers. They're probably more difficult since you need to control hardware more directly.
WiFi-based geo-location
Some companies are offering geo-location services based on WiFi. One company has a database of WiFi access points across the world and they have a program that deduces your location based on APs you currently see. This can be further extended to a more accurate geo-location that estimates distance from several APs (either using signal strength or timing information, which is probably more precise) and performs triangulation.
WiFi Location System Investigation
Another WiFi radar
A related company: WeFi
WiFi bridge
See this project from Microsoft Research. Can you think of any other cool things to do with this?
Security and spam-control
The net is vast and infinite, and is abundant with malevolence. Viruses, worms, trojan horses, exploits, unsolicited commercial mail (AKA spam) and other black-hat activities corrupt the virtual soil and pose a threat to both individual privacy and online commerce.
Filtering and authentication counter-measures are constantly developed to overcome these but the battle is endless.
Projects in this category focus at blocking or detecting one of these nuisances.
Human identification (aka CAPTCHAs)
Human ID service
Instead of having each site admin copying the source of some CAPTCHA and using it to reduce spam on his forum/blog/whatever, implement an embeddable object that offers human identification to sites.
The site owner now only has to add 1-2 lines of code to query the widget whether human ID worked.
Once you get many people using your CAPTCHA service, you could add other types of tests (can't see images? click here for an audio test), add i18n (allow the site owner or the client to choose a language, for example), etc.
A recent story on the topic.
Google Images CAPTCHA
The widget would do the following:
- decide on a topic X, e.g., animals,
- decide on a specific word Y within this topic, e.g., elephant,
- Search Google Images for a random image of a Y,
- Display it to the user and ask "what kind of X is that?"
Challenge/response system for login
In order to login to your bank, web mail, myspace, etc., you need to type your password. But how can you be sure that the web site to which you are connected is really who you think it is? It is not uncommon for web site traffic to be redirected to another website (read here) or for the user to mistakingly believe that she is connected to a legitimate website where in fact, she is connected to another (often as a result of phishing, such as the one here).
As a first step in this project, read and investigate one existing solution known as SiteKey (thanks to David for this information). It was developed by a company called PassMark, which was then acquired by RSA Security for US$44.7 million. Here's a description from Bank of America of how their implementation works. Some recent research indicates that the security of the system is far from perfect (read here, here, here, here and many other stories). The main security issues with this systems are psychological, as well as problems with man-in-the-middle attacks.
Apart from security considerations, this solution is also most likely too expensive to be used by small web sites.
The main goal of this project is to implement a more secure system based on a challenge response mechanism. The idea is to add support both in the client (say Firefox) and the server for a challenge response mechanism. This would once and for all eliminate the ability of phishers to steal passwords, since no password is ever sent. The user interface on the client side should be:
- Something out of the ordinary that the user will remember and look for whenever typing a password (say a full screen mode with some movie in the background)
- Something the user can customize (in order to make sure a fraudulent site cannot imitate it)
Your solution should withstand man-in-the-middle attacks (not involving DNS poisoning) by including the web server's name before producing the response.
From DRM to watermarking
USB on-the-fly encryption
Preventing Firefox from taking 100% CPU
Make everyone's computer faster! Be a hero!
Write a Firefox plugin to detect and eliminate/restrict CPU hogging javascript commands (e.g., settimeout). These are often used by sloppy web developers for cheap scrolling effects.
Webmail encryption via a Firefox plugin
You want to conspire against Google using your Gmail account? Better use some client-side encryption.
You want to be sure that your mission orders really arrived from your cell leader? Ask her to digitally sign all outgoing emails and verify the signature in your client.
Make it easy for the webmail user (read: add nice buttons) to use cryptography in his correspondences. Annoy the NSA.
YNET on creating Firefox extensions
IP telephony
Aside from asynchronous communication methods (e.g., e-mail and newsgroups forums), the web offers solutions for synchronous communication, anywhere between text-based IRC and IM, audio-based VoIP up to video conferencing.
Some companies (e.g., Skype) offer services connecting POTS with VoIP, allowing long-distance calls for a diminutive price.
Projects in this category provide VoIP or video conferencing related functionality.
VoIP bridge/indial
Basically, you call your home phone number, the computer picks up the phone, and allows you to make Skype phone calls through it.
Besides DTMF decoding, you could go further and build a menu system (a la KOLNO'A-FON), etc.
Phone-to-VoIP
A little hardware-related project. Make an appliance that will ring a phone or make Skype controllable by the phone keys.
HW side is modestly difficult, as most of the schematics can be found on the internet; software side is the real highlight.
Warning: might require soldering stuff.
Compression Challenge
Contribute to the research on some of the world's most advanced compression algorithms,
and also get a chance to win 50,000Euro in the Hutter Prize (see also here and here for some discussions). The team taking this project will be expected to investigate and understand existing algorithms, and then design and experiment with new algorithms. This project will require a significant mathematical research work.
Effective Visualization of Traffic Information
Computers on the web continuously communicate with each other. There are some good tools available for monitoring this traffic (Wireshark), but most of them present the information in a way that is very difficult to interpret (log files of a web server, capture files from the network card, etc.). Moreover, this information is often not real-time.
One recent project shows a very impressive and effective visualization of web server traffic. The goal of our project is to develop this idea further, possibly combining it with tools like Pcap or other monitoring tools. A major part of this project is to come up with a good design that effectively conveys the vast amounts of information available.
Your own project!
Remember that these were all suggestions and that the best is if you come up with better ideas!